Visualizzazione risultati 1 fino 11 di 11

Discussione: Problema form e istruzioni

  1. #1
    Guest

    Predefinito Problema form e istruzioni

    Ho creato questo form:
    Codice HTML:
    <form action="istruzioni.php">
     Nome Prodotto:
      <input type="text" name="nomeprodotto"/>
      <br>
     ID Prodotto:
      <input type="text" name="id_prodotto"/>
      <br> 
     Costo di acquisto:
      <input type="text" name="costo_acquisto"/>
      <br>
     Prezzo di vendita:
      <input type="text" name="prezzo_vendita"/>
      <br>
     Data di acquisto (formato AAAA-MM-GG):
       <input type="text" name="data_acquisto"/>
      <br>
     Data di vendita (formato AAAA-MM-GG):
       <input type="text" name="data_vendita"/>
    <br>
     <input type="submit" name="button" id="button" value="Inserisci Dati" />
    </form>
    e poi queste istruzioni:
    Codice PHP:
    <?
    mysql_connect
    (localhost,contoeconomico,*****);
    mysql_select_db("my_contoeconomico") or Die ("Connessione al database fallita");

    $dati= "INSERT INTO transazionimattia (id_prodotto,nomeprodotto,costo_acquisto,prezzo_vendita,data_acquisto,data_vendita) VALUES ('$_POST[id_prodotto]','$_POST[nomeprodotto]','$_POST[costo_acquisto]','$_POST[prezzo_acquisto]','$_POST[data_acquisto]','$_POST[data_vendita]')";

    mysql_query($dati);

    header("Location: fatto.php");
    ?>
    Una volta premuto il pulsante del form dovrebbe inserire i dati nella tabella e indirizzarmi su a "fatto.php". Il problema è che il record che inserisce è vuoto (0 nei numeri e nulla nel "nomeprodotto") ma non capisco dov'è l'errore. Qualcuno può aiutarmi?

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

    Predefinito

    Nella query, gli elementi degli array vanno tra parentesi graffe se li vuoi far sostituire nei doppi apici...

    Ciao!

  3. #3
    Guest

    Predefinito

    ah... e quindi dove dovrei metterle? intorno a $_POST[nome] in modo da sostituire gli apici singoli
    {$_POST[nome]}

    o intorno all'elemento da postare in modo da sostituire le quadre?
    '$_POST{nome}'
    ?

    EDIT:

    ho provato entrambe le soluzioni ma niente...
    Ultima modifica di alemoppo : 11-09-2012 alle ore 00.48.31 Motivo: non far post consecutivi!

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

    Predefinito

    Vedi qui.

    Se vuoi veder un'altra alternativa, io faccio:

    Codice PHP:
    $dati= 'INSERT INTO transazionimattia (id_prodotto,nomeprodotto,costo_acquisto,prezzo_vendita,data_acquisto,data_vendita) VALUES (\''.$_POST['id_prodotto'].'\',\''.$_POST['nomeprodotto'].'\',\''.$_POST['costo_acquisto'].'\',\''.$_POST['prezzo_acquisto'].'\',\''.$_POST['data_acquisto'].'\',\''.$_POST['data_vendita'].'\')';
    In effetti però può far confusione, a prima vista....
    La versione più leggibile (ma infinitesmamente più lenta) è:
    Codice PHP:
    $dati= "INSERT INTO transazionimattia (id_prodotto,nomeprodotto,costo_acquisto,prezzo_vendita,data_acquisto,data_vendita) VALUES ('".$_POST['id_prodotto']."','".$_POST['nomeprodotto']."','".$_POST['costo_acquisto']."','".$_POST['prezzo_acquisto']."','".$_POST['data_acquisto']."','".$_POST['data_vendita']."')";
    Ah, ATTENZIONE: quella query è a rischio di sql_injection! Devi usare la mysql_real_escape_string() !!!

    Ciao!

  5. #5
    Guest

    Predefinito

    Niente da fare nemmeno così, continua ad inserire solo un record tutto vuoto.
    Forse il problema è da qualche altra parte... mah!

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

    Predefinito

    Prova a stampare a video la query, per vedere se è corretta (se i valori vengono sostituiti correttamente.

    Codice PHP:
    ...
    echo
    $dati;
    Ciao!

  7. #7
    Guest

    Predefinito

    L'ho fatta stampare ed è stata una buona idea, perché i valori da inserire che mi stampa sono ... VALUES ('','','','','','') e quindi non ci mette niente dentro...però adesso non so dove potrei aver sbagliato!

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

    Predefinito

    Se hai usato una delle due righe che ti ho scritto sopra, molto probabilmente non son corretti i valori di $_POST[].
    Puoi scrivere il codice html del form ?

    Ciao!

  9. #9
    Guest

    Predefinito

    L'avevo postato all'inizio, comunque il form è questo:
    Codice HTML:
    <form action="istruzioni.php">
     Nome Giocatore:
      <input type="text" name="nome prodotto"/>
      <br>
     ID Giocatore:
      <input type="text" name="id_prodotto"/>
      <br> 
     Costo di acquisto:
      <input type="text" name="costo_acquisto"/>
      <br>
     Prezzo di vendita:
      <input type="text" name="prezzo_vendita"/>
      <br>
     Data di acquisto (formato AAAA-MM-GG):
       <input type="text" name="data_acquisto"/>
      <br>
     Data di vendita (formato AAAA-MM-GG):
       <input type="text" name="data_vendita"/>
    <br>
     <input type="submit" name="button" id="button" value="Inserisci Dati" />
    ed è richiamato tramite include(form.php) da un'altra pagina.
    Sono alle prime armi con il php e mysql ma io qua non vedo errori... forse quello che conta non è l'input name ma l'input id? Non saprei altrimenti

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

    Predefinito

    Quello che conta è il name.
    "nome prodotto" dovresti scriverlo "nomeprodotto"
    "costo_acquisto" => "prezzo_acquisto"

    Poi, devi specificare nel form che i dati sono POST (e non get), quindi:
    Codice HTML:
    <form action="istruzioni.php" method="post">
    Inoltre, hai chiuso il form con </form> ?

    Ciao!

  11. #11
    Guest

    Predefinito

    Ma certo! Avevo dimenticato di mettergli il metodo post! Che banalità!
    Grazie mille per la pazienza, ciao!

Regole di scrittura

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