Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Variabile non definita

  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565

    Variabile non definita

    Salve.
    Sono un noob del php e sto provandoa fare le prime applicazioni con Mysql
    Dunque ho creato un form html in cui si scrive un codice e quindi la pagina php cerca e mostra i risultati.
    Come errore mi da una variabile non definita alla riga 64 (ma non è vero che nel php le variabili non devono essere definite? Perchè questo errore?)
    Vi mostro il codice.
    Pagina html
    codice:
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> ricerca in un DB </title>
    </head>
    <body bgcolor="#FFCC33">
    <form method=post action="cerca.php">
    
    INSERISCI CODICE OPERATIVO
    
    <input type="PASSWORD" name="cerca">
    <input type="submit">
    </form>
    </body>
    </html>
    Questa è la pagina php che deve elaborare

    Codice PHP:
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    </head>
    <?
    // nome del server
    $nome_server "localhost";
    // nome del database cui connettersi
    // nome dell'utente del database
    $nome_utente "utente";
    // password utente
    $password "password";
    $nome_db "table";
    //nome della tabella da usare
    $tabella "dati";
    $connessione=mysql_connect($nome_server,$nome_utente,$password) or die ("Non riesco a connettermi  con il Server $nome_server
    "
    );
    $database mysql_select_db ($nome_db$connessione) or die ("Non riesco a selezionare il db $nome_db
    "
    );

    //l'istruzione MySql selezionerà tutti i record della tabella che abbiano il codice
    //simile al campo immesso nel form
    $sql "SELECT * from $tabella where CODICE like '%cerca%'"//Non dovrebbe darmi errore? Se non erro dovrei usare cerca con l'array superglobale $_POST[cerca] ma non da errore
    $query mysql_query ($sql$connessione) or die ("Problemi");

    //creazione di un ciclo che visualizzi i risultati trovati 
    //fino a quando esistono corrispondenze della ricerca
    echo "<h2>I dati registrati della tua famiglia sono i seguenti:</h2>
           <hr noshade width=500px align=left>"
    ;

    while (
    $rigo mysql_fetch_array($query)){
    $utente $rigo ["UTENTE"];
    $cod $rigo ["CODICE"];
    $lui $rigo ["LUI"];
    $lei $rigo ["LEI"];
    $famiglia $rigo ["COGNOME"];
    $e_mail $rigo ["EMAIL"];
    $fisso $rigo ["FISSO"];
    $mobile $rigo ["MOBILE"];
    $figlio1 $rigo ["IFIGLIO"];
    $figlio2 $rigo ["IIFIGLIO"];
    $figlio3 $rigo ["IIIFIGLIO"];
    $figlio4 $rigo ["IVFIGLIO"];
    $figlio5 $rigo ["VFIGLIO"];
    $figlio6 $rigo ["VIFIGLIO"];
    $figlio7 $rigo ["VIIFIGLIO"];
    $mobile2 $rigo ["MOBILE2"];
    $e_mail2 $rigo ["EMAIL2"]; 

        print (
    "[B]NOME SPOSO[/B]=$lui

    [B]NOME SPOSA[/B]=
    $lei

    [B]NOME FAMIGLIA[/B]=
    $famiglia

    [B]E-MAIL[/B]=
    $e_mail

    [B]TELEFONO FISSO[/B]=
    $fisso

    [B]TELEFONO MOBILE[/B]=
    $mobile

    [B]1° FIGLIO[/B]=
    $figlio1

    [B]2° FIGLIO [/B]=
    $figlio2

    [B]3° FIGLIO [/B]=
    $figlio3

    [B]4° FIGLIO[/B]=
    $figlio4

    [B]5° FIGLIO[/B]=
    $figlio5

    [B]6° FIGLIO[/B]=
    $figlio6

    [B]7° FIGLIO[/B]=
    $figlio7

    Il tuo nome utente è=
    $utente

    Il tuo codice operativo è=
    $cod

    [B]2° TELEFONO MOBILE[/B]=
    $mobile2
     //Riga 64
    [B]E-MAIL ALTERNATIVA[/B]=
    $e_mail2

            <hr noshade width=500px align=left>"
    );
      }

    //stampare un messaggio nel caso che  la ricerca non abbia dato nessun risultato
    //se la prima variabile del ciclo appena creato non esiste
    //si stamperà un messaggio che informerà l'utente
    if (!$utente)
    {
    print (
    "Codice operativo $cerca errato o scaduto");
    }

    echo 
    "<center><a href=\"..\index.html\">ESCI</a></center>";


    ?>
    <body bgcolor="#FFFFFF">

    </body>
    </html>
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2

    Re: Variabile non definita

    Originariamente inviato da XWolverineX
    Come errore mi da una variabile non definita alla riga 64 (ma non è vero che nel php le variabili non devono essere definite? Perchè questo errore?)
    no, non è vero che non DEVONO essere definite.... è vero che POSSONO non essere definite, infatti quello che hai non è un messaggio d'errore ma uno di warning, un avviso. cioè il motore di PHP ti sta notificando di aver trovato una variabile non inizializzata; potresti averlo fatto di proposito ma potrebbe anche essere un errore, ed ecco il motivo dell'avviso. generalmente, sia per motivi di correttezza e sicurezza del software, sia per una questione di eleganza del codice, ti consiglio di inizializzare sempre le variabili prima di usarle.

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Non mi ero accorto che fosse un warning e non un errore
    Il fatto è che però la variabile di cui parla è definita proprio qui:
    $mobile2 = $rigo ["MOBILE2"];
    perchè dice che non ci sta?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    umh.... non è che il messaggio sia per l'elemento $rigo["MOBILE2"]? sei sicuro che esista questo campo? prova a fare print_r($rigo); per vedere se l'array contiene davvero l'elemento con indice "MOBILE2"

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Ho controllato e il database ha tutti i campi...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    il blocco di variabili alle quali assegni i valori estratti dal DB le devi inizializzare prima del ciclo while. mi riferisco a queste:

    Codice PHP:
    $utente $rigo ["UTENTE"];
    ...
    ...
    $e_mail2 $rigo ["EMAIL2"]; 
    e poi alla fine del while le distruggi con la funzione unset($nome_var);

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    quindi devo fare
    $email = ""?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Originariamente inviato da XWolverineX
    quindi devo fare
    $email = ""?
    sì, oppure $email = null;
    è più fico

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Non sono sicuro che sia questo il problema, poichè io da buon programmatore (...) non ho mai inizializzato niente. Comunque proverò la soluzione.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    hop
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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 © 2024 vBulletin Solutions, Inc. All rights reserved.