Blad logiczny?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
DuncanSentrus
Posty: 9
Rejestracja: wt cze 08, 2004 12:45 pm
Lokalizacja: Lublin
Kontakt:

Blad logiczny?

Post autor: DuncanSentrus »

Bodajze tak sie to nazywa. Mam kod, wszystko powinno dzialac, ale zamiast strony edycji danych, pojawia mi sie biala strona
[php]

<?

require("backend.php");

function error_message($msg) {
echo "<SCRIPT>alert(\"$msg\");history.go(-1)</SCRIPT>";
exit;
}

$Nick = $HTTP_POST_VARS[Nick];
$Password = $HTTP_POST_VARS[Password];

function login($Nick, $Password) {

if (!eregi("^[[:alnum:]_-]+$", $Nick)) {
error_message("W polu Nick zosaly wpisane niedozwolone znaki!");

}

if (!eregi("^[[:alnum:]_-]+$", $Password)) {
error_message("W polu hasla, podane zostaly niedozwolone znaki");

}

mysql_connect();

$wynik = mysql_query("select * from wolf_confirm
where Nick='$Nick'
and Password = '$Password'");
if (!$wynik){
$ok = false;
}

if (mysql_num_rows($wynik)>0) {
$ok = true;
}
else {
$ok = false;
}

if($ok == false) {
error_message("Nie ma takiego uzytkownika! Jezeli nie jestes zarejestrowany, albo nie aktywowales swojego konta, musisz to zrobic przed zalogowaniem sie!");
}

include("edit.php");
}

?>
[/php]

a jak zamienilem
[php] $Nick = $HTTP_POST_VARS[Nick];
$Password = $HTTP_POST_VARS[Password];
[/php]

na
[php] if(!$HTTP_POST_VARS[Nick] || $HTTP_POST_VARS[Password]) {
error_message(costam);
}
to z kolei wyskakiwal pusty szablon


wielkie thx z gory!
?>[/php]
Ostatnio zmieniony śr lip 07, 2004 2:35 pm przez DuncanSentrus, łącznie zmieniany 3 razy.
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: Blad logiczny?

Post autor: viraptor »

Nie sprawdzilem nawet do konca, ale jak dla mnie, to dziwnie wyglada:
1.
[php]<?php
function login($Nick, $Password) {
function auth_user($Nick) {
?>[/php]
i tak dalej... - funkcja w funkcji?
2. Poza tym najpierw wysylasz cos do bazy, a potem sprawdzasz, czy zawiera to tylko dozwolone znaki? (mysql_escape_string(), czy cos takiego polecam)
3. To wyglada tak, jakby te funkcje mialy sie wykonywac tak jak leca w pliku... a jednak sa funkcjami (moze po prostu w reszcie kodu sie to wyjasnia)
4. Sciezki raz maja slash, a raz backslash...

Jesli to jest kod dokladnie skopiowany bez przerobek, to polecam go przepisac od poczatku, po konsultacji z jakims tutorialem...
DuncanSentrus
Posty: 9
Rejestracja: wt cze 08, 2004 12:45 pm
Lokalizacja: Lublin
Kontakt:

Re: Blad logiczny?

Post autor: DuncanSentrus »

moze i dziwnie wyglada, ale tak bylo napisane :| no i chyba powinno dzialac, a te slashe to juz poprawilem, tylko starsza wersje pliku wstawilem
ODPOWIEDZ