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

    unexpected T_STRING che non riesco a trovare

    Ho questa insert:
    Codice PHP:
    $query_insert "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status) VALUES ('" $data_iscriz "', '" $username_reg "', '" $password_reg "', '" $session "', '" $nome "', '" $cognome "', '" $email "', '" $email_public "', '" $sex "', '" $data_nascita "', '" $nazione "', '" $localita "', '" $blog_ttl "', '" $blog_url "', '" $blog_rss "', '" $status "')"
    che mi restituisce il maledetto errore syntax error, unexpected T_STRING. Errore che però non riesco a trovare.

    Qualcuno di voi ha la vista migliore della mia?

    Thanks

  2. #2
    l'errore potrebbe benissimo essere nella riga/righe precedenti.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    non ci sono errori in questo codice

  4. #4
    E' come pensavo, in quella query di errori non ce ne sono.

    Grazie ad entrambi, verifico il codice pre e post query.

  5. #5

    Re: unexpected T_STRING che non riesco a trovare

    Originariamente inviato da Dirk Pitt
    Ho questa insert:
    Codice PHP:
    $query_insert "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status) VALUES ('" $data_iscriz "', '" $username_reg "', '" $password_reg "', '" $session "', '" $nome "', '" $cognome "', '" $email "', '" $email_public "', '" $sex "', '" $data_nascita "', '" $nazione "', '" $localita "', '" $blog_ttl "', '" $blog_url "', '" $blog_rss "', '" $status "')"
    che mi restituisce il maledetto errore syntax error, unexpected T_STRING. Errore che però non riesco a trovare.

    Qualcuno di voi ha la vista migliore della mia?

    Thanks
    In quale riga si verifica l'errore? Nella riga della query?
    Può darsi anche che l'errore si trovi prima della riga indicata, per esempio una parentesi o delle virgolette non chiuse.

    Innanzitutto ti consiglio di verticalizzare il codice, è più facile da seguire per la vista.
    Specialmente se ci sono parti che si ripetono e creano un'ancora visiva.
    E' il motivo per cui, con il sopravvento dei widescreen LCD, la maggior parte dei siti internet negli ultimi 4-5 anni ha rivalutato i layout a larghezza fissa, 800-1000 pixel al massimo.

    Ti consiglio di verificare il contenuto delle variabili.
    Io passerei tutte le stringhe a mysql_escape_string():

    Codice PHP:
    $query_insert "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status)
    VALUES (
         '"
    .mysql_escape_string($data_iscriz)."',
         '"
    .mysql_escape_string($username_reg)."',
         '"
    .mysql_escape_string($password_reg)."',
         '"
    .mysql_escape_string($session)."',
         '"
    .mysql_escape_string($nome)."',
         '"
    .mysql_escape_string($cognome)."',
         '"
    .mysql_escape_string($email)."',
         '"
    .mysql_escape_string($email_public)."',
         '"
    .mysql_escape_string($sex)."',
         '"
    .mysql_escape_string($data_nascita)."',
         '"
    .mysql_escape_string($nazione)."',
         '"
    .mysql_escape_string($localita)."',
         '"
    .mysql_escape_string($blog_ttl)."',
         '"
    .mysql_escape_string($blog_url)."',
         '"
    .mysql_escape_string($blog_rss)."',
         '"
    .mysql_escape_string($status)."'
    )"

    In questo modo hai anche un'indicazione di errore più esplicativa, in quanto la riga indicata dal parser definisce la causa in modo più isolato.

    E' chiaro che sui campi che non sono stringhe è inutile passarcela, quindi elimina la funzione.
    Secondo me così risolverai.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  6. #6
    Vi spiego l'errore (banale per voi, io mastico php da un paio di mesetti, prima solo ASP):
    Codice PHP:
    $session "passed";
    ... 
    poi la query di inserimento... 
    A quanto pare la creazione della variabile in questo modo, specie quando poi usata nella insert, non piace un granchè al motore php.
    Tantè che eliminata la variabile e modificata la query in questo modo:
    Codice PHP:
    $query_insert "INSERT INTO d_utente (data_iscriz, username, password, session, nome, cognome, email, email_public, sex, data_nascita, nazione, localita, nome_blog, url_blog, url_feed, status) VALUES (
    '" 
    $data_iscriz "', 
    '" 
    $username_reg "',
    '" 
    $password_reg "',
    'passed',
    '" 
    $nome "',
    '" 
    $cognome "',
    '" 
    $email "',
    '" 
    $email_public "',
    '" 
    $sex "',
    '" 
    $data_nascita "',
    '" 
    $nazione "',
    '" 
    $localita "',
    '" 
    $blog_ttl "',
    '" 
    $blog_url "',
    '" 
    $blog_rss "',
    '" 
    $status "')"
    il tutto viaggia che è un piacere.

    Grazie Emanuele per il consiglio allla verticalizzazione del codice. Utile e di più facile lettura, anche se con l'editor html comunque sia a fine finestra va automaticamente a capo. Però nel modo che hai consigliato tu, va ancora meglio. Thanks again.

  7. #7
    Originariamente inviato da Dirk Pitt
    Grazie Emanuele per il consiglio allla verticalizzazione del codice. Utile e di più facile lettura, anche se con l'editor html comunque sia a fine finestra va automaticamente a capo. Però nel modo che hai consigliato tu, va ancora meglio. Thanks again.
    Prego
    La funzione di word-wrapping (a capo automatico se la riga è più lunga del viewport dell'editor) può causarti qualche problema se in chiusura il wrapping viene salvato nel codice (alcuni editor lo fanno).
    Sarebbe buona regola disabilitarlo, per esempio nel Notepad di Windows togli la spunta a "Formato > A capo automatico"; nota infatti che i buoni editor di codice hanno di default il wrapping disabilitato.

    Io uso Notepad++ che con l'autoformattazione del codice ti dà un aiuto formidabile nel debug:
    http://notepad-plus.sourceforge.net/it/site.htm
    Provalo (se non lo conosci già)
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  8. #8
    Può darsi che l'abbia già sentito, ma di sicuro non l'ho mai usato.
    Uso da anni HTML-Kit (www.chami.com) e non mi "wordwrappa" il codice finale, lo fa (per fortuna) solo a video.

    Grazie delle info.

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.