Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    83

    problema con variabile in un form che invia mail

    Salve, ho questo form per l'invio di mail

    <?php
    // Set-up these 3 parameters
    // 1. Enter the email address you would like the enquiry sent to
    // 2. Enter the subject of the email you will receive, when someone contacts you
    // 3. Enter the text that you would like the user to see once they submit the contact form
    $to = 'f@tiscali.it';
    $subject = 'Info Prenotazione';
    $contact_submitted = 'Your message has been sent.';


    // Do not amend anything below here, unless you know PHP
    function email_is_valid($email) {
    return preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i',$email);
    }
    if (!email_is_valid($to)) {
    echo '<p style="color: red;">You must set-up a valid (to) email address before this contact page will work.</p>';
    }
    if (isset($_POST['contact_submitted'])) {
    $return = "\r";
    $youremail = trim(htmlspecialchars($_POST['your_email']));
    $yourname = stripslashes(strip_tags($_POST['your_name']));
    $yourmessage = stripslashes(strip_tags($_POST['your_message']));
    $contact_name = "Name: ".$yourname;
    $message_text = "Message: ".$yourmessage;
    $user_answer = trim(htmlspecialchars($_POST['user_answer']));
    $answer = trim(htmlspecialchars($_POST['answer']));
    $message = $contact_name . $return . $message_text;
    $headers = "From: ".$youremail;
    if (email_is_valid($youremail) && !eregi("\r",$youremail) && !eregi("\n",$youremail) && $yourname != "" && $yourmessage != "" && substr(md5($user_answer),5,10) === $answer) {
    mail($to,$subject,$message,$headers);
    $yourname = '';
    $youremail = '';
    $yourmessage = '';
    echo '<p style="color: blue;">'.$contact_submitted.'</p>';
    }
    else echo '<p style="color: red;">Please enter your name, a valid email address, your message and the answer to the simple maths question before sending your message.</p>';
    }
    $number_1 = rand(1, 9);
    $number_2 = rand(1, 9);
    $answer = substr(md5($number_1+$number_2),5,10);
    ?>




    <form id="contact" action="contact.php" method="post">
    <div class="form_settings">
    <p><span>Name</span><input class="contact" type="text" name="your_name" value="<?php echo $yourname; ?>" /></p>
    <p><span>Email Address</span><input class="contact" type="text" name="your_email" value="<?php echo $youremail; ?>" /></p>
    <p><span>Message</span><textarea class="contact textarea" rows="5" cols="50" name="your_message"><?php echo $yourmessage; ?></textarea></p>
    <p style="padding: 10px 0; line-height: 2em;">To help prevent spam, please enter the answer to this question:</p>
    <p><span><?php echo $number_1; ?> + <?php echo $number_2; ?> = ?</span><input type="text" name="user_answer" /><input type="hidden" name="answer" value="<?php echo $answer; ?>" /></p>
    <p style="padding-top: 15px"><span>&nbsp;</span><input class="submit" type="submit" name="contact_submitted" value="send" /></p>
    </div>
    </form>
    )



    il problema è che mi da questo tipo di erroreevidenzio in rosso la riga dell errore)
    <br /><b>Notice</b>: Undefined variable: yourname in <b>C:\xampp\htdocs\x\g.php</b> on line <b>44</b><br />

    <br /><b>Notice</b>: Undefined variable: youremail in <b>C:\xampp\htdocs\x\g.php</b> on line <b>45</b><br />

    <br />
    <b>Notice</b>: Undefined variable: yourmessage in <b>C:\xampp\htdocs\x\g.php</b> on line <b>46</b><br />


    se scrivo nei record le informazioni mi da questo altro tipo di errore

    Deprecated: Function eregi() is deprecated inC:\xampp\htdocs\x\contact.php on line 95

    Deprecated: Function eregi() is deprecated inC:\xampp\htdocs\x\contact.php on line 95
    Your message has been sent.

    chi mi da qualche spiegazione?


  2. #2
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Le spiegazioni sono nei messaggi stessi...

    Il primo tipo di notice nasce perchè quando visualizzi il form stampi una serie di variabili che non hai mai settato da nessuna parte, basta settarle vuote all'inizio dello script.

    Il secondo tipo di errore nasce perchè usi in una parte del codice una funzione vecchia "eregi()" che è deprecata, in altre parti quella corretta "preg_match()"... basta usare sempre preg_match.

    Un nuovo cms/framework... vuoi collaborare al progetto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    83
    Ciao,
    grazie per la risposta..
    Ho usato preg_match() e mi da il seguent Warning...
    Warning: preg_match(): Empty regular expression in


    if (email_is_valid($youremail) && !preg_match("\r",$youremail) && !preg_match("\n",$youremail) && $yourname != "" && $yourmessage != "" && substr(md5($user_answer),5,10) === $answer) {

  4. #4
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Quote Originariamente inviata da serino84 Visualizza il messaggio
    Ciao,
    grazie per la risposta..
    Ho usato preg_match() e mi da il seguent Warning...
    Warning: preg_match(): Empty regular expression in


    if (email_is_valid($youremail) && !preg_match("\r",$youremail) && !preg_match("\n",$youremail) && $yourname != "" && $yourmessage != "" && substr(md5($user_answer),5,10) === $answer) {
    Ok, non l'hai scritto tu allora... preg_match ed eregi non sono interscambiabili così, vanno riscritti i pattern!

    eregi("\n", $youremail) dovrebbe diventare preg_match("/\n/", $youremail)

    ecc ecc
    Un nuovo cms/framework... vuoi collaborare al progetto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    83
    Ok, così non mi da nessun warning più..
    un ultima cosa che a te può sembrare banale, ma per me che non sono molto esperto mi da rompicapi, ti volevo chiedere visto che ho fatto questo form che invia dei dati al mio indirizzo email, per farmi arrivare la mail devo settare qualcosa ?
    o per farmi arrivare queste mail devo aver pubblicato il sito..?

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Quote Originariamente inviata da serino84 Visualizza il messaggio
    Ok, così non mi da nessun warning più..
    un ultima cosa che a te può sembrare banale, ma per me che non sono molto esperto mi da rompicapi, ti volevo chiedere visto che ho fatto questo form che invia dei dati al mio indirizzo email, per farmi arrivare la mail devo settare qualcosa ?
    o per farmi arrivare queste mail devo aver pubblicato il sito..?
    La cosa più semplice per testare in locale sarebbe quella di utilizzare phpmailer ed utilizzare un smpt, non è difficile ma serve un po' di studio e dimestichezza con le classi...

    Pubblicandolo non dovresti avere problemi, dovrebbe funzionare subito...
    Un nuovo cms/framework... vuoi collaborare al progetto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    83
    Grazie mille..
    Davvero Gentile..

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.