Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Acerik
Tvůrce
Avatar
Acerik:20.9.2016 16:31

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 = "[email protected]";

    $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.9.2016 16:31
“Every programmer is an author.”
Avatar
Odpovídá na Acerik
Neaktivní uživatel:20.9.2016 21:03

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.9.2016 21:03
Neaktivní uživatelský účet
Avatar
petr.jouza
Člen
Avatar
Odpovídá na Acerik
petr.jouza:5.10.2016 18:34

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.10.2016 18:34
Avatar
VitekST
Člen
Avatar
Odpovídá na Acerik
VitekST:5.10.2016 18:47

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.10.2016 18:47
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na petr.jouza
Eda Stehlík:5.10.2016 21:15

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.10.2016 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.