Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    inserire campi obbligatori (script che manda un file a mysql)

    Salve a tutti!
    avrei bisogno di un piccolo aiutino...ho fatto questo script: è una form che invia dati e file a un database mysql. Esiste un modo per obbligare gli utenti a inserire tutte le informazioni???
    praticamente mi serve rendere tutti i campi obbligatori...


    <?php if(!isset($_POST)) $_POST = $HTTP_POST_VARS; $self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"]; if($_POST["invia"]) { // CONNESSIONE AL MYSQL @mysql_connect("localhost", "xxx", "xxxx") or die("Connessione fallita !"); // SELEZIONE DATABASE @mysql_select_db("my_xxx") or die("Selezione Database fallita !"); // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"])); // ESEGUIAMO LA QUERY DI INSERIMENTO $result = @mysql_query("INSERT INTO file_binari (Autore, Titolo, Descrizione, DatiBinari, Nome, Size, Type) VALUES ('" . $_POST["Autore"] . "','" . $_POST["Titolo"] . "','" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "', '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')") or die("Query di inserimento fallita !"); // ESITO POSITIVO echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database."; // CHIUDIAMO LA CONNESSIONE A MYSQL @mysql_close(); } else { echo " <html> <head> <title>Form per l'inserimento</title> </head> <body> <div align=\"center\"> <table> <form action=\"$self\" method=\"POST\" enctype=\"multipart/form-data\"> <tr> <td valign=\"top\">Autore</td> <td><textarea name=\"Autore\" cols=\"40\" rows=\"1\"></textarea></td> </tr> <tr> <td valign=\"top\">Titolo</td> <td><textarea name=\"Titolo\" cols=\"40\" rows=\"1\"></textarea></td> </tr> <tr> <td valign=\"top\">Descrizione </td> <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td> </tr> <tr> <td>File</td> <td><input type=\"file\" name=\"file_binario\" size=\"40\"></td> </tr> <tr> <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\"> <input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td> </tr> </form> </table> </div> </body> </html> "; } ?>

    grazie a tutti!

  2. #2
    Per fare una cosa fatta bene, dovresti fare i controlli lato client (con javascript) ed anche lato server (con PHP).

    Per i controlli javascript puoi leggere qui , per quelli PHP puoi usare le funzionti empty() , is_int(), ecc.

    Ps. Per le prossime volte, sarebbe meglio che il codice lo scrivessi tra i TAG appropriati, altrimenti diventiamo strabici!

  3. #3
    Originariamente inviato da maje
    Per fare una cosa fatta bene, dovresti fare i controlli lato client (con javascript) ed anche lato server (con PHP).

    Per i controlli javascript puoi leggere qui , per quelli PHP puoi usare le funzionti empty() , is_int(), ecc.

    Ps. Per le prossime volte, sarebbe meglio che il codice lo scrivessi tra i TAG appropriati, altrimenti diventiamo strabici!
    hai ragione! non ho visto l'anteprima!!!...

  4. #4
    cavolo ho provato java ma mi dà sempre errore.....se ti scrivo il codice (stavolta ammodino) mi diresti cosa e dove devo aggiungere??? grazie mille davvero!!!!


    Codice PHP:
    <?php  if(!isset($_POST)) $_POST $HTTP_POST_VARS$self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"];  if($_POST["invia"]) {  // CONNESSIONE AL MYSQL @mysql_connect("localhost", "xxx", "xxx") or die("Connessione fallita !");  // SELEZIONE DATABASE @mysql_select_db("my_xxxxx") or die("Selezione Database fallita !");  // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));  // ESEGUIAMO LA QUERY DI INSERIMENTO $result = @mysql_query("INSERT INTO file_binari (Autore, Titolo, Descrizione, DatiBinari, Nome, Size, Type)      VALUES ('" . $_POST["Autore"] . "','" . $_POST["Titolo"] . "','" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "', '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')") or die("Query di inserimento fallita !");  // ESITO POSITIVO echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";  // CHIUDIAMO LA CONNESSIONE A MYSQL @mysql_close();  } else {  echo " <html> <head> <title>Form per l'inserimento</title> </head> <body>    <div align=\"center\"> <table> <form action=\"$self\" method=\"POST\" enctype=\"multipart/form-data\" name=\"modulo\">  <tr> <td valign=\"top\">Autore</td> <td><textarea name=\"Autore\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  <tr> <td valign=\"top\">Titolo</td> <td><textarea name=\"Titolo\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  <tr> <td valign=\"top\">Descrizione </td> <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td> </tr> <tr> <td>File</td> <td><input type=\"file\" name=\"file_binario\" size=\"40\"></td> </tr> <tr> <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\"> <input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td> </tr> </form> </table> </div>  </body> </html>   ";   }     ?>

  5. #5
    Ok, il prossimo passp è aggiungere un pò di indentazione e di spazi, così diventa ancora più leggibile

    Codice PHP:
    <?php  

    if(!isset($_POST)) 
    $_POST $HTTP_POST_VARS

    $self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"];

    if(
    $_POST["invia"]) {  // CONNESSIONE AL MYSQL 
    @mysql_connect("localhost""xxx""xxx") or die("Connessione fallita !");  
    // SELEZIONE DATABASE @mysql_select_db("my_xxxxx") or die("Selezione Database fallita !"); 

    // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE 
    $data addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"])); 

    // ESEGUIAMO LA QUERY DI INSERIMENTO $result = @mysql_query("INSERT INTO file_binari (Autore, Titolo, Descrizione, DatiBinari, Nome, Size, Type)      VALUES ('" . $_POST["Autore"] . "','" . $_POST["Titolo"] . "','" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "', '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')") or die("Query di inserimento fallita !");  

    // ESITO POSITIVO 
    echo "Il file " basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";  

    // CHIUDIAMO LA CONNESSIONE A MYSQL
    @mysql_close();  

    } else {  

    echo 
    " <html> <head> <title>Form per l'inserimento</title> </head> <body>    <div align=\"center\"> <table> <form action=\"$self\" method=\"POST\" enctype=\"multipart/form-data\" name=\"modulo\">  <tr> <td valign=\"top\">Autore</td> <td><textarea name=\"Autore\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  <tr> <td valign=\"top\">Titolo</td> <td><textarea name=\"Titolo\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  <tr> <td valign=\"top\">Descrizione </td> <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td> </tr> <tr> <td>File</td> <td><input type=\"file\" name=\"file_binario\" size=\"40\"></td> </tr> <tr> <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\"> <input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td> </tr> </form> </table> </div>  </body> </html>   ";   

    }    
    ?>
    Innanzittutto per la scrittura del form ti conviene usare la sintassi heredoc , così sei sicuramente più comodo se vuoi scrivere il form nel codice PHP:

    Codice PHP:

    echo <<<FORM

    <html>
    <head>
    <title>Form per l'inserimento</title>
    <script type="text/javascript">

    function validate_required(field,alerttxt) {

        
      if (field.value==null||field.value=="") {
        alert(alerttxt);return false;
      } else {
        return true;
      }
             
      
    }

    function validate_form(thisform) {

          var autore = document.getElementById('autore');    
          if (validate_required(autore,"Il campo autore deve essere compilato!")==false) {
             autore.focus();
             return false;
           }    

             //var titolo, ecc.
      
    }
    </script>
    </script>
    </head>
    <body>
    <div align="center">
    <table>
        <form action="
    $self" method="POST" enctype="multipart/form-data"
            name="modulo" onsubmit="return validate_form(this);">
        <tr>
            <td valign="top">Autore</td>
            <td><textarea id="autore" name="Autore" cols="40" rows="1"></textarea></td>
        </tr>
        <tr>
            <td valign="top">Titolo</td>
            <td><textarea name="Titolo" cols="40" rows="1"></textarea></td>
        </tr>
        <tr>
            <td valign="top">Descrizione</td>
            <td><textarea name="Descrizione" cols="40" rows="5"></textarea></td>
        </tr>
        <tr>
            <td>File</td>
            <td><input type="file" name="file_binario" size="40"></td>
        </tr>
        <tr>
            <td colspan="2" valign="bottom" align="center" height="30"><input
                type="submit" value="Invia il file" name="invia"></td>
        </tr>
        </form>
    </table>
    </div>
    </body>
    </html>

    FORM; 
    Ti ho scritto un piccolo esempio prendendo spunto da qui. Per ogni campo aggiungi nell'HTML un id, e nel codice javascript il controllo relativo, che può essere molto simile a quello che ti ho scritto per il campo autore. Ricordati però che dovresti fare devi controlli anche lato server con PHP.

  6. #6
    grazie mille funziona alla grande.....provo ad aggiungere gli altri campi!

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    24
    Altro script per lo stesso scopo.
    Ma nel caso ci siano parecchi campi, tutti obbligatori, per la sola avvenuta compilazione sarebbe possibile fare una verifica unica per tutti? con unico if e unico msg di alert uguale per tutti intendo, senza dover inserire kilometriche righe ripetitive di codice

    codice:
    <head>
    <script type="text/javascript">
    
    function Modulo() {
    
    if ((document.modulo.campo1.value == "")) {
               alert("Campo1 è obbligatorio");
               document.modulo.campo1.focus();
               return false;        
    }
    
    else if ((document.modulo.campo2.value == "")) {
              alert("Campo2 è obbligatorio");
              document.modulo.campo2.focus();
              return false;        
    }
    
    	else {
               document.modulo.action = "file.php";
               document.modulo.submit();        
    }
      }
    </script>
    
    </head>
    <body> 
    <form method="post" name="modulo" action="file.php">
    <input type="" size="" name="campo1" maxlength=""></td>
    <input type="" size="" name="campo2" maxlength=""></td>
    <input type="button" value="Clicca" onClick="Modulo()">
    </body>

  8. #8
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    esempio

    Codice PHP:
    $messaggio "";

    foreach(
    $_POST AS $key => $value){
        if(!empty(
    $value))//controlla se il campo non è vuoto
            
    $messaggio .= "Campo: ".$key."\nValore: ".trim(stripslashes($value))."\n\n";


  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    24
    la stavo pensando in jscript, ma non é la sezione in effetti, e questa va cmq benissimo per il php, grazie

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.