Avatar
Acerik
Redaktor
Avatar
Acerik:

Dobrý den mám na webu mail form ale nepřijde mi... Přikládám zdrojáky

<form name="contactform" method="post" action="send_form_email.php">
                        <table width="450px">
                            <tr>
                                <td valign="top">
                                    <label for="first_name">First Name *</label>
                                </td>
                                <td valign="top">
                                    <input  type="text" name="first_name" maxlength="50" size="30">
                                </td>
                            </tr>
                            <tr>
                                <td valign="top"">
                                    <label for="last_name">Last Name *</label>
                                </td>
                                <td valign="top">
                                    <input  type="text" name="last_name" maxlength="50" size="30">
                                </td>
                            </tr>
                            <tr>
                                <td valign="top">
                                    <label for="email">Email Address *</label>
                                </td>
                                <td valign="top">
                                    <input  type="text" name="email" maxlength="80" size="30">
                                </td>
                            </tr>
                            <tr>
                                <td valign="top">
                                    <label for="comments">Comments *</label>
                                </td>
                                <td valign="top">
                                    <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2" style="text-align:center">
                                    <input type="submit" value="Submit">
                                </td>
                            </tr>
                        </table>
                    </form>

send_form_email.php

<?php

if(isset($_POST['email'])) {



    // EDIT THE 2 LINES BELOW AS REQUIRED

    $email_to = "acercz7@gmail.com";

    $email_subject = "zprava z webu";





    function died($error) {

        // your error code can go here

        echo "We are very sorry, but there were error(s) found with the form you submitted. ";

        echo "These errors appear below.<br /><br />";

        echo $error."<br /><br />";

        echo "Please go back and fix these errors.<br /><br />";

        die();

    }



    // validation expected data exists

    if(!isset($_POST['first_name']) ||

        !isset($_POST['last_name']) ||

        !isset($_POST['email']) ||

        !isset($_POST['comments'])) {

        died('We are sorry, but there appears to be a problem with the form you submitted.');

    }



    $first_name = $_POST['first_name']; // required

    $last_name = $_POST['last_name']; // required

    $email_from = $_POST['email']; // required

    $comments = $_POST['comments']; // required



    $error_message = "";

    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

  if(!preg_match($email_exp,$email_from)) {

    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

  }

    $string_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($string_exp,$first_name)) {

    $error_message .= 'The First Name you entered does not appear to be valid.<br />';

  }

  if(!preg_match($string_exp,$last_name)) {

    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';

  }

  if(strlen($comments) < 2) {

    $error_message .= 'The Comments you entered do not appear to be valid.<br />';

  }

  if(strlen($error_message) > 0) {

    died($error_message);

  }

    $email_message = "Form details below.\n\n";



    function clean_string($string) {

      $bad = array("content-type","bcc:","to:","cc:","href");

      return str_replace($bad,"",$string);

    }



    $email_message .= "First Name: ".clean_string($first_name)."\n";

    $email_message .= "Last Name: ".clean_string($last_name)."\n";

    $email_message .= "Email: ".clean_string($email_from)."\n";

    $email_message .= "Comments: ".clean_string($comments)."\n";





// create email headers

$headers = 'From: '.$email_from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);

?>



<!-- include your own success html here -->



Thank you for contacting us. We will be in touch with you very soon.

Napadlo mě jestli taky nemusím mít nějak zaplé na vps možnost odesílat emaily, nebo tak něco.

Odpovědět 20. září 16:31
Praxe na IT škole? Obrábění kovů for the win
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Acerik
Jiří Gracík:

Přesně, je zapnutá a nakonfigurovaná funkce mail? Prohlédnout php.ini. Nicméně mail funkce neumí authentizaci, takže je vlastně vcelku na nic - použij knihovnu, třeba https://github.com/…er/PHPMailer

Nahoru Odpovědět 20. září 21:03
Creating websites is awesome till you see the result in another browser ...
Avatar
petr.jouza
Člen
Avatar
Odpovídá na Acerik
petr.jouza:

Ahoj,
není tam navíc ten zavináč?

@mail($email_to, $email_subject, $email_message, $headers);

Ta funkce má být bez zavináče na začátku...

Petr

 
Nahoru Odpovědět 5. října 18:34
Avatar
VitekST
Člen
Avatar
Odpovídá na Acerik
VitekST:

Zkusil bych se na integrovanou funkci mail() vyprdnout a zkusit něco lepšího.
Kolegou zmíněný PHPMailer nebo PEAR balíček Mail2: https://pear.php.net/package/Mail2

 
Nahoru Odpovědět 5. října 18:47
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na petr.jouza
Eda Stehlík:

Nemyslím si, že by tam ten zavináč hrál až takovou roli! V php se zavináč používá aby se nevypisovala chyba ( + možná, že ještě další možnosti, o kterých já nevím ). Ale řešit zavináčem chybu není zrovna nejlepší.

 
Nahoru Odpovědět 5. října 21:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.