• User Attivo

    Ciao pabloso
    non ti esce l'errore perché la tua variabile $error non viene mai fatta stampare a video (non c'è nessuna echo)


  • User

    Grazie per la risposta PietroR !
    Perdona la mia ignoranza ma devo dare un valore a $error e la riga sotto scrivere echo 'you must enter your name.' ? Come posso fare?
    Grazie Ciao


  • User Attivo

    Ciao
    $error è già valorizzato in realtà, con questo codice

    
    if ([empty](http://www.giorgiotave.it/wikigt/os/Empty)($name))
    $error = 'You must enter your name.';
    
    

    e qua controllo che l'errore ci sia

    
    if (isset($error)) {
    header('Location: services3da.html?e='.urlencode($error)); exit;
    }
    
    

    all'interno dell'if io metterei una echo dell'error. Se posso permettermi, però, con la tua gestione tutte le volte sovrascrivi $error e se ci sono più errori resta solo l'ultimo. Io inizializzerei la variabile $error a null e tutte le volte aggiungerei la stringa in modo tale che possano venire salvati anche più messaggi di errore.


  • User

    Ciao,
    grazie ancora per l'aiuto, immagino che la seconda soluzione sia la più funzionale, ora però ho un pò di confusione in testa...
    Potresti farmi un'esempio pratico?


  • User Attivo

    Ciao,
    in realtà questi sono pezzi del tuo codice, ti ho solamente detto che nel secondo caso aggiungerei una stampa dell'errore

    
    
    if (isset($error)) {echo $error;header('Location: services3da.html?e='.urlencode($error)); exit;}
    

    Detto ciò, su questo sito trovi due passi della guida che fanno al caso tuo:

    1. http://www.giorgiotave.it/guide-webmaster/php/convalida-form/ per la convalida dei form
    2. http://www.giorgiotave.it/guide-webmaster/php/controlli-form/ alcuni controlli sui form in generale

  • User

    Ciao,
    ho sbagliato a scrivere, per seconda soluzione intendevo quella in cui mi consigli di inizializzare la variabile $error a null.
    Ho comunque provato questo codice:
    if (isset($error)) {echo $error;header('Location: services3da.html?e='.urlencode($error)); exit;}
    Ho notato che,come dicevi tu, rimane solo l'ultimo errore ma viene scritto nella barra in alto degli indirizzi:
    localhost/modern-business/services3da.html?e=You+must+enter+your+name.
    Perché non esce l'errore appena sotto il campo non compilato?


  • User Attivo

    Ciao

    Ho notato che,come dicevi tu, rimane solo l'ultimo errore ma viene scritto nella barra in alto degli indirizzi:

    questo dovrebbe accadere per questo codice:

    header('Location: services3da.html?e='.urlencode($error));
    

    Ma hai messo uno spazio apposito per fare uscire l'errore vicino al campo?
    Non hai postato il codice del form e senza vederlo non ti saprei dire. Ti anticipo che dovresti comunque avere un elemento HTML in cui scrivere l'errore.


  • User

    Ciao
    Quindi devo togliere dal mio codice header('Location: services3da.html?e='.urlencode($error)); ?
    Questo è il codice HTML del form:

    <div class="col-sm-4">
    <h3>Contatti</h3>
    <p></p>
    <form method="post" action="contact-form-submission2.php">
    <div class="row">
    <div class="form-group col-lg-4">
    <label for="input1">Nome</label>
    <input type="text" name="contact_name" class="form-control" id="input1">
    </div>
    <div class="form-group col-lg-4">
    <label for="input2">Email</label>
    <input type="email" name="contact_email" class="form-control" id="input2">
    </div>
    <div class="form-group col-lg-4">
    <label for="input3">Telefono</label>
    <input type="phone" name="contact_phone" class="form-control" id="input3">
    </div>
    <div class="clearfix"></div>
    <div class="form-group col-lg-12">
    <label for="input4">Messaggio</label>
    <textarea name="contact_message" class="form-control" rows="6" id="input4"></textarea>
    </div>
    <div class="form-group col-lg-12">
    <input type="hidden" name="save" value="contact">
    <button type="submit" class="btn btn-primary">Invia</button>
    </div>
    </div>
    </form>
    </div>

    Grazie


  • User Attivo

    Ciao ti consiglio di dare un'occhiata a questo tool : Fantastic form builder è un generatore di moduli email che permette la creazione automatizzata di moduli email e moduli per l'inserimento dei dati in database, con possibilità di avere tutti i codici sorgenti e poterli gestire come vuoi senza nessun limite, i moduli creati sono robusti e sicuri con filtro antispam e validazione input


  • User Attivo

    Ciao,
    sei riuscito a risolvere il problema?