Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    errore form html restituisce pagina php

    Buongiorno a tutti
    sono alle prime esperienze con PHP, chiedo gentilmente aiuto.
    Ho creato un semplice form HTML per inserire in un DB MySQL dei dati attraverso una pagina PHP. Nel mio DB 'school' ho creato la tabella 'student'

    il codice HTML per il form è (Recordinsertform.html):

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
    Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    
    <head>
    <title>Form Input Data</title>
    </head>
    
    <body>
    <table border="1">
      <tr>
        <td align="center">Form Input Employees Data</td>
      </tr>
      <tr>
        <td>
          <table>
            <form method="post" action="Recordinsert.php">
            <tr>
              <td>ID</td>
              <td><input type="text" name="id" size="5">
              </td>
            </tr>
            <tr>
              <td>NAME</td>
              <td><input type="text" name="name" size="40">
              </td>
            </tr>
             <tr>
              <td>CLASS</td>
              <td><input type="text" name="class" size="5">
              </td>
            </tr>
            <tr>
              <td></td>
              <td align="right"><input type="submit" 
              name="submit" value="Sent"></td>
            </tr>
            </table>
          </td>
        </tr>
    </table>
    </body>
    </html>
    il codice PHP per scrivere i dati è (Recordinsert.php):

    codice:
    <?php
    $con = mysql_connect("localhost","root","root");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("school", $con);
    
    $sql="INSERT INTO student (id, name, class)
    VALUES
    ('$_POST[id]','$_POST[name]','$_POST[class]')";
    
    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";
    
    mysql_close($con)
    ?>
    l'errore è il seguente: quando invio i dati, il browser (Safari) mi apre il codice della pagina php, lo visualizza a video e non scrive nulla in DB.

    Qualcuno mi sa dire cosa sbaglio?
    grazie in anticipo
    RM

  2. #2
    Non sono un esperto..ma prova a fare così:

    codice:
    <?php
    $con = mysql_connect("localhost","root","root") or die("Errore connessione MySQL");
    mysql_select_db("school", $con) or die("Errore connessione database");
    $sql="INSERT INTO student (id, name, class) VALUES ('".$_POST["id"]."','".$_POST["name"]."','".$_POST["class"]."')" or die("Errore invio query string");
    echo "1 record added";
    mysql_close($con)
    ?>

  3. #3
    Sorry, devo fare un doppio post perchè non mi è possibile editare il mio messaggio precedente dopo oltre 60 minuti.

    codice:
    <?php
    $con = mysql_connect("localhost","root","root") or die("Errore connessione MySQL");
    mysql_select_db("school", $con) or die("Errore connessione database");
    MySQL_query("INSERT INTO student (id, name, class) VALUES ('".$_POST["id"]."','".$_POST["name"]."','".$_POST["class"]."')") or die("Errore invio query string");
    echo "1 record added";
    mysql_close($con)
    ?>

  4. #4
    Grazie 1000! funziona

  5. #5
    Gli elementi post del form si richiamano con $_POST e i name degli elementi di quest'ultimo racchiusi tra doppi apici.
    SI -> $_POST["prova"]
    NO -> $_POST[prova]


  6. #6
    Se posso approfitto ancora della tua disponibilità
    se io volessi che una volta eseguito il codice PHP, il sistema tornasse automaticamente al form in HTML senza visualizzare altro?
    In questo momento mi fa vedere a video il risultato di echo io vorrei invece che l'utente non vedesse altro che il form stesso
    grazie

  7. #7
    Sempre disponibile
    Puoi eseguire il reindirizzamento verso la pagina "padre" con javascript.

    codice:
    <?php
    $con = mysql_connect("localhost","root","root") or die("Errore connessione MySQL");
    mysql_select_db("school", $con) or die("Errore connessione database");
    MySQL_query("INSERT INTO student (id, name, class) VALUES ('".$_POST["id"]."','".$_POST["name"]."','".$_POST["class"]."')") or die("Errore invio query string");
    mysql_close($con);
    echo "<HTML><HEAD><SCRIPT TYPE='TEXT/JAVASCRIPT'>location.href='index.php';</SCRIPT></HEAD><BODY></BODY></HTML>";
    ?>
    index.php sarebbe la pagina in cui vuoi che avvenga in reindirizzamento

  8. #8
    grandissimo.... perfetto funziona.
    Nel frattempo sto procedendo con i miei primi tentativi...
    Vorrei che la pagina Recordinsertform.html fosse protetta e accessibile solo da utenti autorizzati. Ho seguito le indicazioni di http://www.hostingsolutions.it/guide/phplogin.php#pasx (che controlla i dati di autenticazione su un banalissimo txt file - ma per ora va bene) e tutto è OK, posso accedere alla pagina solo dopo aver effettuato il login.
    A questo punto mi servirebbe che la variabile di sessione (dove è archiviato il nome dell'utente che si è loggato/a) venisse riportata in maniera evidente nella pagina Recordinsertform.html; tanto per intendersi una cosa del tipo 'Benvenuto XXXX'
    grazie per l'help
    RM

  9. #9
    Per delle prove un file di testo va bene, poi è inutile dire che in ambito web si rende assolutamente necessario un database per la massiccia, o meno, archiviazione dati.

    Per quanto riguarda la tua richiesta, penso che potresti fare così:

    File PHP:
    codice:
    <?php
    session_start();
    $con = mysql_connect("localhost","root","root") or die("Errore connessione MySQL");
    mysql_select_db("school", $con) or die("Errore connessione database");
    MySQL_query("INSERT INTO student (id, name, class) VALUES ('".$_POST["id"]."','".$_POST["name"]."','".$_POST["class"]."')") or die("Errore invio query string");
    mysql_close($con);
    $_SESSION["mex"]="Benvenuto ".$_POST["name"].", grazie per esserti loggato!";
    echo "<HTML><HEAD><SCRIPT TYPE='TEXT/JAVASCRIPT'>location.href='index.php';</SCRIPT></HEAD><BODY></BODY></HTML>";
    ?>
    Trasformi il file Recordinsertform.html in Recordinsertform.php e poi:

    codice:
    <?php session_start(); ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
    Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    
    <head>
    <title>Form Input Data</title>
    </head>
    
    <body onload="javascript:<?php if($_SESSION["mex"]){ echo "alert('".$_SESSION["mex"]."');\">"; unset($_SESSION["mex"]);} else echo "\">"; ?>
    <table border="1">
      <tr>
        <td align="center">Form Input Employees Data</td>
      </tr>
      <tr>
        <td>
          <table>
            <form method="post" action="Recordinsert.php">
            <tr>
              <td>ID</td>
              <td><input type="text" name="id" size="5">
              </td>
            </tr>
            <tr>
              <td>NAME</td>
              <td><input type="text" name="name" size="40">
              </td>
            </tr>
             <tr>
              <td>CLASS</td>
              <td><input type="text" name="class" size="5">
              </td>
            </tr>
            <tr>
              <td></td>
              <td align="right"><input type="submit" 
              name="submit" value="Sent"></td>
            </tr>
            </table>
          </td>
        </tr>
    </table>
    </body>
    </html>
    Naturalmente puoi sfruttare il fatto che hai già la sessione aperta nella pagina "padre" (in questo caso Recordinsertform) senza aprirla unicamente per il messaggio di benvenuto. Nel caso, invece, non ti interessa rimanere aperta la sessione, la puoi semplicemente distruggere:

    codice:
    <body onload="javascript:<?php if($_SESSION["mex"]){ echo "alert('".$_SESSION["mex"]."');\">"; unset($_SESSION["mex"]); session_destroy();} else echo "\">"; ?>

  10. #10
    non so perchè javascript me lo scrive con il trattino..cmq va tutto attaccato!
    Lo inserito solo dopo BODY onload quindi ti basta modificarlo solo li.


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 © 2026 vBulletin Solutions, Inc. All rights reserved.