Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Acerik
Redaktor
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
Jiří Gracík
Redaktor
Avatar
Odpovídá na Acerik
Jiří Gracík: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
Creating websites is awesome till you see the result in another browser ...
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.