Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Glupi problem z mail...
juzio6666
post 1.07.2007, 22:19:38
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


No cóż... jestem początkujący i już w tym miejscu stanąłem. Funkcja mail. Otóż sytuacja jest taka...
Mam jeden plik o nazwie form.html i jego źródło wygląda tak:
  1. <HEAD>
  2. Formularz rejestracyjny.
  3. </TITLE>
  4. </HEAD>
  5. <BODY>
  6. <form name=form method=POST action=register.php>
  7. Login: <input type=text name="login"><br/>
  8. Nazwa w grze: <input type=text name="name"><br/>
  9. Haslo: <input type=password name="pass"><br/>
  10. Konfirmacja hasla: <input type=password name="pass2"><br/>
  11. <input type=submit name="wyslij" value="Zarejestruj sie!">
  12. </form>
  13. </BODY>
  14. </HTML>

Oczywiście jak widać odnosi się to do pliku register.php , który wygląda następująco:
  1. <?php
  2. $adres="konto@serwer.pl";
  3. $login=$_POST['login'];
  4. $name=$_POST['name'];
  5. $pass=$_POST['pass'];
  6. $pass2=$_POST['pass2'];
  7. IF(($_POST['login']=='')||($_POST['name']=='')||($_POST['pass']=='')||($_POST['pass']!==$_POST['pass2']))
  8. {
  9. echo "<form method=POST action=register.php>";
  10. echo "Formularz nie moze zostac wyslany. Uzupelnij wszystkie pola.<br/>";
  11. IF($login=='')
  12. echo "Login nie zostal wpisany!<br/>Login: <input type=text name='login'><br/>";
  13. ELSE
  14. echo "<input type=hidden name=login value=$login>";
  15. IF($name=='')
  16. echo "Imie nie zostalo wpisane!:<br/>Imie: <input type=text name=name><br/>";
  17. ELSE
  18. echo "<input type=hidden name=name value=$name>";
  19. IF($pass=='')
  20. echo "Haslo nie zostalo wpisane!<br/>Haslo: <input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  21. ELSE
  22. IF($pass!==$pass2)
  23. echo "Nie powtorzyles poprawnie hasla!<br/>Haslo: <br/><input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  24. ELSE
  25. echo "<input type=hidden name=pass value=$pass>";
  26. echo "<input type=submit name=submit value='Wyslij!'>";
  27. echo "<input type=reset name=reset value='Od nowa'>";
  28. echo "</form>";
  29. }
  30. ELSE
  31. {
  32. $wiadomosc = "Imie: $login Nazwa w grze: $name Haslo: $pass";
  33. $header = "From: $imiernReply-To: $emailrn";
  34. mail($adres, "Formularz", $wiadomoscr);
  35. echo 'Dzieki za wypelnienie formularza '.$login.'.';
  36. }
  37. ?>

Jaki jest problem? Otóż męczę się od dłuższego czasu nad tym żeby... ten mail doszedł. Niby nie ma żadnych błędów ale maila jak nie było tak nie ma. Wysyłałem kilkadziesiąt razy na różne konta i nic. usunąłem "$header" z funkcji mail żeby wyeliminować możliwość, że to z nim coś nie tak... proszę o pomoc. Podejrzewam że to jakiś banalny błąd a ja go nie widzę... dosłownie szlag mnie trafia... worriedsmiley.gif z góry wielkie dzięki za odpowiedź.
Go to the top of the page
+Quote Post
microh
post 1.07.2007, 22:30:18
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


Masz:
  1. <?php
  2. mail($adres, "Formularz", $wiadomoscr);
  3. ?>
powinno być:
  1. <?php
  2. mail($adres, "Formularz", $wiadomosc);
  3. ?>

Teraz działa?


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
juzio6666
post 2.07.2007, 17:36:06
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Niestety nie... Ten błąd akurat sam zauważyłem ale niestety nie jest to ten poszukiwany.
Go to the top of the page
+Quote Post
strife
post 2.07.2007, 17:43:38
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Zobacz czy, aby napewno konstrukcja mail" title="Zobacz w manualu PHP" target="_manual działa, tworząc prosty plik wysyłający na wybrane przez Ciebie konto mail'a.

  1. <?php
  2. mail('dupa@example.com', 'temat', 'dupa')
  3. ?>


Jeśli nie dochodzi, oznacza to, że serwer pocztowy na Twoim hostingu nawala, możesz wtedy wykorzystać klasę phpmailer, która umożliwia wysyłanie maila z konta pocztowego wybranego przez Ciebie smile.gif

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
juzio6666
post 2.07.2007, 18:52:22
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Niestety problem jest ciągle... stworzyłem taki plik jak polecałeś i wysyłało normalnie. Włączyłem - wysłało. Włączyłem ten mój skrypt - cisza... znowu uruchomiłem Twój skrypt - wysłało... Nic nie rozumię sad.gif
Go to the top of the page
+Quote Post
microh
post 2.07.2007, 19:04:09
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


  1. <?php
  2. echo "<form method=POST action=register.php>";
  3. ?>


zmień:
  1. <?php
  2. echo "<form method='POST' action='register.php'>";
  3. ?>


Na moim serwku zadziałało guitar.gif

**Jeśli nie zadziała:
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>
na początku pliku daj smile.gif

Ten post edytował microh 2.07.2007, 19:07:07


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
strife
post 2.07.2007, 19:08:30
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(juzio6666 @ 2.07.2007, 19:52:22 ) *
Niestety problem jest ciągle... stworzyłem taki plik jak polecałeś i wysyłało normalnie. Włączyłem - wysłało. Włączyłem ten mój skrypt - cisza... znowu uruchomiłem Twój skrypt - wysłało... Nic nie rozumię sad.gif


Przepisał bym Ci ten skrypt, ale jest u mnie burza i muszę komputer wyłączyć. W każdym bądź razie napiszę Ci co możesz zrobić, sprawdź czy warunek po else ( tam gdzie wysyła maila ) jest spełniany.

  1. <?php
  2. ELSE
  3. {
  4. // ...
  5. echo 'spelniony!';
  6. ?>


Zamiast konstrukcji

  1. <?php
  2. if ( $zmienna = '' )
  3. ?>


Użyj empty. Popraw cały kod, dodaj wcięcia, nie umieszczaj kodu html w php, nie ma sensu:

  1. <?php if ( $zmienna ) : ?>
  2. <div>HTML</div>
  3. <?php endif; ?>


Po co te wzkazówki? Ano ułatwią Ci znalezienie błędu. Poza tym ten cały formularz przerobił bym w drugą stronę:

  1. <?php
  2. if ( ! empty( $login ) && ! empty( $password ) ) {
  3. // wyslij maila
  4. } else {
  5.  // .. pokaz formularz
  6. }
  7. ?>


Pozdrawiam.

PS. Przepraszam, za brak ładu i składu biggrin.gif


--------------------
Go to the top of the page
+Quote Post
uli
post 3.07.2007, 08:06:57
Post #8





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


Taki 'mały' błąd jak na moje '!=='. Powinno być '!='.

Kod:

  1. <?php
  2. $adres="konto@serwer.pl";
  3. $login=$_POST['login'];
  4. $name=$_POST['name'];
  5. $pass=$_POST['pass'];
  6. $pass2=$_POST['pass2'];
  7. IF (empty($_POST['login']) || empty($_POST['name']) || empty($_POST['pass']) || $_POST['pass'] != $_POST['pass2'])
  8. {
  9. echo "<form method='POST' action='register.php'>";
  10. echo "Formularz nie moze zostac wyslany. Uzupelnij wszystkie pola.<br/>";
  11.  
  12. IF (empty($login))
  13. echo "Login nie zostal wpisany!<br/>Login: <input type=text name='login'><br/>";
  14. ELSE
  15. echo "<input type=hidden name=login value=$login>";
  16. IF (empty($name))
  17. echo "Imie nie zostalo wpisane!:<br/>Imie: <input type=text name=name><br/>";
  18. ELSE
  19. echo "<input type=hidden name=name value=$name>";
  20. IF(empty($pass))
  21. echo "Haslo nie zostalo wpisane!<br/>Haslo: <input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  22. ELSE
  23. IF ($pass != $pass2)
  24. echo "Nie powtorzyles poprawnie hasla!<br/>Haslo: <br/><input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  25. ELSE
  26. echo "<input type=hidden name=pass value=$pass>";
  27. echo "<input type=submit name=submit value='Wyslij!'>";
  28. echo "<input type=reset name=reset value='Od nowa'>";
  29. echo "</form>";
  30. }
  31. ELSE
  32. {
  33. $wiadomosc = "Imie: $login Nazwa w grze: $name Haslo: $pass";
  34. $header = "From: $imiernReply-To: $emailrn";
  35. mail($adres, "Formularz", $wiadomosc);
  36. echo 'Dzieki za wypelnienie formularza '.$login.'.';
  37. }
  38. ?>


Ten post edytował uli 3.07.2007, 08:07:47


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
juzio6666
post 3.07.2007, 18:29:26
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Uli: wątpię żeby o to chodziło bo to akurat działa. Jakbyś próbował to wyświetla się to co trza, jak zapomnisz wpisać jakiejś wartości.

Microh: niestety to nic nie daje... błędów nie wyświetla żadnych i wszystko po staremu...

Strife: sensownie wygląda to co napisałeś... ale nie kapuję z tego nic a nic. Byłbym wdzięczny gdybyś napisał o so chodzi. Chociażby z tym empty. Ja jestem n00bem jeszcze więc nie wymagajcie ode mnie nic wielkiego tongue.gif
Go to the top of the page
+Quote Post
uli
post 4.07.2007, 06:36:50
Post #10





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


No dobrze... A tak? Mi poszło bez większych problemów.

Ściągnij sobie klasę phpmailer i wrzuć katalog phpmailer do katalogu ze stroną. I wypróbuj ten kod:
  1. <?php
  2. $adres="ADRES_NA_KTÓRY_WYSŁAĆ";
  3. $login=$_POST['login'];
  4. $name=$_POST['name'];
  5. $pass=$_POST['pass'];
  6. $pass2=$_POST['pass2'];
  7. IF (empty($_POST['login']) || empty($_POST['name']) || empty($_POST['pass']) || $_POST['pass'] != $_POST['pass2'])
  8. {
  9. echo "<form method='POST' action='reg.php'>";
  10. echo "Formularz nie moze zostac wyslany. Uzupelnij wszystkie pola.<br/>";
  11.  
  12. IF (empty($login))
  13. echo "Login nie zostal wpisany!<br/>Login: <input type=text name='login'><br/>";
  14. ELSE
  15. echo "<input type=hidden name=login value=$login>";
  16. IF (empty($name))
  17. echo "Imie nie zostalo wpisane!:<br/>Imie: <input type=text name=name><br/>";
  18. ELSE
  19. echo "<input type=hidden name=name value=$name>";
  20. IF(empty($pass))
  21. echo "Haslo nie zostalo wpisane!<br/>Haslo: <input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  22. ELSE
  23. IF ($pass != $pass2)
  24. echo "Nie powtorzyles poprawnie hasla!<br/>Haslo: <br/><input type=password name=pass><br/>Konfirmacja hasla: <input type=password name=pass2><br/>";
  25. ELSE
  26. echo "<input type=hidden name=pass value=$pass>";
  27. echo "<input type=submit name=submit value='Wyslij!'>";
  28. echo "<input type=reset name=reset value='Od nowa'>";
  29. echo "</form>";
  30. }
  31. ELSE
  32. {
  33. require("class.phpmailer.php");
  34. $mail = new PHPMailer();
  35.  
  36. $mail->PluginDir = "phpmailer/";
  37. $mail->From = "ADRES_MAILA"; //adres naszego konta
  38. $mail->FromName = $imie;//nagłówek From
  39. $mail->Host = "SERWER_SMTP";//adres serwera SMTP
  40. $mail->Mailer = "smtp";
  41. $mail->Username = "NAZWA_USERA_POCZTY";//nazwa użytkownika
  42. $mail->Password = "HASŁO_TWOJEJ_POCZTY";//nasze hasło do konta SMTP
  43. $mail->SMTPAuth = true;
  44. $mail->SetLanguage("en", "language/");
  45.  
  46. $mail->Subject = "Formularz";//temat maila
  47.  
  48. // w zmienną $text_body wpisujemy treść maila
  49. $text_body = "Imie: $login Nazwa w grze: $name Haslo: $pass";
  50.  
  51. $mail->Body = $text_body;
  52. // adresatów dodajemy poprzez metode 'AddAddress'
  53. $mail->AddAddress("$adres","");
  54.  
  55. if(!$mail->Send())
  56. echo "Błąd wysyłania maila <br>";
  57. echo $mail->ErrorInfo."<br>";
  58.  
  59. // Clear all addresses and attachments
  60. $mail->ClearAddresses();
  61. $mail->ClearAttachments();
  62. echo 'Dzieki za wypelnienie formularza '.$login.'.';
  63.  
  64. }
  65. ?>


Ten post edytował uli 4.07.2007, 06:37:23


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
juzio6666
post 4.07.2007, 19:06:35
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


ohmy.gif
Będę musiał się z tym bliżej zapoznać... kurka... trochę tego nowego tam jest. A czy z tego można zawsze korzystać jakbym chciał używać funkcji "mail"? Nie będzie to miało żadnego wpływu na to jak będą odczytywały tę stronę kompy innych? (żeby nie było to nie mam jeszcze zbytnio czasu na sprawdzenie tego wszystkiego czy działa ale jak zadziała to powiadomię smile.gif - dziękuję biggrin.gif).
Go to the top of the page
+Quote Post
uli
post 5.07.2007, 07:04:45
Post #12





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


Możesz korzystać zawsze, pod warunkiem, że dołączysz phpmailer'a. Nie będzie miało wpływu na to, jak stronę widzą inni - nic się nie zmieni.

phpmailer to klasa alternatywnego wysyłania maili w stosunku do mail(). Różnicą jest możliwość wysyłania maili z serwera nie będącego fizycznie na tym samym kompie co strona www (czyli np. poprzez onet, wp itp itd).

Gdybyś miał pytania pisz, a z pewnością wielu z nas Tobie odpowie - to bardzo popularna klasa.


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
juzio6666
post 8.07.2007, 10:30:40
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


Dobra... myślałem że nie będę już musiał Was męczyć ale jednak. Podczas przeglądania tego kodu zauważyłem że potrzebny jest serwer SMTP. Czy nie można by było zrobić, żeby był on ustawiony na coś jakby AUTO? Bo przecież różne osoby będą to uzupełniać i różne będą (chyba worriedsmiley.gif) serwery SMTP.. przynajmniej tak mi się wydaje... choć przyznam że moja wiedza na temat poczty jest nikła dry.gif

Już sprawdziłem. ŁIIIII!!! DZIAŁA! biggrin.gif Wielkie dzięki! Pod koniec okazało się ze pod $adres podstawiłem juzio6666@.gmail.com ... i się dziwiłem czemu ciągle nie działa. No ale jeszcze raz wielkie dzięki i odwołuje pytanie.
Pozdrawiam!

Ten post edytował juzio6666 8.07.2007, 11:42:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:57