Przerabiam książkę "Dynamiczne strony WWW php i MySQL" z Heliona i utknąłem pod koniec 3-ciego rozdziału.
Mam skrypt:
<?php # Skrypt 3.15 - rejestracja.php $message = NULL; // Utworz nową, pustą zmienną. // Sprawdź nazwisko. $name = TRUE; } else { $name = FALSE; $message .= '<p>Zapomniałeś podać swoje nazwisko!</p>'; } // Sprawdź adres e-mail. $email = TRUE; } else { $email = FALSE; $message .= '<p>Zapomniałeś podać swój adres e-mail!</p>'; } // Sprawdź nazwę użytkownika. $username = TRUE; } else { $username = FALSE; $message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika!</p>'; } // Sprawdź czy użytkownik wprowadził hasło i czy w obu polach jest ono takie samo. if ($_POST['password1'] == $_POST['password2']) { $password = TRUE; } else { $password = FALSE; $message .= '<p>Za drugim razem wpisałeś inne hasło!</p>'; } } else { $password = FALSE; $message .= '<p>Zapomniałeś wprowadzić hasło!</p>'; } if ($name && $email && $username && $password) { // Jezeli wszystko jest OK. // Zarejestruj uzytkownika. // Wyslij maila. $body = "Dziękujemy za zarejestrowanie się na naszej stronie!nTwoja nazwa użytkownik
a to '{$_POST['username']}' a Twoje hasło to '{$_POST['password1']}'.nnZ poważaniem,nMy"; } else { $message .= '<p>Wróć do formularza i spróbuj jeszcze raz.</p>'; } } // Ustaw tytul strony i naglowek HTML. $page_title = 'Zarejestruj się!'; include ('./naglowek.inc'); // Jezeli jest jakis komunikat o bledzie, wyswietl go na stronie } ?> <fieldset><legend>Wprowadź do poniższego formularza informacje na swój temat:</legend> <p><b>Hasło:</b> <input type="password" name="password1" size="20" maxlength="40" /></p> <p><b>Potwierdź hasło:</b> <input type="password" name="password2" size="20" maxlength="40" /></p> </fieldset> <div align="center"><input type="submit" name="submit" value="Wyślij dane" /></div> </form><!-- Koniec formularza --> <?php include ('./stopka.inc'); // Dołącz stopkę HTML. ?>
Po wypełnieniu danych we formularzu i próbie wysłania otrzymuję następujący błąd:
Kod
Warning: mail() [function.mail]: SMTP server response: 550 Invalid recipient: mail@onet.pl in c:\usr\krasnal\www\dyn\rejestracja.php on line 49
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\dyn\rejestracja.php:49) in c:\usr\krasnal\www\dyn\rejestracja.php on line 50
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\dyn\rejestracja.php:49) in c:\usr\krasnal\www\dyn\rejestracja.php on line 50
Skrypt dokładnie sprawdziłem i jest taki sam jak w książce. Poza tym znalazłem przykłady do tej książki na serwerze Heliona i wkleiłem oryginalny. Ciągle taki sam błąd.
W opisie skryptu autor książki podał informację, że w przypadku problemów może coś być nie tak w pliku php.ini. Używam Krasnala i nie wiem o który plik php.ini chodzi. Jeden jest w katalogu Windowsa, drugi w c:\usr\php, trzeci w c:\usr\php5, czwarty w c:\usr\ini\php\5. OK, otwarłem ten z katalogu c:\windows i są tam następujące informacje:
Kod
[mail function]
; For Win32 only.
SMTP =localhost
; For Win32 only.
sendmail_from =admin@localhost
; For Unix only. You may supply arguments as well (default: 'sendmail -t -i').
;sendmail_path =
; For Win32 only.
SMTP =localhost
; For Win32 only.
sendmail_from =admin@localhost
; For Unix only. You may supply arguments as well (default: 'sendmail -t -i').
;sendmail_path =
Naprawdę nie wiem co może być przyczyną, że jestem informowany o nieprawidłowym odbiorcy w funkcji MAIL i że nagłówki już zostały wysłane.
Pozdrawiam,
Krzysiek