Napisałem sobie skrypt PHP rejestracji z połączeniem do bazy danych MySQL i z jakiegoś powodu podczas logowania pisze że dane wpisane do formularza podczas logowania się nie zgadzają.
Bardzo proszę o pomoc.
Oto skrypty:
Skrypt logowania:
<? #logowanie.php
if (isset($_POST['submit'])) { require_once ('includes/mysql_connect.php');
//Funkcja wstawiająca przed znakami specjalnymi znak odwrotengo ukośnika.
function escape_data ($data) {
}
}
//Koniec funkcjii.
$message = NULL;
//Sprawdź nazwę użytkownika
if (empty($_POST['username'])) { $u = FALSE;
$message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika!</p>';
} else {
$u = escape_data($_POST['username']);
}
//Sprawdź hasło
if (empty($_POST['password'])) { $p = FALSE;
$message .= '<p>Zapomniałeś wprowadzić hasło!</p>';
} else {
$p = escape_data($_POST['password']);
}
if ($u && $p) {
//Odczytaj user_id i first_name dla podanej kombinacji nazwy użytkownika i hasla.
$query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
if ($row) { //Z bazy danych wyciągnięto właściwy rekord
header ("Location: http://". $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). "/zalogowany.php");
} else {
$message = '<p>Wprowadzone przez Ciebie nazwa użytkownika i hasło nie zgadzają się z danymi w bazie.</p>';
}
} else {
$message .= '<p>Spróbuj jeszcze raz</p>';
}
} //Koniec głównego formularza warunkowego Submit.
//Tytuł strony i nagłowek
$page_title = 'Logowanie';
include ('szablony/naglowek.inc');
//Jeżeli jest jakiś komunikat o błędzie, wyświetl go na stronioe.
echo '<font color="red">'. $message .'</font>'; }
?>
<!-- Początek formularza -->
<form action="
<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset><legend>Wprowadź wymagane informacje:</legend>
<p><b>Nazwa użytkownika</b> <input type="text" name="username" size="10" maxlength="20" value="
<? if (isset($_POST['username'])) echo $_POST['username']; ?>" /></p>
<p><b>Hasło:</b> <input type="password" name="password" size="20" maxlength="20" /></p>
</fieldset>
<div align="center"><input type="submit" name="submit" value="Zaloguj się" /></div>
</form>
<!-- Koniec formularza -->
<?
include('szablony/stopka.inc');
?>
Skrypt rejestracji:
<? #rejestracja.php
//Tytuł strony i nagłówek
$page_title = 'Zarejestruj się!';
include ('szablony/naglowek.inc');
if (isset($_POST['submit'])) { //Obsluga formularza
require_once('includes/mysql_connect.php'); //Połącz z bazą danych
//funkcja wstawiająca przed znakami specjalnymi znak odwrotengo ukośnika.
function escape_data ($data) {
global $dbc; //Wymaga połączenia {
}
}
//koniec funkcji
$message = NULL; //nowa pusta zmienna
//sprawdź imie
if (empty($_POST['first_name'])) { $fn = FALSE;
$message .= '<p>Zapomniałeś podać swoje imię!</p>';
} else {
$fn = escape_data($_POST['first_name']);
}
//sprawdź nazwisko
if (empty($_POST['last_name'])) { $ln = FALSE;
$message .= '<p>Zapomniałeś podać swoje nazwisko!</p>';
} else {
$ln = escape_data($_POST['last_name']);
}
//sprawdź adres email
if (empty($_POST['email'])) { $e = FALSE;
$message .= '<p>Zapomnialeś podać swój adres e-mail!</p>';
} else {
$e = escape_data($_POST['email']);
}
//sprawdź nazwę użytkownika
if (empty($_POST['username'])) { $u = FALSE;
$message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika</p>';
} else {
$u = escape_data($_POST['username']);
}
//sprawdź czy użytkownik wprowadził hasło poprawnie w oba pola
if (empty($_POST['password1'])) { $p = FALSE;
$message .= '<p>Zapomniałeś wprowadzić hasło</p>';
} else {
if ($_POST['password1'] == $_POST['password2']) {
$p = escape_data($_POST['password1']);
} else {
$p = FALSE;
$message .= '<p>Za drugin razem wpisałeś inne hasło!</p>';
}
}
if ($fn && $ln && $e && $u && $p) { //Jeżeli wszystko jest OK
//Zarejestruj użytkownika w bazie danych
$query = "SELECT user_id FROM users WHERE username='$u'";
//Utwórz zapytanie
$query = "INSERT INTO users (username, first_name, last_name, email, password, registration_date) VALUES ('$u', '$fn', '$ln', '$e', PASSWORD('$p'), NOW() )";
if ($result) { //Jeżeli zostało wykonane
//Wyślij maila jeśli trzeba
echo '<p><b>Zostałeś zarejestrowany!</b></p>'; include ('szablony/stopka.inc');
} else { //Jeżeli nie zostało wykonane
$message .= '<p>Nie zostałeś zarejstrowany z powodu awarii naszego systemu.<br>Przepraszamy za kłopot</p><p>'. mysql_error() .'</p>'; }
} else {
$message = '<p>Ktoś wybrał już sobie tę nazwę użytkownika.</p>';
}
} else {
$message .= '<p>Spróbuj jeszcze raz</p>';
}
} //Koniec głównego wyrażenia warunkowego Submit
//Jeżeli jest jakiś komunikat o błędzie, wyświetl go na stronie
echo '<font color="red">'. $message .'</font>'; }
?>
<form action="
<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset><legend>Wprowadź do poniższego formularza podane informacje:</legend>
<p><b>Imię:</b> <input type="text" name="first_name" size="15" maxlenght="15" value="
<? if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>" /></p>
<p><b>Nazwisko:</b> <input type="text" name="last_name" size="20" maxlenght="40" value"
<? if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>" /></p>
<p><b>Adres E-mail:</b> <input type="text" name="email" size="40" maxlenght="60" value"
<? if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
<p><b>Nazwa użytkownika:</b> <input type="text" name="username" size="20" maxlenght="40" value"
<? if (isset($_POST['username'])) echo $_POST['username']; ?>" /></p>
<p><b>Hasło:</b> <input type="password" name="password1" size="20" maxlenght="40" /></p>
<p><b>Potwierdź hasło:</b> <input type="password" name="password2" size="20" maxlenght="40" /></p>
</fieldset>
<div align="center"><input type="submit" name="submit" value="Zarejestruj" /></div>
</form>
<?
include('szablony/stopka.inc');
?>
Ten post edytował guzior 21.02.2009, 13:57:33