Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego ten skript nie działa ?
Forum PHP.pl > Forum > PHP
*RadioActive
  1. <?php
  2. if(empty($_POST['submit'])){
  3. ?>
  4. <form action="kontakt.php" method="post">
  5. Nick:<br />
  6. <input type="text" name="nick" style="width:300px;"/><br />
  7. E-Mail:<br />
  8. <input type="text" name="email" style="width:300px;"/><br />
  9. Temat: <br />
  10. <input type="text" name="temat" style="width:300px;"/><br />
  11. Treść wiadomości:<br />
  12. <textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea><br />
  13. <input type="submit" name="submit" value="Wyślij formularz"/>
  14. <input type="reset" value="Wyczyść"/><br />
  15. * Pamiętaj że nie jesteś anonimowy w internecie<br />
  16. <?php
  17. $ip=$_SERVER['REMOTE_ADDR'];
  18. echo("Twoje ip: <b>".$ip."</b>");
  19. ?>
  20. </form>
  21. <?php
  22. }elseif(!empty($_POST['nick']) && !empty($_POST['email'])&& !empty($_POST['temat']) && !empty($_POST['trescwiadomosci'])){
  23. function SprawdzEmail($email) {
  24. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  25. return false;
  26. }
  27. return true;
  28. }
  29. if(SprawdzEmail($_POST['email'])){
  30. $adresemail='*************@****.pl';
  31. $ip=$_SERVER['HTTP_CLIENT_IP'];
  32. $wiadomosc="Nick: $_POST[nick]\n\nEmail: $_POST[email]\n\nTemat: $_POST[temat]\n\nWiadomość: $_POST[trescwiadomosci]\n\nAdres IP: ".$ip." .";
  33. $nadawca="From: $_POST[email]";
  34. @mail($adresemail, "Formularz kontaktowy z www.******.pl", "$wiadomosc", "$nadawca");
  35. echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
  36. }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
  37. }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>"; }
  38. ?>

Dlaczego jak wszystko wypełnie i wyśle na email to w emailu nie przychodzi IP z którego wysłałem?.
Turson
Robisz podstawowy błąd w zapisie zmiennej
  1. $wiadomosc="Nick: $_POST[nick]\n\nEmail: $_POST[email]\n\nTemat: $_POST[temat]\n\nWiadomość: $_POST[trescwiadomosci]\n\nAdres IP: ".$ip." .";

".$_POST['nick']." itd.

  1. @mail($adresemail, "Formularz kontaktowy z www.******.pl", "$wiadomosc", "$nadawca");

Wygłuszasz błędy, źle zapisujesz parametry. Zmień na:
  1. mail($adresemail, "Formularz kontaktowy z www.******.pl", $wiadomosc, $nadawca);



Raz sprawdzasz IP $ip=$_SERVER['REMOTE_ADDR']; a raz $ip=$_SERVER['HTTP_CLIENT_IP'];
zdecyduj się
*RadioActive
A możesz Mi powiedzieć jak to zrobić,to z tym IP ?
Turson
$ip=$_SERVER['REMOTE_ADDR'];

  1. <?php
  2. if(!isset($_POST['submit'])){
  3. ?>
  4. <form action="kontakt.php" method="post">
  5. Nick:<br />
  6. <input type="text" name="nick" style="width:300px;"/><br />
  7. E-Mail:<br />
  8. <input type="text" name="email" style="width:300px;"/><br />
  9. Temat: <br />
  10. <input type="text" name="temat" style="width:300px;"/><br />
  11. Treść wiadomości:<br />
  12. <textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea><br />
  13. <input type="submit" name="submit" value="Wyślij formularz"/>
  14. <input type="reset" value="Wyczyść"/><br />
  15. * Pamiętaj że nie jesteś anonimowy w internecie<br />
  16. <?php
  17. $ip=$_SERVER['REMOTE_ADDR'];
  18. echo "Twoje ip: <b>".$ip."</b>";
  19. ?>
  20. </form>
  21. <?php
  22. }
  23. function SprawdzEmail($email) {
  24. if(preg_match('/^[a-zA-Z0-9\.\-_]+\@[a-zA-Z0-9\.\-_]+\.[a-z]{2,4}$/D', $email)){
  25. return true;
  26. }
  27. }
  28. elseif(!empty($_POST['nick']) && !empty($_POST['email'])&& !empty($_POST['temat']) && !empty($_POST['trescwiadomosci'])){
  29. if(SprawdzEmail($_POST['email'])){
  30. $adresemail='*************@****.pl';
  31. $wiadomosc="Nick: ".$_POST['nick']."<br>Email: ".$_POST['email']."<br>Temat: ".$_POST['temat']."<br>Wiadomość: ".$_POST['trescwiadomosci']."<br>Adres IP: ".$ip;
  32. $nadawca="From: ".$_POST['email'];
  33. mail($adresemail, "Formularz kontaktowy z www.******.pl", $wiadomosc, $nadawca);
  34. echo "<span style=\"color: #00D800; font-weight: bold; \">Dziękujemy, formularz został wysłany.</span>";
  35. }
  36. else{
  37. echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; }
  38.  
  39. }
  40. else{
  41. echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypełnij wszystkie pola formularza!!!</span>";
  42. }
  43. ?>

1. Na początku powinieneś był sprawdzić czy submit istnieje a nie czy nie jest pusty.
2. Eregi jest przestarzałe.
3. Sens umieszczana funkcji w ifie jest śmieszny.
4. Funkcję napisałeś źle - zwracała fałsz gdy mail jest zły, ale nie zwracała prawdy, gdy był dobry.
5. Reszta to kwestia błędów jakie już napisałem we wcześniejszych postach.
6. Przeanalizuj mój kod.
com
up 1. bez różnicy
A reszta tak jak mówisz wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.