Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Strano comportamento operatore logico !=

    Ciao ragazzi,
    nuovo del forum e nuovo di php...quindi non infierite :-)

    Sto muovendo i primi passi in php con un libro veramente completo e facile da studiare.
    Ora mi succede una cosa strana con gli operatori logici , ed esattamente !=

    Sto provando a passare un ID via url, per impostare il permesso di accesso o meno a dei dati.
    La cosa strana è che " != " si comporta esattamente al contrario di come dovrebbe:il codice
    --------------
    1 Pagina
    <?php
    session_start();
    $_SESSION['username']='marco';
    $_SESSION['author']= 2;
    ?>

    2 Pagina
    <?
    if ($_SESSION['author'] !=2) {
    echo 'Per accedere al sito devi essere un abbonato!';
    exit();
    }
    ?>
    ---------------

    La cosa strana è che con questo codice non mi fa entrare, mentre dovrebbe farlo.Sono l'autore 2 , quindi NON sono "diverso" da 2.
    Se invece uso:" == "
    <?
    if ($_SESSION['author'] ==2) {
    echo 'Per accedere al sito devi essere un abbonato!';
    exit();
    }
    ?>
    mi fa entrare, mentre invece rispettando il codice " se uguale a 2 bloccalo " dovrebbe impedirmelo.

    Io sto impazzendo, conosco e programmo con altri linguaggi di programmazione, ma è la prima volta che mi trovo di fronte ad un "contrario" di quello che dovrebbe accadere.

    Mi date una mano a capire cosa potrebbe esserci che non va ? ( A questo punto penso anche qualcosa di esterno ? Cache, php.ini, quassicosa?

    Grazie mille in anticipo a chi mi tira fuori da questo incubo.

  2. #2
    ho creato due pagine diverse:a.php e b.php,ho testato la sessione e va bene.
    il problema stava nel non aver messo session_start() nella seconda pagina,darebbe un messaggio di errore :Notice: Undefined variable: _SESSION etc....
    //a.php
    <?php
    session_start();
    $_SESSION['username']='marco';
    $_SESSION['author']= 2;
    header("Location:b.php");
    ?>

    //b.php

    <?php
    session_start();
    if ($_SESSION['author'] !=2) {
    echo 'Per accedere al sito devi essere un abbonato!';
    }
    else{
    echo"Benvenuto";
    }

    ?>
    fammi sapere..

  3. #3
    Ciao e grazie

    Session_start() l'avevo solo omesso nel copia incolla. Ho rifatto due nuove pagine ( vedessi mai)
    //a.php
    <?php
    session_start();
    $_SESSION['username']='marco';
    $_SESSION['author']= 2;
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Trova il mio film favorito</title>
    </head>
    <body>
    <?php
    $myfavmovie = urlencode("Il Generale biondo");
    echo "<a href=\"b.php?favmovie=$myfavmovie\">";
    echo 'segui questo link per vedere qual\'è il mio film favorito!';
    echo '</a>';
    ?>
    </body>
    </html>

    //b.php

    <?
    session_start();
    if ($_SESSION['author'] !=2) {
    echo 'Per accedere al sito devi essere un abbonato!';
    exit();
    }
    else {
    echo 'Benvenuto nel nostro sito';
    echo $_SESSION['username'];
    echo '!</br>';
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Quale dei miei film</title>
    </head>
    <body>
    <?php
    include 'header.php';
    ?>
    </body>
    </html>


    niente da fare!!! ..sarà mica Dreamweaver il problema?

  4. #4
    ti da messaggi di errore?,o lo schermo bianco?

  5. #5
    Incredibile..per lui è esattamente il contrario:

    == viene interpretato " diverso da"
    != viene interpretato " uguale a "

    grrrrrrrrr........

    Ps. Sto lavorando con dei virtual host gestiti con Mamp Pro ( versione Mac di Xamp) ..non puo' essere quello , vero ?

  6. #6
    Originariamente inviato da E.d.i.73
    ti da messaggi di errore?,o lo schermo bianco?
    No, mi restituisce il messaggio " devi essere abbonato "

  7. #7
    Mi rispondo da solo! :-)

    Ho rifatto i due file ex novo e tutto è tornato a posto.
    Temo che ogni tanto DW( cs3) se maneggiato troppo , corrompa i file. Non è la prima volta che me lo fa
    anche con l'html.
    MI sa che passerò ad un editor dedicato per mac.

    Tnx comunque

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.