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

    Form php + sql - DUBBIO!

    Ciao a tutti, avrei bisogno di un piccolissimo aiuto!

    Ho necessità di creare un form in Html e Php per inserire dei dati da passare ad un database sql.

    Questo form lo avrei già fatto, ma adesso devo integrare un imput del tipo:

    codice:
    SI<INPUT TYPE="RADIO" NAME="si">
    
    
    NO<INPUT TYPE="RADIO" NAME="no">
    Dovrei in pratica inserire una scelta Si o No da passare ad un campo del mio db.

    Questo il codice del form:

    codice:
    <form action='?inviodati=ok' method='POST'>
    
        <p align="center"></p>
     
      <p align="center">
      
       Nome
    
        <input type='text' name='nome'>
    
    
    
      Cognome
    
        <input type='text' name='cognome'>
    
        
     
    SI<INPUT TYPE="RADIO" NAME="si">
    
    
    NO<INPUT TYPE="RADIO" NAME="no">
    
    
       
       Indirizzo E-mail
    
        <input type='text' name='mail'>
    
        
        Commento <input type='text' name='commento'> 
    
        
        
    
        <input type='submit' value='Invia Registrazione'>
    
        
    
      </p>
    </form>
    Questo il php per eseguire le funzioni.


    Codice PHP:
    if ($nome == TRUE && $mail == TRUE && $cognome == TRUE)  {


    // controlliamo se il campo mail è stato scritto in maniera errata


    $email eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail); 

    if ( 
    $email == TRUE ) {



    // controlliamo se l'mail è presente già nel database

    $sql mysql_query("SELECT * FROM tabella_registrati WHERE mail = '$mail'") or die ("L'indirizzo e-mail e' gia' presente nel database"); 

    $num_rows mysql_num_rows($sql);  

    $mail_md5=md5($mail);

    if ( 
    $num_rows == ) {  // ora controlliamo che le password inserite siano identiche 


        
    $num_rows_is=mysql_num_rows(mysql_query("SELECT * FROM tabella_registrati WHERE attiva='1'")); //verifico quanti record ho in tutto 
       
        
    if($num_rows_is<800){ // elemento per limitare il numero di adesioni

    // esegui l'insert



    mysql_query("INSERT INTO tabella_registrati
                 ( id , cognome, nome , mail, si, no ) VALUES ('','
    $cognome', '$nome', '$telefono', '$mail','' , '$mail_md5')") OR DIE(mysql_error()); 



    Qualcuno saprebbe dirmi cosa fare nell'insert che ho nel codice per prendere e passare il dato dell'input radio???

    Grazie mille!!

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    codice:
    <form action='?inviodati=ok' method='POST'>
    
        <p align="center"> </p>
     
      <p align="center">
      
       Nome
    
        <input type='text' name='nome'>
    
    
    
      Cognome
    
        <input type='text' name='cognome'>
    
        
     
    SI<INPUT TYPE="RADIO" value="si" NAME="sino">
    
    
    NO<INPUT TYPE="RADIO" value="no" NAME="sino">
    
    
       
       Indirizzo E-mail
    
        <input type='text' name='mail'>
    
        
        Commento <input type='text' name='commento'> 
    
        
        
    
        <input type='submit' value='Invia Registrazione'>
    
        
    
      </p>
    </form>
    Codice PHP:
    $sino=$_REQUEST['sino']; 

  3. #3
    Prova modificando il form in questo modo:

    SI<INPUT TYPE="RADIO" NAME="sino" VALUE="Si">


    NO<INPUT TYPE="RADIO" NAME="sino" VALUE="No">


    richiamando nel php il valore del campo "sino"

  4. #4
    Originariamente inviato da bstefano79
    codice:
    <form action='?inviodati=ok' method='POST'>
    
        <p align="center"> </p>
     
      <p align="center">
      
       Nome
    
        <input type='text' name='nome'>
    
    
    
      Cognome
    
        <input type='text' name='cognome'>
    
        
     
    SI<INPUT TYPE="RADIO" value="si" NAME="sino">
    
    
    NO<INPUT TYPE="RADIO" value="no" NAME="sino">
    
    
       
       Indirizzo E-mail
    
        <input type='text' name='mail'>
    
        
        Commento <input type='text' name='commento'> 
    
        
        
    
        <input type='submit' value='Invia Registrazione'>
    
        
    
      </p>
    </form>
    Codice PHP:
    $sino=$_REQUEST['sino']; 
    Bene, e fin quì ci siamo...
    a questo punto, dovrei fare in modo che questo dato venga inserito nel mio campo sul database.
    Se io nella query ho:

    Codice PHP:
    mysql_query("INSERT INTO tabella_registrati
                 ( id , cognome, nome , mail, si, no ) VALUES ('','
    $cognome', '$nome', '$telefono', '$mail','' )") OR DIE(mysql_error()); 
    Come dovrei allestirla?!
    E poi, nel db che tipologia di campo dovrei avere?! Un BOOL oppure?!

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    puoi usare un int(1) che assume valori 0 o 1 (ad esempio 0 no e 1 si)


    Codice PHP:
    $sino=0;
    if(
    $_REQUEST['sino']=="si")
    {
         
    $sino=1;

    }
    mysql_query("INSERT INTO tabella_registrati 
                 ( id , cognome, nome , mail, sino ) VALUES ('','
    $cognome', '$nome', '$telefono', '$mail',$sino )") OR DIE(mysql_error()); 
    in VALUES il $sino è senza virgolette essendo un campo int

  6. #6

    RISOLTO!

    Grazie al vostro aiuto ho risolto e sono riuscito a modificare il codice secondo le mie necessità.

    Per dovere includo il codice per intero,semmai dovesse servire ai posteri!!

    Codice PHP:
    <?php

    // includiamo il file di connessione al database 

    include ('configurazione.php');

    // creiamo il nostro modulo di registrazione

    ?>

    <form action='?inviodati=ok' method='POST'>

        <p align="center"></p>
     
      <p align="center">
      
       Nome

        <input type='text' name='nome'>

      Cognome

        <input type='text' name='cognome'>
        
      Indirizzo E-mail

        <input type='text' name='mail'>


       
    L'incontro e' stato di Suo gradimento? 


     
      SI<INPUT TYPE="RADIO" NAME="sino" VALUE='si'>   &nbsp&nbsp&nbsp   NO<INPUT TYPE="RADIO" NAME="sino" VALUE='no'>



        
    Se lo desidera, la invitiamo a lasciare un breve commento:
     
        <textarea cols=20 rows=4 name="commento"></textarea>
        
        
         

        
        

        <input type='submit' value='Invia'>

        

      </p>
    </form>



    <div align="center">

      <?php

    // attraverso un if controlliamo che il form sia stato inviato 

    if ( $_GET['inviodati'] == "ok" ) {


    // recuperiamo i dati inviati con il form


    $nome $_POST['nome'];

    $cognome $_POST['cognome'];

    $commento $_POST['commento'];

    $mail $_POST['mail'];

    $sino=$_REQUEST['sino'];




    // ora controlliamo che i campi siano stati tutti compilati

    if ($nome == TRUE && $mail == TRUE && $cognome == TRUE)  {


    // controlliamo se il campo mail è stato scritto in maniera errata


    $email eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail); 

    if ( 
    $email == TRUE ) {



    // controlliamo se l'mail è presente già nel database

    $sql mysql_query("SELECT * FROM tabella_registrati WHERE mail = '$mail'") or die ("L'indirizzo e-mail e' gia' presente nel database"); 



    $sino=0
    if(
    $_REQUEST['sino']=="si"

         
    $sino=1


    mysql_query("INSERT INTO tabella_registrati  
                 ( id , cognome, nome , mail, sino, commento ) VALUES ('','
    $cognome', '$nome', '$mail',$sino, '$commento')") OR DIE(mysql_error());




    // e inviamo una mail con la riuscita registazione



    // messaggio da far visualizzare all'utente finale

    echo "Grazie per aver espresso la sua opinione riguardo la nostra iniziativa.";




    else {

    echo 
    "La mail non e' idonea per la registrazione.";

    }




    else {

    echo 
    "I campi 'Nome', 'Cognome' e 'Indirizzo E-Mail' sono obbligatori.";

    }
    }

    ?>

    Grazie a tutti!

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    solo per chiarezza, ho visto che per sino hai usato $_REQUEST

    dal manuale di php

    $_REQUEST an associative array that by default contains the contents of $_GET, $_POST and $_COOKIE.

    Io avevo messo $_REQUEST perchè non avevo visto la metodologia di invio della form ma puoi usare benissimo $_POST anche per sino

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.