Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Avviso NOTICE in PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149

    Avviso NOTICE in PHP

    Ciao a tutti,

    mi potete indicare cortesemente quale errore di sintassi sto facendo in questo file php?



    $inserimento=mysql_query("insert into rec (nome_utente, data_ora_ins) values (\"$_POST[nome_utente]\", now())");



    Richiamando il file mi appare l'errore:



    Notice: Undefined index: nome_utente in C:\..... on line.....



    Grazie mille e buona giornata a tutti

  2. #2
    scrivi così

    $inserimento=mysql_query("insert into rec (nome_utente, data_ora_ins) values ('".$_POST['nome_utente']."', now())");

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Non capisco....ho provato con la modifica ma mi compare comunque lo stesso errore.

    Uso EasyPHP come programma per simulare, che include PHP versione 5.2.0, non so se può essere di aiuto...

  4. #4
    no, no la versione di PHP non importa..la sointassi che ti ho dato cmq è quella corretta, nessun dubbio..semmai nella tabella del database c'è un campo di nome 'nome_utente' ???

  5. #5
    Originariamente inviato da Emulman
    no, no la versione di PHP non importa..la sointassi che ti ho dato cmq è quella corretta, nessun dubbio..semmai nella tabella del database c'è un campo di nome 'nome_utente' ???
    dovrebbe controllare se esiste $_POST['nome_utente'] . se mancasse il campo l'errore sarebbe di mysql

    @luseresi prova a stampare la query oppure l'array $_POST

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Vi spiego bene il tutto perche' mi rendo conto di avervi dato poche informazioni.
    In pratica ho creato una database, vi faccio l'esempio che vi allego, con due campi: nome_utente di tipo varchar(40) e data_ora_ins di tipo datetime.
    Ho creato un unico file in php con uno switch, diviso in tre parti: la form in html dove scrivo il nome, la seconda parte che scrive i dati della form nel database, e il terzo campo che visualizza i dati del database a video.
    Ho easyPHP installato, quindi se provo a richiamare la parte che elabora i dati e li scrive nel database, appare l'errore che vi ho segnalato "Notice: Undefined index: nome_utente ".
    I dati che vengono scritti nel database sono quindi: il nome utente e la data e l'ora di inserimento del record nel database.
    Non riesco a capire come posso risolvere quella segnalazione notice...ho bisogno del vostro aiuto.
    Grazie mille per la vostra disponibilità e buona giornata a tutti.
    Ecco il file php:
    <?php
    $connessione=mysql_connect("localhost", "root", "");
    $selezione_db=mysql_select_db("prova_db", $connessione);
    ?>
    <HTML>
    <HEAD>
    <TITLE>titolo</TITLE>
    </HEAD>
    <BODY>
    <?php
    function nrec(){
    ?>
    <form name="moduloGuest" id="moduloGuest" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="azione" value="elabora" />
    <table>

    <tr>
    <td> Indica cortesemente il tuo nome </td>
    <td><input type="text" name="nome_utente" id="nome_utente" size="30" maxlength="40" value=""></td>
    </tr>

    <tr>
    <td align="center" colspan="2"><input type="submit" value="Invia il messaggio!"></td>
    </tr>
    </table>
    </form>
    <?php
    }
    function elabora(){
    $inserimento=mysql_query("insert into recensioni (nome_utente, data_ora_ins) values ('".$_POST['nome_utente']."', now())");
    echo "inviato con successo";}
    ?>
    <?php
    function read(){
    $lettura_risultati=mysql_query("select nome_utente, date_format(data_ora_ins, '%d/%m/%Y - ore %H:%i:%s') as data_formattata from recensioni order by nome_utente");
    if(mysql_num_rows($lettura_risultati)>0){
    echo "<table>";
    $flag_colore=0;
    while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
    $nome_utente=$scatola_temporanea['nome_utente'];
    $data_ora_ins=$scatola_temporanea['data_formattata'];
    echo "<tr>";
    if($flag_colore==0){
    echo "<td bgcolor=\"#FFFF00\">";
    $flag_colore=1;
    }
    else{
    echo "<td bgcolor=\"#C0C0C0\">";
    $flag_colore=0;
    }
    echo "Utente: $nome_utente

    Data inserimento recensione: $data_ora_ins

    ";
    echo "</tr>";
    }
    echo "</table>";
    }
    else{
    echo "Non é stata inserita ancora nessun record in questa sezione. Se hai piacere essere il primo, clicca nella scelta <a href=\"nrec.html\">Nuova Recensione</a>";
    }
    }
    switch($_REQUEST['azione'])
    {
    case "inserisci":
    nrec();
    break;
    case "elabora":
    elabora();
    break;
    case "leggi":
    read();
    break;
    }
    ?>
    </body>
    </html>

  7. #7
    ho visto che hai definito il form nella funzione nrec: SBAGLIATISSIMO! le variabili definite in un form sono invisibili al di fuori della funzione a meno che non usi l'istruzione GLOBAL o RETURN! perciò nella funzione read cerchi di usare variabili inesistenti..per cui devi eliminare la funzione nrec, inserire il form nella pagina principale e dirottare l'elaborazione ad un'altra pagina dovre ci sarà il resto degli script che hai messo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Grazie mille, adesso ci do un'occhiata più approfondita!
    grazie ancora!

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.