2grosiek7 4 Posted September 10, 2013 Witam, chciałbym wrzucić formularz kontaktowy na inną stronę, i mam problem z poniższym kodem. Co w nim jest nie teges? <?php/*sprawdzenie wypełnienia wszystkich pól*/elseif (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){/* Funkcja sprawdzająca poprawność E-Maila */function SprawdzEmail($email) { if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){ return false; } return true;}}if(SprawdzEmail($_POST['email'])){/* Tworzymy szkielet wysyłanej wiadomości */$adresemail='aragornxt@gmail.com'; /* Wpisz swój adres e-mail *//* Wybierz kodowanie znaków usuwając // *///$charset = 'iso-8859-2';//$charset = 'utf-8';$wiadomosc="Od: $_POST[imienazwisko] ($_POST)\n\n$_POST[trescwiadomosci]";$nadawca="From: $_POST";@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }?> Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 zaczynasz skrypt od elseif elseif (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){ ... ... elseif stosujemy po if tzn: if (something) { code; } elseif { another code; } elseif { another one; } + na końcu masz: }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; } pomarańczowy kod jest zbędny bo brakuje warunku if (if cośtam else zaprzeczenie) u Ciebie nie ma cośtam jest samo zaprzeczenie. taka konstrukcja jest zła Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Czyli mogę użyć else zamiast elseif? Ściągnąłem darmowy skrypt i z tego co widzę, masa błędów w nim Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 Czyli mogę użyć else zamiast elseif? Ściągnąłem darmowy skrypt i z tego co widzę, masa błędów w nim nie kod wydaje się być nie pełny, czy to aby na pewno pełny kod? Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Niby tak, nic więcej na stronie nie było. Też mi się wydaje taki okrojony... Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 no to jest tylko kod php bez formularza w html. jak wygląda kod tego formularza w html ? Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 <form action="kontakt.php" method="post"> <!--nazwa strony na której znajduje się formularz--> Imię i Nazwisko:<br /> <input type="text" name="imienazwisko" style="width:300px;"/><br /> E-Mail:<br /> <input type="text" name="email" style="width:300px;"/><br /> Treść wiadomości:<br /> <textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea><br /> <input type="submit" name="submit" value="Wyślij formularz"/> <input type="reset" value="Wyczyść"/> </form> Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 ok, dzieki okroiłem troche ten skrypt i dodałem poprawną składnię, możesz spróbować z tym: <?php /*sprawdzenie wypełnienia wszystkich pól*/ if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])) { /* Funkcja sprawdzająca poprawność E-Maila */ function SprawdzEmail($email) { if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){ return false; } return true; } } if(SprawdzEmail($_POST['email'])){ /* Tworzymy szkielet wysyłanej wiadomości */ $adresemail='aragornxt@gmail.com'; /* Wpisz swój adres e-mail */ /* Wybierz kodowanie znaków usuwając // */ //$charset = 'iso-8859-2'; //$charset = 'utf-8'; $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]"; $nadawca="From: $_POST[email]"; @mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca"); echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>"; }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; } ?> daj znać, czy w ogóle działa Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Działa, ale wywala takie coś na dobranoc: Deprecated: Function eregi() is deprecated in /home/dumledor/domains/ad-al.pl/public_html/lol/kontakt.php on line 7Dzi�kujemy, formularz zosta� wys�any. Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 skrypt jest przestarzały ;p nie zwróciłem na to uwagi, eregi zostało wycofane (deprecated) z php w wersji 5.3.0 i już nie jest wspierane. zamiast eregi użyj preg_match chodzi o ten fragment: if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){ Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Zamieniłem kod na taki: <?php/*sprawdzenie wypełnienia wszystkich pól*/if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){/* Funkcja sprawdzająca poprawność E-Maila */function SprawdzEmail($email) { if (!preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$\//" , $email)){ return false; } return true;}}if(SprawdzEmail($_POST['email'])){/* Tworzymy szkielet wysyłanej wiadomości */$adresemail='aragornxt@gmail.com'; /* Wpisz swój adres e-mail *//* Wybierz kodowanie znaków usuwając // */$charset = 'iso-8859-2';//$charset = 'utf-8';$wiadomosc="Od: $_POST[imienazwisko] ($_POST)\n\n$_POST[trescwiadomosci]";$nadawca="From: $_POST";@mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca");echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>";}else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }error_reporting(error_reporting() & ~E_DEPRECATED);?> i każdorazowo wywala mi teraz komunikat o błędnym adresie e-mail. Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 spróbuj to: if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$mail)) pełny kod: <?php /*sprawdzenie wypełnienia wszystkich pól*/ if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])) { /* Funkcja sprawdzająca poprawność E-Maila */ function SprawdzEmail($email) { if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$mail)){ return false; } return true; } } if(SprawdzEmail($_POST['email'])){ /* Tworzymy szkielet wysyłanej wiadomości */ $adresemail='aragornxt@gmail.com'; /* Wpisz swój adres e-mail */ /* Wybierz kodowanie znaków usuwając // */ $charset = 'iso-8859-2'; //$charset = 'utf-8'; $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]"; $nadawca="From: $_POST[email]"; @mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca"); echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>"; }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; } error_reporting(error_reporting() & ~E_DEPRECATED); ?> Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Nadal to samo. Próbuję tutaj: http://ad-al.pl/lol/kontakt.php Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 ooo ja, mój bład użyłem tam zmiennej $mail zamiast $email tylko to do poprawy i pójdzie Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 (edited) Poprawiłem tą literówkę jedną, teraz wywala coś takiego: Fatal error: Call to undefined function SprawdzEmail() in /home/dumledor/domains/ad-al.pl/public_html/lol/kontakt.php on line 13 Edited September 10, 2013 by 2grosiek7 (see edit history) Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Gdy dodaję ! przez SprawdzMail wywala mi kolejny, inny komunikat. Chyba cały skrypt jest skopany. Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 no to jeszcze ten kod: <?php /*sprawdzenie wypełnienia wszystkich pól*/ if (!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){ /* Funkcja sprawdzająca poprawność E-Maila */ function SprawdzEmail($email) { if (!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$email)){ return false; } return true; } if(SprawdzEmail($_POST['email'])){ /* Tworzymy szkielet wysyłanej wiadomości */ $adresemail='aragornxt@gmail.com'; /* Wpisz swój adres e-mail */ /* Wybierz kodowanie znaków usuwając // */ $charset = 'iso-8859-2'; //$charset = 'utf-8'; $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\n\n$_POST[trescwiadomosci]"; $nadawca="From: $_POST[email]"; @mail($adresemail, "Formularz kontaktowy z www.ad-al.pl", "$wiadomosc", "$nadawca"); echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>"; }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; } error_reporting(error_reporting() & ~E_DEPRECATED); } ?> Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 Działa! Jesteś wielki vekia Tak w sprawach biznesowych, mam do pogadania z Tobą. Wejdziesz na skype? Share this post Link to post Share on other sites
vekia 8,952 Posted September 10, 2013 korzystasz z gg? albo facebook? Share this post Link to post Share on other sites
2grosiek7 4 Posted September 10, 2013 (edited) Odblokuj PW Edited September 10, 2013 by 2grosiek7 (see edit history) Share this post Link to post Share on other sites