problema con form

_Ania

Utente Attivo
8 Apr 2012
31
0
0
Roma
Ecco l'epico parto di criric ;)

il file che contiene il form vero e proprio:

PHP:
<?php 
require_once "sezioni.php"; 
$messaggio = "&nbsp;"; 
if (isset($_POST['prenota']) && $_POST['prenota']) { 
    $campi_vuoti = true; 

   foreach ($_POST as $key => $value) { 

        $_POST[$key] = protect($value); 
        if (empty($value)) { 
            $campi_vuoti = false; 
            $messaggio = ">>>>>>> Tutti i campi sono obbligatori <<<<<<<"; 
        } 
        if ($key == "persone") { 
            // verifichiamo che persone sia un numero 
            if (is_numeric($_POST[$key])) { 
                // ricontrolliamo la disponibilita 
                $prenotati = conta($_POST['date'], $_POST['orario']); 

                if (($_POST[$key] + $prenotati) > 50) { 
                    $campi_vuoti = false; 
                    // ripuliamo la select dell'orario 
                    unset($_POST['orario']); 
                    $messaggio = ">>>>>>> I posti richiesti non sono pi&ugrave; disponibili <<<<<<<"; 
                } 
            } else { 
                $campi_vuoti = false; 
                $messaggio = ">>>>>>> Il campo persone deve essere numerico <<<<<<<"; 
            } 
        } 
        // se troviamo un errore usciamo dal ciclo 
        if ($campi_vuoti == false) { 
            break; 
        } 
    } 
    if ($campi_vuoti) { 
        $connessione = mysql_connect("nome-server", "nome-utente", "password-utente", "nome-database"); 
        $db = mysql_select_db("nome-database"); 
        $query = "INSERT INTO utenti SET nome = '" . $_POST['nome'] . "', 
                                         cognome = '" . $_POST['cognome'] . "', 
                                         mail = '" . $_POST['mail'] . "', 
                                         telefono = '" . $_POST['telefono'] . "', 
                                         persone = " . $_POST['persone'] . ", 
                                         data = '" . $_POST['date'] . "', 
                                         orario = '" . $_POST['orario'] . "'"; 
        $risultato = mysql_query($query); 
        mysql_close(); 
       if ($risultato) {
            unset($_POST);
            $messaggio = ">>>>>> Prenotazione accettata <<<<<<< <br/><br/><a href='/home.html'>Torna alla home</a>";
        } else {
            unset($_POST);
            $messaggio = ">>>>>>> Errore contatta la direzione <<<<<<< <br/> <a href='/home.html'>Torna alla home</a>";
        }
    } 
} 

echo "<p class='Sottotitolo' align='center'>$messaggio</p>";

?> 
 
<table width="357" align="center">  
    <form method="post" action="">
     
        <tr> 
        
       	 
            <td colspan="2"> 
                <span class="Sottotitolo"><br/>Scegli la data : </span> &nbsp;
                <select name="date" onchange="this.form.submit()"> 
                    <!-- qui le date disponibili --> 
                    <option value=""></option> 
                    <option value="2012-04-08" 
                    <?php 
                    if (isset($_POST['date']) && $_POST['date'] == "2012-04-08") { 
                        echo " selected='selected'"; 
                    } 
                    ?> 
                            >08 Aprile 2012</option> 
                    <option value="2012-04-15" 
                    <?php 
                    if (isset($_POST['date']) && $_POST['date'] == "2012-04-15") { 
                        echo " selected='selected'"; 
                    } 
                    ?>         
                            >15 Aprile 2012</option> 
                </select>          </td> 
        </tr> 
        <tr> 
            <td colspan="2" class="Testo_bianco"> 
                <span class="Sottotitolo">Scegli l'orario : </span>&nbsp; 
                <select name="orario" onchange="this.form.submit()"> 
                    <?php 
                    // qui metterai gli orari disponibili 
                    $array_orari = array("14:00", "14:30", "15:00", "15:30", "16:00","16:30","17:00","17:30","18:00","18:30", "19:00"); 
                    if (isset($_POST['date'])) { 
                        $data = $_POST['date']; 
                    } else { 
                        $data = "2012-04-08"; 
                    } 
                    echo "<option value=''></option>"; 
                    foreach ($array_orari as $value) { 
                        if (conta($data, $value) < 50) { 
                            echo "<option value='$value'"; 
                            if (isset($_POST['orario']) && $_POST['orario'] == $value) { 
                                echo " selected='selected'"; 
                            } 
                            echo ">$value</option>"; 
                        } 
                    } 
                    ?> 
                </select> 
                <span> 
                    <?php 
                    if (isset($_POST['orario']) && !empty($_POST['orario'])) {
						$limite = (50 - conta($data, $_POST['orario']));
						 echo " " . (50 - conta($data, $_POST['orario'])) . " posti liberi";
                    } 
                    ?> 
                </span>          </td> 
        </tr> 
        <tr> 
            <td colspan="2" class="Testo_bianco"><div align="center">
              <p><span class="Sottotitolo"><br/>
              Riempi i seguenti campi per prenotare :</span></p>
              <p><span class="Sottotitolo"> <br/>
                </span>
              </p>
            </div></td> 
      </tr> 
        <tr> 
            <td class="Sottotitolo">Nome:</td> 
            <td><input type="text" name="nome"
                <?php
                if (isset($_POST['nome'])) {
                    echo " value='" . $_POST['nome'] . "'";
                }
                ?>/></td> 
        </tr> 
        <tr> 
            <td class="Sottotitolo">Cognome:</td> 
            <td><input type="text" name="nome"
                <?php
                if (isset($_POST['cognome'])) {
                    echo " value='" . $_POST['cognome'] . "'";
                }
                ?>/></td>  
        </tr> 
        <tr> 
            <td class="Sottotitolo">Numero di telefono:</td> 
            <td><input type="text" name="telefono"
                <?php
                if (isset($_POST['telefono'])) {
                    echo " value='" . $_POST['telefono'] . "'";
                }
                ?>/></td>  
        </tr> 
        <tr> 
            <td class="Sottotitolo">Indirizzo email:</td> 
            <td><input type="text" name="mail"
                <?php
                if (isset($_POST['mail'])) {
                    echo " value='" . $_POST['mail'] . "'";
                }
                ?>/></td>  
        </tr> 
        <tr> 
            <td class="Sottotitolo">Numero di persone:</td> 
            <td class="Sottotitolo"><select name="persone">
                    <?php
                    if (isset($_POST['orario']) && !empty($_POST['orario'])) {
                        for ($i = 1; $i <= $limite; $i++) {
                            echo "<option value='$i'>$i</option>";
                        }
                    }
                    ?>
                </select></td> 
        </tr>
            <td colspan="2" align="center"><input type="submit" name="prenota" value="Prenota"/></td> 
        </tr> 
    </form> 
</table>

e il file di supporto in php "sezioni"
PHP:
<?php

function conta($data, $orario) { 
    $connessione = mysql_connect("nome-server", "nome-utente", "password-utente", "nome-database"); 
    $db = mysql_select_db("nome-database"); 
    $query = "SELECT  sum(persone) as somma 
                    FROM utenti WHERE data = '$data' && orario = '$orario' GROUP BY orario"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $row = mysql_fetch_array($result); 
    mysql_close(); 
    return $row['somma']; 
} 

function protect($string) { 
    $string = strip_tags($string); 
    $string = htmlentities($string); 

    if (function_exists('get_magic_quotes_gpc') && !get_magic_quotes_gpc()) { 
        $string = addslashes($string); 
    } 

    return $string; 
} 

?>

p.s. Ho provato a fare la modifica che dicevi, ma temo che sia lesiva per i tecnolesi che non capiranno se hanno selezionato il numero giusto...meglio una casella singola...

Davvero non so come ringraziarvi, va bene cercare aiuto su forum, ma voi (tu criric) mi avete riscritto tutto il codice di sana pianta!

Non mancherà una citazione di ringraziamento sulla pagina quando sarà on line. Anche se non ci fate nulla...Anzi, probabilemente vi troverete invasi da incapaci come me che vi tortureranno! ;)

Cmq, grazie
Stefania
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con controllo form in real time jQuery 6
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
Emix Problema con creazione form css/mobile HTML e CSS 3
zammaeng [PHP] Problema form con lista PHP 8
B problema con i form Javascript 0
D Form Registrazione con conferma via email - problema PHP 10
P Problema creazione form con ajax PHP 1
S Problema con Form CSS HTML e CSS 1
F Problema con passaggio variabile da form PHP 3
J Problema con form in bootstrap HTML e CSS 0
O Problema con refresh/form PHP 0
M problema con form scrittura su mysql PHP 3
S Problema php con form PHP 0
T problema strano con procedura di controllo da database, di dati immessi in un form asp Classic ASP 5
A problema con un form HTML e CSS 77
S Problema con l'invio del form in php PHP 0
Y problema allineamento form con internet explorer HTML e CSS 2
A problema con form paypal HTML e CSS 0
A Piccolo problema con form email HTML e CSS 2
P problema validazione form con ajax e jquery Ajax 0
M Problema con form per accesso area riservata ai soci PHP 2
V problema con form in input/output PHP 3
L problema con form ed input PHP 6
F Problema con Form contatti PHP 4
D Problema nella validazione di un form con JQUERY ed AjAX jQuery 4
T Problema con form e recupero dati da mysql PHP 17
A problema con un semplice form per un loggin in php PHP 2
C problema invio mail con form php PHP 0
A problema con l'inserimento di valori in una tabella dopo una ricerca da form Classic ASP 1
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
G Problema con la creazione di una tabella form PHP 9
C AJAX FORM MAIL - problema con gli a capo nel messaggio Javascript 0
G problema con plugin validazione form jquery jQuery 0
T Problema condizione di un form con mysql PHP 15
D problema con form che invia dati al database PHP 0
M problema form con piu allegati e pagamento online PHP 1
F Problema di reindirizzamento con alcune form PHP 4
I [PHP]Problema sito con form login in ogni pagina PHP 7
I Problema con Form html HTML e CSS 9
C Problema con il doppio invio nel form con onsubmit HTML e CSS 9
D Problema con allegato tramite form mail PHP 2
SolidSnake4 problema con form ajax Javascript 8
P Problema moduli Form.php con browser diversi PHP 2
E problema con Database e form PHP 15
M Problema con form dinamico Ajax 0
R Form Mail: Problema con Frame Supporto Mr.Webmaster 4
Ele84 Problema con form action="mailto:...." HTML e CSS 2
K Problema invio dati form con ASP Classic ASP 8
V Problema con FormMail e form!!! Programmazione 1
cosov Problema con numeri nel form Classic ASP 2

Discussioni simili