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

    Validare i campi di un form

    Salve a tutti,

    Mi chiamo Paolo e sono un'italiano che abita in Brasile da nove anni.
    Sono webdesigner e sto, da poco, giocando con il php che mi piace moltissimo.

    Ho un problema che forse potete aiutarmi a risolvere:

    Lo script che uso (mail.php) l'ho ricavato modificando lo script originale di Lorenzone (Grazie mille Lorenzo'!!!). All'inizio mi bastava, però ora vorrei che mi validasse l'e-mail e che mi dicesse, per esempio, se i campi sono vuoti rimandando l'utente al formulario per riempirli a dovere. Lo so che ci saranno cosí un'infinità di 'elseif', ma non mi importa.

    Il problema è che quando aggiungo gli elseif non mi funziona. Il codice originale è:

    <?php

    // l'indirizzo del destinatario della mail
    $to = "noblocodenotas@noblocodenotas.com";

    // IL SOGGETTO DELLA MAIL
    $subject = "Formulario procedente do site www.noblocodenotas.com";

    // COSTRUIAMO IL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:\n\n";
    $body .= "name: " . trim(stripslashes($_POST["name"])) . "\n";
    $body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
    $body .= "title: " . trim(stripslashes($_POST["title"])) . "\n";
    $body .= "message: " . trim(stripslashes($_POST["message"])) . "\n";

    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From: Modulo utenti<modulo@noblocodenotas.com>";

    // INVIO DELLA MAIL
    if(@mail($to, $subject, $body, $headers)) {// Se l'inoltro e' andato a buon fine mostra un messaggio di ricevuto

    include('./templates/header.inc');
    echo "<h3 style=\"text-align:center;\">Seu recado foi enviado.</h3>";
    echo "<hr />";
    include('./templates/footer1.inc');

    } else {// ALTRIMENTI...

    include('./templates/header.inc');
    echo "<h3 style=\"text-align:center;\">Problemas no envio!</h3>";
    echo "<hr />";
    include('./templates/footer1.inc');
    }

    ?>

    E quello che ho modificato, ma che non funziona, è:

    <?php

    include('./templates/header.inc');

    // Le variabili che sono contenute nei campi del formulario
    $name = $_POST['name'];
    $email = $_POST['email'];
    $title = $_POST['title'];
    $message = $_POST['message'];

    // L'indirizzo di provenienza
    $url = "http://blog-o-mine.noblocodenotas.com";

    // L'espressione che convaliderà l'e-mail
    $check = ereg("^[a-zA-Z0-9\.\_\-]+@[a-zA-Z0-9\.\_\-]+\.[a-zA-Z]|{\.[a-zA-Z]+\.[a-zA-Z]}+$", $email);

    // Il check-out della mail
    $sent = @mail($to, $subject, $body, $headers);

    // l'indirizzo del destinatario della mail
    $to = "lancelot@noblocodenotas.com";
    // IL SOGGETTO DELLA MAIL
    $subject = "Modulo proveniente dal sito blog-o-mine";

    // COSTRUIAMO IL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:\n\n";
    $body .= "name: " . trim(stripslashes($_POST["name"])) . "\n";
    $body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
    $body .= "title: " . trim(stripslashes($_POST["title"])) . "\n";
    $body .= "message: " . trim(stripslashes($_POST["message"])) . "\n";

    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From: $url";

    // INVIO DELLA MAIL

    if (!$name) {// Se il campo del nome è vuoto manda un messaggio di errore

    echo "<h3>Coloque seu nome completo!</h3>";
    echo "<hr />";

    } elseif (!$email) {// Se il campo de e-mail è vuoto mostra un messaggio di errore

    echo "<h3>Coloque seu e-mail!</h3>";
    echo "<hr />";

    } elseif (!$check) {// Se l'indirizzo di e-mail non è valido mostra un messaggio di errore

    echo "<h3>Use um e-mail válido!</h3>";
    echo "<hr />";

    } elseif (!$title) {// Se il titolo non c'è mostra un messaggio d'errore

    echo "<h3>Dê um título!</h3>";
    echo "<hr />";

    } elseif (!$message) {// Se il testo non c'è mostra un messaggio d'errore

    echo "<h3>Escreva seu recado!</h3>";
    echo "<hr />";

    } elseif($sent) {// Se l'inoltro e' andato a buon fine mostra un messaggio di ricevuto

    echo "<h3>Seu recado foi enviado. Obrigado.</h3>";
    echo "<hr />";

    } else {// ALTRIMENTI...

    echo "<h3>Problemas no envio!</h3>";
    echo "<hr />";
    }

    include('./templates/footer.inc');

    ?>

    Con questo non voglio dire che non funzioni; funziona, perché controlla tutti i campi, ma non mi manda la mail, quando arriva al mail($bla, $bla, $bla); mi dice che ci sono problemi nell'invio.

    Sarebbe normale se questo succedesse a casa, dove non ho il server configurato per mandare le mail (non mi è mai servito e per questo non l'ho mai fatto), ma quando lo carico sul server in remoto (dove lo script di saibal funziona) il mio non funziona.

    Che cosa ho fatto di sbagliato?

    Grazie mille!!!
    www.noblocodenotas.com

    Quando il dito punta alla luna, il saggio guarda la luna, lo stupido... il dito.

  2. #2
    mi pare che prima spedisci 'e-mail e poi costruisci il messaggio...

    togli la @ prima di mail cosi' vedi il messaggio di errore.

    Verifica la sequenza degli step con la prima parte funzionante e lo scopri da solo il perche'.

    a mais melhor consideração


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.