Strona 1 z 1

Początkujący w PHP - gdzie jest błąd?

: sob mar 13, 2004 7:21 pm
autor: Vic
Podstawy PHP poznałem wczoraj. Dziś napisałem swój pierwszy skrypt
sprawdzający poprawność wpisywanych danych w formularzu (nie bazowałem na przykładach).
Wszystko wydaje się być dobrze napisane i nie mogę wychwycić błędu.
Oto co wypisuje mi serw po wciśnięciu w formularzu SUBMIT(pole Action celuje w plik a Method to Post) :
<b>Warning: Failed to connect to mailserver, verify your "SMTP" setting in php.ini in c:\phpdev\www\rekrutacja\formcheck.php on line 22</b>


A oto pełen tekst skryptu, pytanie gdzie jest błąd (wiem, że z ostatnią linijką równierz wynikają problemy, ale nie oto chodzi):
BTW: line 22 to funkcja wysyłająca maila (czyli tutaj chyba 23 :))

[php]<?php

/*
Form Checker v 1.0 by Viktor Kabanow.
Files atached: formfail.html; fromvalid.html
Jest to skrypt sprawdzaj±cy poprawno¶ć danych wpisanych w formularzu.
Mój pierwszy skrypt w PHP :). Możliwo¶ci (v1.0):
- sprawdzanie czy użytkownik wypełnił pola ze znaczkiem *;
- czy wybrał opcję z menu kontekstowego;
- czy poprawnie wpisał swój adres e-mail;
*/


if (ereg("[^A-Za-z\d]","$ksywka")||ereg("[^A-Za-z\d]","$haslo")||ereg("[^A-Za-z]","$nazwicho")||ereg("Wybierz","$polaczenie")||ereg("[^^[^@ ]+@[^@ ]+\.[^@ \.]+$]","$mail")) {

header("Location: formfail.html");

}
else {
$adres="[email protected]";
$tekst="Formularz zgłoszeniowy do klanu TAJFUN\n\nNick: $ksywka \nHasło: $haslo \nImię i Nazwisko: $nazwicho \nPoł±czenie z Internetem: $polaczenie \nDo¶wiadczenie: $doswiadczenie lat\nWiek: $wiek \nEmail: $mail \nGG: $gg \nInny Komunikator: $komunikator \nCo¶ o sobie:\n $osobie";

mail($adres, "TAJFUN", $tekst);
header("Location: formvalid.html")
}


?>[/php]

Aha: dla dociekliwych: skrypt tyczy się formularzu ze strony www.tajfun.cs.prv.pl (jakby ktoś chciał mieć oko na całość [uwaga: skrypt sprawdzany był offline - na projekcie strony])

Re: Początkujący w PHP - gdzie jest błąd?

: sob mar 13, 2004 7:44 pm
autor: Grzegorz Winiarski
Żeby skorzystac z funkcji mail() musisz być połaczony z internetem, niektóre serwery wymagają również autoryzacji przed wyslaniem maila

Re: Początkujący w PHP - gdzie jest błąd?

: sob mar 13, 2004 7:46 pm
autor: Vic
Czyli nijak nie sprawdze czy skrypt chodzi offline? (np. teraz sprawdziłem i wychodzi to samo)

Re: Początkujący w PHP - gdzie jest błąd?

: sob mar 13, 2004 7:51 pm
autor: Grzegorz Winiarski
Według mnie to nie ma co tu sprawdzac, wszystko powinno być w porządku. Jeżeli chcesz sprawdzic czy tresc maila wygląda dobrze to zamiast mail() wpisz echo $tekst i wszystko bedzie jasne.

Re: Początkujący w PHP - gdzie jest błąd?

: sob mar 13, 2004 8:00 pm
autor: Vic
I dla upewnienia się:

Pętla warunkowa if (i jej warunki) równierz są poprawne?
(if pola nie zawieraja wyrazów, then wejdz na strone mowiajca ze nie wypelniles ich, else wejdz na strone ze wypelniles)

I co do ostatniej linijki (header("location")
Z tego co rozumiem z wypisanego bledu (którego tu nie przytoczyłem) informacje do header stronki zostaly przeslane w funkcji mail(). Z tego powodu równierz wyskakuje błąd.

co jest (pytanie ewentualne gdyz wiem jak to pominąć)?

Re: Początkujący w PHP - gdzie jest błąd?

: ndz mar 14, 2004 2:10 pm
autor: wixor
Rzecz stoi tak: warunki są ok, a errory są spowodowane innymi errorami... Jak mail się wścieka i mówi, że wysyłane nie bedzie to wypuszcza tekst do przeglądarki. A jak header patrzy, że coś już poszło do browsera to się wścieka, bo headery muszą zostać wysłane przed treścią strony i mamy drugiego errora.

Re: Początkujący w PHP - gdzie jest błąd?

: wt mar 16, 2004 8:40 pm
autor: Vic
Dzienks Panowie. Skrypt napisalem i wszystko dziala. Jestem z siebie dumny... :))

Re: Początkujący w PHP - gdzie jest błąd?

: śr mar 17, 2004 3:32 pm
autor: Grzegorz Winiarski
Heh, znam to uczucie :-D mnie osobiscie nic bardziej nie cieszy niż własnoręcznie napisany skrypt. :roll: