Visualizzazione risultati 1 fino 13 di 13

Discussione: Parse error: syntax error, unexpected ';' in /membri/leprovedimarco/php/elabora_form.

  1. #1
    Guest

    Predefinito Parse error: syntax error, unexpected ';' in /membri/leprovedimarco/php/elabora_form.

    perchè mi da errore? il codice l'ho preso da internet, è giusto come richiamo il database?

    Codice PHP:
    <?php

    include'config.php';

    $user = $_POST['username'];
    $pass = $_POST['password'];


    $db=mysql_connect($nomehost, $nomeuser, $password) or die('mysql error:'.mysql_error());

    mysql_select_db($nomedb);

    ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <title>Iscrizione in corso...</title>
    </head>
    <body>

    <div id="container">

    <?php
    $flag_controllo
    =0;
    while(list(
    $chiave, $valore)=each($_POST)){
    if(
    substr($chiave,0,3)=="ob_"){
    if(
    $valore ==""){
    echo
    "non hai compilato il campo obbligatorio " . $chiave . ", l'iscrizione non può essere processata.";
    $flag_controllo=1;
    break;
    }
    }
    }
    if(
    $flag_controllo==0){
    //formatta la data di nascita
    $data_nascita = $_POST['anno'] ."/". $_POST['mese'] ."/". $_POST['giorno'];
    echo
    "la data di nascita è " . $data_nascita;
    $stringa_query="insert into utenti (username,password,nome,cognome,indirizzo,citta,provincia,indirizzo_email,data_nascita, data_registrazione) values('" . $_POST['ob_username'] . "','" . $_POST['ob_password'] . "','" . addslashes( $_POST['nome'] . "', '" . addslashes( $_POST['cognome']) . "','" . addslashes( $_POST['indirizzo']) . "','" . addslashes( $_POST['citta'] ) . "'," . $_POST['provincia'] . ", '" . $_POST['ob_indirizzo_email'] . "','" . $data_nascita . "',now())";
    $iscrizione_utente=mysql_query($stringa_query) or die(mysql_error());
    }
    ?>

    </div>

    </body>
    </html>
    L'errore è: Parse error: syntax error, unexpected ';' in /membri/leprovedimarco/php/elabora_form.php on line 40
    Ultima modifica di leprovedimarco : 29-08-2012 alle ore 13.47.38

  2. #2
    Guest

    Predefinito

    Mi pare manchi qualche parentesi chiusa nella costruzione della query sql (addslashes ... nome)

  3. #3
    Guest

    Predefinito

    Grazie! :)

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Evita però di usare addslashes, che non trasforma tutti i caratteri importanti. La funzione corretta è mysql_real_escape_string().

  5. #5
    Guest

    Predefinito

    Un'ultima cosa per risolvere:
    la data di nascita è 1994/3/31You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'Kurapika94@live.it','1994/3/31',now())' at line 1

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Btw, mysql_real_escape_string va applicata a tutti i campi che inserisci, altrimenti finisci come Bobby Tables.

    Per l'errore, dipende dal tipo della colonna in cui inserisci la data. Se si aspetta un datetime o un timestamp, devi convertirla nel formato che mysql si aspetta.

  7. #7
    Guest

    Predefinito

    "convertirla nel formato che mysql si aspetta" dove vedo che formato si aspetta?

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Dipende da come hai definito la colonna del database: se è un DATETIME ci vorrà YYYY-MM-DD, se è un TIMESTAMP devi inserire uno unix time, etc..

  9. #9
    Guest

    Predefinito

    è un DATE, quindi riscrivo la riga come:
    $stringa_query="insert into utenti (username,password,nome,cognome,indirizzo,citta,pr ovincia,indirizzo_email,data_nascita, data_registrazione) values('" . mysql_real_escape_string($_POST['ob_username']) . "','" . mysql_real_escape_string($_POST['ob_password']) . "','" . mysql_real_escape_string( $_POST['nome']) . "', '" . mysql_real_escape_string( $_POST['cognome']) . "','" . mysql_real_escape_string( $_POST['indirizzo']) . "','" . mysql_real_escape_string( $_POST['citta'] ) . "','" . mysql_real_escape_string($_POST['provincia']) . "', '" . mysql_real_escape_string($_POST['ob_indirizzo_email']) . "','" . $data_nascita . "',DATE(YYYY-MM-GG))";
    mi da lo stesso errore

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Che data ti aspetti che ti scriva con:

    "',DATE(YYYY-MM-GG))";
    ?

    Ciao!

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    E' la data di nascita che deve essere nel formato YYYY-MM-DD, che vuol dire 4 cifre per l'anno, due per il mese e due per il giorno, separati da trattini, e non da barre come nel tuo codice. Per il timestamp, NOW() va bene com'è.

    Codice:
    ... '1994-03-31', now() )

  12. #12
    Guest

    Predefinito

    ok, grazie

  13. #13
    Guest

    Predefinito

    Alla che ho cercato su internet, e sono arrivato a scrivere:

    Codice PHP:
    <?php*
    if(isset(
    $_POST['username'],$_POST['password'],$_POST['verify_password'],$_POST['email']))
    {
    * * if(empty(
    $_POST['username']))
    * * * * die(
    'username vuoto!');
    * * if(empty(
    $_POST['password']))
    * * * * die(
    'Password vuota!');
    * * if(empty(
    $_POST['verify_password']))
    * * * * die(
    'password di verifica vuota!');
    * * if(empty(
    $_POST['email']))
    * * * * die(
    'email vuota!');

    * * if(
    $_POST['verify_password'] != $_POST['password'])
    * * * * die(
    'Le due password non coincidono');

    * * if(
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === FALSE)
    * * * * die(
    'Email non valida');

    * * include
    'php/config.php';

    * *
    $username = mysql_real_escape_string($_POST['username']);
    * *
    $password = mysql_real_escape_string($_POST['password']);
    * *
    $email = mysql_real_escape_string($_POST['email']);

    * *
    $q = mysql_query('SELECT username FROM utenti WHERE username = \''.$username.'\'');
    * * if(
    mysql_num_rows($q) == 1)
    * * * * die(
    'Questo utente risulta esistente');

    * *
    $q = mysql_query('INSERT INTO utenti (username,user_password,user_email) VALUES (\''.$username.'\',\''.md5($password).'\',\''.$email.'\')');
    * * if(!
    $q)
    * * * * die(
    'Problemi durante la query: '.mysql_error());

    * *
    $oggetto = 'Registrazione su leprovedimarco.altervista.org';
    * *
    $testo = "Ti sei registrato correttamente su leprovedimarco.altervista.org.\n\nNick: ".$username."\nPassword: ".$password."\n\nGrazie per esserti registrato!";

    * * if(
    mail($email,$oggetto,$testo,'From:leprovedimarco.altervista.org<marco.m.wow@live.it>'))
    * * * *
    header('Location: http://www.leprovedimarco.altervista.org');
    * * else die(
    'Problemi durante invio email');
    }
    ?>
    <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
    <table border="0" cellspacing="1" cellpadding="0" width="600" align="center" bgcolor="#aaaaaa">
    <tr><td>Username:</td><td><input type="text" id ="username" name="username" value="" maxlength="30"></td></tr>*
    <tr><td>Password:</td><td><input type="password" id="password" name="password" value="" maxlength="30"></td></tr>*
    <tr><td>Verifica Password:</td><td><input type="password" id="verify_password" name="verify_password" value="" maxlength="30"></td></tr>*
    <tr><td>Email:</td><td><input type="text" id="email" name="email" value="" size="30"></td></tr>*
    <tr><td>Invia il modulo per completare la registrazione</td><td><input type="submit" id="submit" name="submit" value="Invia" /></td></tr> *
    </table>
    </form>
    E mi da questo errore: Problemi durante la query: No database selected

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •