Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239

    problema apici in query con $_POST

    ciao a tutti sto cercando di scrivere uno script di prova per studio e non capisco come risolvere queto problema ..

    dunque a parte connessione db , config etc etc non riesco a capire come risolvere questa cosa:

    ho un semplicissimo form con 2 campi e vorrei utilizzare il metodo $_POST per introdurli nel database con questa query
    la riga incriminata:

    $query = "insert into contatti (nome, mail) values ('$_POST[nome]' , '$_POST[mail]')"

    che mi da due errori:
    Notice: Undefined index: nome in /var/www/prova/insert.php on line
    anche se il form compare nella pagina
    so che i problemi notice non sono fatali ma visto che sto imparando vorrei iniziare fin da subito a lavorare pulito ...

    il problema credo dipenda dalla mancanza degli apici in nome e mail qui : $_POST[nome]' , '$_POST[mail]
    ho cercato sul forum prima di postare e quindi ho provato con le graffe e con i doppi apici e i punti ma questi creano altri problemi più gravi quindi chiedo :

    qual è la sintassi corretta per realizzare una query di questo tipo ?

    grazie in anticipo

  2. #2

    Re: problema apici in query con $_POST

    l'errore è dovuto al fatto che non hai messo 'nome' e 'mail' fra apici, per cui vengono tratatte come indici di array. Quindi scrivi così:

    $query = "insert into contatti (nome, mail) values ('".$_POST['nome']."' , '".$_POST['mail']."')";

  3. #3
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239
    il problema rimane identico anche così ..

  4. #4
    aspetta aspetta..potresti anche fare così
    in una pagina hai messo un form del tipo seguente?

    Codice PHP:
    <form id="form" method="post" action="pagina2.php">
      
    Nome:<input type="text" name="nome" />
      
    Mail:<input type="text" name="mail" />

      <
    input type="submit" value="OK" />
    </
    form
    pagina2.php poi deve prelevare i dati del form suddetto (che si trova ad esempio in pagina1.php) con le istruzionis eguenti:

    $nome = $_POST['nome'];
    $mail = $_POST['mail'];
    $query = "insert into contatti (nome, mail) values ('$nome' , '$mail')";

    nella tabella del database hai 2 campi di nome NOME e MAIL?

  5. #5
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239
    innanzitutto grazie per l'interessamento ...

    so che posso seguire il secondo metodo oltretutto visto che ho solo due variabili sarebbe semplicissmo ma quello che mi preme non è risolvere la questione dal punto di vista pratico ma capire i metodi giusti ....

    esiste una sintassi corretta per cui non sia necessario definire prima le variabili ?

  6. #6
    Non c'è metodo migliore allora dle primo che ti ho detto...usando il form precedente allora l'istruzione

    $query = "insert into contatti (nome, mail) values ('".$_POST['nome']."' , '".$_POST['mail']."')";

    DEVE funzionare! $_POST è un array globale predefinito che contiene appunto tutti i valori del form passato...

  7. #7
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239
    Originariamente inviato da Emulman
    DEVE funzionare!
    non so cosa dirti a me non funziona ...
    l'errore rimane uguale

  8. #8
    prova a scrivere qua il contenuto della pagina che fa la query così vediamo un pò..

  9. #9
    Utente di HTML.it L'avatar di sandu
    Registrato dal
    Feb 2005
    Messaggi
    239
    ecchilo :

    ------------------------------------------------------------
    <html>
    <head>
    <body>

    <?php
    include 'config.php';
    include 'connectdb.php';
    $query = "insert into contatti (nome, mail) values ('".$_POST['nome']."' , '".$_POST['mail']."')";
    mysql_query($query) or die ("Errore nella query");
    ?>

    <form method="post">
    nome:

    <input type=text size=40 name=nome>



    mail:

    <input type=text size=40 name=mail>




    <input type=submit value=Invia> </form>
    </body>
    </head>
    </html>
    <?php
    include 'closedb.php';
    ?>
    --------------------------------------------------------

    PS php 4.3.10

  10. #10
    supponendo che la pagina si chiama pippo.phpprova così

    Codice PHP:
    <html>
    <head>
    <body>

    <?php
    include 'config.php';
    include 
    'connectdb.php';
    if (
    $_REQUEST['id']) {
      
    $query "insert into contatti (nome, mail) values ('".$_POST['nome']."' , '".$_POST['mail']."')";
      
    mysql_query($query) or die ("Errore nella query");
    }
    ?>

    <form method="post" id="form" action="pippo.php?id=1">
    nome:

    <input type=text size=40 name=nome>



    mail:

    <input type=text size=40 name=mail>




     <input type=submit value=Invia> </form>
    </body>
    </head>
    </html>
    <?php
    include 'closedb.php';
    ?>

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.