Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262

    VALUE in php...mi sfugge una cosa....

    Ragazzi date un occhio a questo codice. E' tratto da un libro quindi penso che sia corretto ma non riesco a capire un passaggio. All'avvio dello script la variabile $email in:


    Indirizzo email: <INPUT TYPE="text" NAME="email" SIZE=25
    VALUE="$email">



    non ha un valore predefinito? E' random...? Correggetemi se sbaglio.

    Grazie


    CODICE
    ---------------------

    <?php
    // Apri connessione al database
    mysql_connect("localhost", "phpuser", "sesame") or die("Comunicazione
    col database non riuscita ");
    mysql_select_db("test");
    // Se il modulo è stato inviato, registra le preferenze e
    rivisualizzalo
    if ($_POST['submit'] == 'Submit') {
    $email = $_POST['email'];
    $as_email = addslashes($_POST['email']);
    if (isSet($_POST['OptOut'] && $_POST['OptOut'] == 1) {
    $optout = 1;
    } else {
    $optout = 0;
    }
    // Aggiorna il valore
    $query = "UPDATE checkbox
    SET BoxValue = $optout
    WHERE BoxName = 'OptOut'
    AND email = '$as_email'";
    $result = mysql_query($query);
    if (mysql_error() == "") {
    $success_msg = '

    La tua scelta è stata aggiunta.</P>';
    } else {
    error_log(mysql_error());
    $success_msg = '

    Qualcosa è errato.</P>';
    }
    // Prendi il valore
    $query = "SELECT BoxValue FROM checkbox WHERE BoxName = 'OptOut'
    AND email = '$as_email'";
    $result = mysql_query($query);
    $optout = mysql_result($result, 0, 0);
    if ($optout == 0) {
    $checked = "";
    } elseif ($optout == 1) {
    $checked = 'CHECKED';
    }
    }
    // Ora mostra la pagina
    $thispage = $_SERVER['PHP_SELF']; //Bisogna farlo per heredoc
    $form_page = <<< EOFORMPAGE
    <HTML>
    <HEAD>
    <TITLE>Modulo associazione</TITLE>
    </HEAD>
    <BODY>
    $success_msg
    <FORM METHOD=POST ACTION="$thispage">
    Indirizzo email: <INPUT TYPE="text" NAME="email" SIZE=25
    VALUE="$email">


    <FONT SIZE=+4> Per favore, mandatemi un sacco di messaggi
    email!</FONT>

    <FONT SIZE=-2> dissociati cliccando in questa casella </FONT>
    <INPUT TYPE="checkbox" NAME="OptOut" VALUE=1 $checked>


    <INPUT TYPE="submit" NAME="submit" VALUE="Invia">
    </FORM>





  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    nessun anima pia?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    Indirizzo email: <INPUT TYPE="text" NAME="email" SIZE=25
    VALUE="$email">



    se $email non viene inizializzato da nessuna parte cosa viene visualizzato nel campo email?


  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Codice PHP:
    ($_POST['submit'] == 'Submit') {
    $email $_POST['email']; 
    Se passi da qui ci sarà il valore del campo 'email' dal modulo in post. Se non ci passi non ci sarà niente, anzi prenderai un errore notice di variabile non definita

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    grazie luca. Quindi l'intendo dell'esempio del libro di riempiere il campo email per una successiva modifica e' errato.? Eppure quando lancio lo script il campo si presenta vuoto senza errori.


  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Probabilmente il libro è un po' vecchiotto.
    Qualche anno fa non si faceva troppo caso a certe 'finezze'. Referenziare una variabile non allocata dà, nei fatti, lo stesso risultato che se quella variabile fosse vuota. L'errore infatti è di tipo 'notice', cioè il livello più basso, ed il fatto di non vederlo può dipendere dall'impostazione di error_level su php.ini

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    sei un grande

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    aspetta...ci sono due variabili $as_email e $email :

    ...
    f ($_POST['submit'] == 'Submit') {
    $email = $_POST['email'];
    ....

    secondo me per visualizzare il modulo:

    ...
    Indirizzo email: <INPUT TYPE="text" NAME="email" SIZE=25
    VALUE="$email">


    ....

    la dichiarazione $email = $_POST['email']; deve andare prima dell'if . Che ne pensi?
    Pero' poi mi resta i problema del $checked non inizializzato da nessuna parte.

    <INPUT TYPE="checkbox" NAME="OptOut" VALUE=1 $checked>



    :

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    No. Se vuoi evitare ogni notice, prima dell'if metti questo
    Codice PHP:
    $email ''
    Come hai fatto tu sei esposto allo stesso rischio nel caso in cui non sia definito $_POST['email']

    Il problema del $checked è identico.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    262
    capisco. grazie.

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