• User

    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


  • User Attivo

    penso che debba mettere a posto le virgolette nella query dove richiami $_POST[nomeutente] invece che $_POST['nomeutente']

    in pratica:
    [php]$inserimento= mysql_query("INSERT INTO rec (nome_utente, data_ora_ins) VALUES ('".$_POST['nome_utente']."', now())");[/php]


  • User

    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...


  • User Attivo

    Sei sicuro che $_POST['nome_utente'] esista?
    Probabilmente non è dichiarato...

    Comunque vorrei anche sapere da dove arriva quel now(). E' una funzione?


  • User Attivo

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

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

    Consiglio: conviene sempre filtrare $_POST['nome_utente'] con apposite funzioni.


  • User

    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]<?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><strong> Indica cortesemente il tuo nome </strong></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($lettura_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 "<strong>Utente:</strong> $nome_utente<br><br><strong>Data inserimento recensione:</strong> $data_ora_ins<br><br>";
    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>[/php]


  • User Attivo

    Semplicissimo!

    [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><strong> Indica cortesemente il tuo nome </strong></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(){
    if($_POST){
    $inserimento=mysql_query("insert into recensioni (nome_utente, data_ora_ins) values ('".$_POST['nome_utente']."', now())");
    echo "inviato con successo";}
    }else{
    die("Inserisci l'utente!");
    }
    ?>
    <?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($lettura_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 "<strong>Utente:</strong> $nome_utente<br><br><strong>Data inserimento recensione:</strong> $data_ora_ins<br><br>";
    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;
    }
    ?>
    <br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.</div></body>
    </html>[/PHP]


  • User

    Grazie mille ora funziona!
    grazie mille a tutti


  • User Attivo

    Prego 😄