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

    Campi visibili solo se si sbaglia

    Ciao a tutti,
    come già anticipato in un'altra discussione, di codice non capisco un cavolo e quindi chiedo aiuto.
    Questo è il link:

    http://lucaserafino87.altervista.org/contattami.php

    Ho risolto quasi tutti i problemi del mio modulo, ma ne ho ancora 2 e sono:
    1) Nei campi mail e telefono viene scritto vicino al campo da compilare "È obbligatorio specificare un valore.Formato non valido. ", ma io vorrei che venisse fuori solo se uno sbaglia a compilarlo o non lo inserisce.

    2) una volta compilato tutto e inviata la richiesta, vorrei che portasse alla pagina di successo (successo.html) che ho già creato. Vedo che il modulo comunque funziona perchè mi arriva la mail, ma non collega alla pagina.

    Ecco le 2 parti del codice che compongono la pagina:

    Codice PHP:
    <fieldset
        <
    legend>Modulo Contatto</legend
        <
    form id="form1" method="post" action="#"
        

     
        <
    label for="nome2">Nome</label
        <
    input name="nome" type="text" id="nome2" size="40" />
        </
    p>
        

      
          <
    label for="cognome">Cognome</label
          <
    input name="cognome" type="text" id="cognome" size="45" /> 
        </
    p
        

    <
    span id="sprytextfield1"
        <
    label for="telefono">N.Telefono</label
        <
    input name="telefono" type="text" id="telefono" maxlength="15" /> 
        <
    span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span

         </
    p
        

     <
    span id="sprytextfield2"
        <
    label for="email">Ind-mail</label
        <
    input name="email" type="text" id="email" size="50" /> 
        <
    span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span

         <
    label for="descrizione">
     
        
    Descrizione</label
        <
    textarea name="descrizione" cols="47" id="descrizione"></textarea
        
     
        </
    p
        

    Invia richiesta 
        
    <input type="submit" name="invia" id="invia" value="Invia" /> 
        
     
        </
    p
             
        </
    form
        </
    fieldset



    Codice PHP:
    <?php 


    // Valori del form 
    $nome mysql_real_escape_string($_POST['nome']); 
    $cognome mysql_real_escape_string($_POST['cognome']); 
    $telefono mysql_real_escape_string($_POST['telefono']); 
    $email mysql_real_escape_string($_POST['email']); 
    $descrizione mysql_real_escape_string($_POST['descrizione']); 

    // controllo campi vuoti 
    if($nome == "" || $cognome == ""){ 
        echo 
    "Devi inserire nome e congnome valido"
    }elseif(
    $telefono == ""){ 
        echo 
    "Devi inserire il numero di telefono"
    }elseif(
    $email == ""){ 
        echo 
    "Devi inserire l'email"
    }elseif(
    $descrizione == ""){ 
        echo 
    "devi inserire una descrizione"
    }else{ 
        
    //invia email 
        // quì sotto srivi la email dove deve essere destinato 
        
    $latuaemail="xyz"
            
    $to=$latuaemail
            
    //ti ho messo l'ogetto dell'email ugale alla descrizione che 1 scrive 
            
    $subject="richiesta informazioni da sito"
    //per inviare la data 
    $tempo time(); 
    $anno date("Y",$tempo); 
    $mese date("m"$tempo); 
    $giorno date("d"$tempo); 
    $ora date("H"$tempo); 
    $minuti date("i"$tempo); 
    $data ="$giorno/$mese/$anno"
    $alle ="$ora:$minuti"

    $subject="Richiesta informazioni da sito";  
    $header="Da: il mio sito";  
    $message="Nome: $nome Cognome: $cognome Numero: $telefono Email: $email Il giorno: $data Alle: $alle \r\n";
     
    $message.="descrizione: $descrizione \r\n";  
    $inviamandoremail=mail($to,$subject,$message,$header);  

        include 
    'successo.html';


    }

    ?>

  2. #2
    Devi usare jquery e controllare i campi. Cerca nel forum dedicato http://forum.html.it/forum/forumdisp...p?s=&forumid=3
    Il controllo comunque va fatto anche lato php

  3. #3
    sinceramente mi sembra strano perchè un mio amico mi aveva fatto il modulo (di cui ora ti metterò il codice) tempo fa e funzionava tutto tranquillamente e so per certo che lo aveva scritto senza usare jquery...
    Questo è il codice e funziona tutto

    codice:
     <fieldset> 
        <legend>Modulo Prenotazione</legend> 
        <form id="form1" method="post" action="#"> 
        
    
     
        <label for="nome2">Nome</label> 
        <input name="nome" type="text" id="nome2" size="40" />  
        <label for="cognome">Cognome</label> 
        <input name="cognome" type="text" id="cognome" size="45" /> 
        </p> 
        
    
    <span id="sprytextfield1"> 
        <label for="telefono">N.Telefono</label> 
        <input name="telefono" type="text" id="telefono" maxlength="15" /> 
        <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span> 
    
         </p> 
        
    
     <span id="sprytextfield2"> 
        <label for="email">Ind. e -mail</label> 
        <input name="email" type="text" id="email" size="50" /> 
        <span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span> 
    
         <label for="descrizione">
     
        Descrizione</label> 
        <textarea name="descrizione" cols="47" id="descrizione"></textarea> 
        
     
        </p> 
        
    
    Invia richiesta 
        <input type="submit" name="invia" id="invia" value="Invia" /> 
        
     
        </p> 
             
        </form> 
        </fieldset>
    Codice PHP:
    <?php 
    }else{ 

    // Valori del form 
    $nome mysql_real_escape_string($_POST['nome']); 
    $cognome mysql_real_escape_string($_POST['cognome']); 
    $telefono mysql_real_escape_string($_POST['telefono']); 
    $email mysql_real_escape_string($_POST['email']); 
    $descrizione mysql_real_escape_string($_POST['descrizione']); 

    // controllo campi vuoti 
    if($nome == "" || $cognome == ""){ 
        echo 
    "Devi inserire nome e congnome valido"
    }elseif(
    $telefono == ""){ 
        echo 
    "Devi inserire il numero di telefono"
    }elseif(
    $email == ""){ 
        echo 
    "Devi inserire l'email"
    }elseif(
    $descrizione == ""){ 
        echo 
    "devi inserire una descrizione"
    }else{ 
        
    //invia email 
        // quì sotto srivi la email dove deve essere destinato 
        
    $latuaemail="xyz"
            
    $to=$latuaemail
            
    //ti ho messo l'ogetto dell'email ugale alla descrizione che 1 scrive 
            
    $subject=$descrizione
    //per inviare la data 
    $tempo time(); 
    $anno date("Y",$tempo); 
    $mese date("m"$tempo); 
    $giorno date("d"$tempo); 
    $ora date("H"$tempo); 
    $minuti date("i"$tempo); 
    $data ="$giorno/$mese/$anno"
    $alle ="$ora:$minuti"

    $subject="Richiesta prenotazione";  
    $header="Da: Club della Cucina";  
    $message="Nome: $nome Cognome: $cognome Numero: $telefono Email: $email Il giorno: $data Alle: $alle \r\n";
     
    $message.="descrizione: $descrizione \r\n";  
    $inviamandoremail=mail($to,$subject,$message,$header);  

        include 
    'successo.html';


    }
    }
    ?>
    io ho copiato tutto cambiando solo piccole cose, però il modulo mi funziona solo per la parte dell'invio, ma appunto i due problemi evidenziati all'inizio in questo modulo non me lo da, mentre in quello del mio nuovo sito si.
    Non capisco come mai

  4. #4
    Il tuo script (php) si limita a verificare che i campi non siano vuoti, ma non verifica ad esempio la formattazione della mail (nel campo email potresti tranquillamente inserirci del testo a caso hljidoivdei). E se trova l'errore ti stampa a video una semplice scritta.

    Ti dicevo di usare jquery perchè tu hai chiesto che la scritta dell'errore (lo span con classe textfieldRequiredMsg) fosse visibile solo ad errore avvenuto. Solo con jquery (e quindi js) puoi fare quello.

  5. #5
    Inoltre non hai bisogno dell'include, ma di un redirect:
    Codice PHP:
     Header('Location: sucesso.html');
    exit; 

  6. #6
    sostituendo

    include 'successo.html';

    con

    Header('Location: sucesso.html');
    exit;

    il risultato non cambia perchè cmq mi riporta nuovamente alla pagina del modulo contatti e non in quella dell successo...

    Per la prima risposta invece se non uso jquery non funziona?

  7. #7
    Originariamente inviato da juventusei
    Per la prima risposta invece se non uso jquery non funziona?
    Eh no

    Stavo guardando il tuo codice: la determinazione ad esempio della data e dell'ora.
    Usando la funzione date() di php estrai gli stessi dati ma con mille passaggi in meno:
    Codice PHP:
     $data date("d/m/Y");
    $alle date("H:i:s"); 
    La variabile $header non va bene, prova così:
    Codice PHP:
    $header="From: Club della Cucina <email@email.com>" 
    Inoltre vedo che fai l'escape delle variabili con mysql_real_escape_string. Suppongo tu apra prima la connessione al db (e cosa la apriresti a fare se non devi recuperare nessun dato dal db?), perchè l'escape con mysql_real_escape_string funziona solo con connessione al db aperta.

  8. #8
    quindi tu dici che al posto di

    Codice PHP:
    $tempo time(); 
    $anno date("Y",$tempo); 
    $mese date("m"$tempo); 
    $giorno date("d"$tempo); 
    $ora date("H"$tempo); 
    $minuti date("i"$tempo); 
    $data ="$giorno/$mese/$anno"
    $alle ="$ora:$minuti"
    devo mettere:

    Codice PHP:
    $data date("d/m/Y");
    $alle date("H:i:s"); 
    invece il modulo contatti che colleghi alla pagina successo.html l'ho risolto inserendo al posto di:

    Codice PHP:
     include 'successo.html'
    ho messo:

    Codice PHP:
    echo '<META HTTP-EQUIV="Refresh" CONTENT="0;URL=successo.html">'

  9. #9
    comuque tu stai guardando il secondo modulo che ho inviato. devi vedere in quello che ho messo ad inizio messaggio perchè quello è funzionante...
    Per intenderci quello con scritto Il club della cucina funziona, l'altro no.
    Se vuoi riposto il codice

  10. #10
    Originariamente inviato da juventusei
    devo mettere:

    Codice PHP:
    $data date("d/m/Y");
    $alle date("H:i:s"); 
    Esatto.

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.