ďťż

Błąd w skrypcie logowania

       

Podstrony


telcocafe

Witam. Zrobiłem na własny użytek mały CMS. Żeby zarządzać stroną przez przeglądarkę trzeba oczywiście mieć skrypt logowania. Zrobiłem właśnie taki skrypt tylko coś mi niestety nie działa(sprawdzałem na localhoście i boo.pl). Proszę o jakąś pomoc, ponieważ zatrzymałem się przy tym problemie i nie mogę iść dalej. Poniżej zamieszczam kody skryptów: logowanie.php i rejestracja.php. Podpowiedzcie co jest źle. Z góry dziękuję za pomoc.

logowanie.php
<?php if (isset($_POST['zaloguj'])) { /*require_once ('../../../mysql-connect-beta.php');*/ require_once ('mysql-connect.php'); function escape_data($dane) { global $baza_danych; if (ini_get('magic_quotes_gpc')) { $dane= stripslashes($dane); } return mysql_real_escape_string($dane,$baza_danych); } $wiadomosc= NULL; if (strlen(trim($_POST['nazwa_uzytkownika'])) > 0) { $n= escape_data(trim($_POST['nazwa_uzytkownika'])); } else $wiadomosc.= "<font style=\"color:red\">Podaj nazwę użytkownika!</font><br />"; if (strlen(trim($_POST['haslo'])) >0) { $h= escape_data(trim($_POST['haslo'])); } else $wiadomosc.= "<font style=\"color:red\">Podaj hasło!</font><br />"; if (strlen(trim($wiadomosc)) >0) { echo $wiadomosc; } else { $zapytanie="SELECT id, nazwa_uzytkownika FROM uzytkownicy WHERE nazwa_uzytkownika='$n' AND haslo=PASSWORD('$h')"; $wynik= @mysql_query ($zapytanie); if ($wynik) { $rzad= mysql_fetch_array($wynik); if ($rzad) { setcookie ('nazwa_uzytkownika', $rzad[1]); setcookie ('id', $rzad[0]); header ("Location: zalogowany.php"); exit(); } else echo "<font style=\"color:red\"><b>Podano nieprawidłowÂą nazwę użytkownika lub nieprawidłowe hasło.</b></font><br />"; } else echo "<font style=\"color:red\"><b>WystÂąpił błÂąd połÂączenia z bazÂą danych. Spróbuj ponownie za chwilę.</b></font><br />"; } } ?> <form action="logowanie.php" method="post"> <fieldset><legend>Logowanie</legend> <b>Użytkownik</b> <input type="text" name="nazwa_uzytkownika" size="10" maxlength="15" value="<?php if (isset($_POST['nazwa_uzytkownika'])) echo $_POST['nazwa_uzytkownika']; ?>" /><br /> <b>Hasło</b> <input type="password" name="haslo" size="10" maxlength="16" /><br /> <center><input type="submit" name="zaloguj" value="Zaloguj" /></center></fieldset></form>

rejestracja.php

<center><b>Rejestracja</b></center> <?php if (isset($_POST['zarejestruj']) ) { /*require_once ('../../../mysql-connect-beta.php');*/ require_once ('mysql-connect.php'); function escape_data($dane) { global $baza_danych; if (ini_get('magic_quotes_gpc')) { $dane= stripslashes($dane); } return mysql_real_escape_string($dane,$baza_danych); } $wiadomosc= NULL; if (strlen(trim($_POST['imie'])) > 0 AND strlen(trim($_POST['imie'])) <=15) { $i= escape_data(trim($_POST['imie'])); } else $wiadomosc.= "<font style=\"color:red\"><b>Imię zawiera nieprawidłowÂą iloÂść znaków!</b></font><br />"; if (strlen(trim($_POST['nazwisko'])) > 0 AND strlen(trim($_POST['nazwisko'])) <=20 ) { $n= escape_data(trim($_POST['nazwisko'])); } else $wiadomosc.= "<font style=\"color:red\"><b>Nazwisko zawiera nieprawidłowÂą iloÂść znaków!</b></font><br />"; if (strlen(trim($_POST['email'])) > 0 AND strlen(trim($_POST['email'])) <= 30) { $e= escape_data(trim($_POST['email'])); } else $wiadomosc.= "<font style=\"color:red\"><b>Email zawiera nieprawidłowÂą iloÂść znaków!</b></font><br />"; if (strlen(trim($_POST['nazwa_uzytkownika'])) > 0 AND strlen(trim($_POST['nazwa_uzytkownika'])) <=15) { $nu= escape_data(trim($_POST['nazwa_uzytkownika'])); } else $wiadomosc.= "<font style=\"color:red\"><b>Nazwa użytkownika zawiera nieprawidłowÂą iloÂść znaków!</b></font><br />"; if (strlen(trim($wiadomosc)) >0) echo $wiadomosc; else { $zapytanie="SELECT id FROM uzytkownicy WHERE nazwa_uzytkownika='$nu'"; $wynik= @mysql_query($zapytanie); if (mysql_num_rows($wynik) == 0) { $h=' '; while (strlen($h)<10) $h.=chr(rand(65,90)); $zapytaniedwa= "INSERT INTO uzytkownicy (imie, nazwisko, email, nazwa_uzytkownika, haslo, data_rejestracji) VALUES ('$i', '$n', '$e', '$nu', PASSWORD('$h'), NOW())"; $wynikdwa= @mysql_query ($zapytaniedwa); if ($wynikdwa) { $temat="Rejestracja w serwisie"; $tresc="Witaj $i!<br />Ta wiadomoÂść została wysłana do Ciebie w zwiÂązku z rejestracjÂą w serwisie .... .<br />Oto dane do Twojego konta:<br />Nazwa użytkownika: <b>$nu</b><br />Hasło: <b>$h</b>.<br />Pozdrawiamy, administracja www. .pl.<br />"; mail ($e, $temat, $tresc, $naglowek); echo "<font style=\"color:green\"><b>Dziękuję $i. Twoje konto zostało zarejestrowane. Na podany przez Ciebie adres email wysłaliÂśmy hasło, za pomocÂą którego będzie możliwe zalogowanie do systemu. Po zalogowaniu można zmienić wygenerowane przez nas hasło $h.</b></font>"; } else echo "<font style=\"color:red\"><b>Nie mogłeÂś zostać zarejestrowany z powodu błędu bazy danych. Przepraszamy i zapraszamy za chwilę.</b></font><br />"; } else echo "<font style=\"color:red\"><b>Podana przez Ciebie nazwa użytkownika jest już zajęta!</b></font><br />"; } } ?> <form action="rejestracja.php" method="post"> <fieldset><legend>Rejestracja</legend> <b>Imię</b> <input type="text" name="imie" size="15" maxlength="15" value="<?php if (isset($_POST['imie'])) echo $_POST['imie']; ?>" />(1-15 znaków)<br /> <b>Nazwisko</b> <input type="text" name="nazwisko" size="20" maxlength="20" value="<?php if (isset($_POST['nazwisko'])) echo $_POST['nazwisko']; ?>" />(1-20 znaków)<br /> <b>Email</b> <input type="text" name="email" size="20" maxlength="30" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" />(1-30 znaków)<br /> <b>Nazwa użytkownika</b> <input type="text" name="nazwa_uzytkownika" size="15" maxlength="15" value="<?php if (isset($_POST['nazwa_uzytkownika'])) echo $_POST['nazwa_uzytkownika']; ?>" />(1-15 znaków)<br /> <font style="color:red">*wypełnienie wszystkich pól jest wymagane</font><br /> <center><input type="submit" name="zarejestruj" value="Zarejestruj" /></center></fieldset></form>



1. zmień kodowanie na utf-8, bo iso wygląda co najmniej nieprofesjonalnie
2. byłoby łatwiej, gdybyś napisał co nie działa...

Pojawia się błąd "Podano nieprawidłową nazwę użytkownika lub nieprawidłowe hasło" chociaż jestem pewien, że dane są prawidłowe. Może z jakąś funkcją jest problem (może jest już zmieniona przez inną) bo ja uczyłem się PHP i MySQL z książki z 2004 roku. Sądząc po komunikacie to może być coś nie tak z funkcją PASSWORD szyfrującą hasła podczas rejestracji (?).
Użytkownik markos2xx edytował ten post 12 wrzesień 2009, 12:56
no rzeczywiście
PASSWORD zmień na szyfrowanie md5(), a co to za funkcja NOW()?? ja takiej w specyfikacji php4i5 nie widzę...
i serio pomyśl nad przejściem na utf-8

i co do problemów z funkcjami polecam : http://pl.php.net/

swoją drogą powinno wywalić Ci błędy że T_OLD_FUNCTION ...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.