Jeśli to ma być zwykły skrypt rejestracyjny, to ja bym to zrobił raczej w dwóch skryptach i przy okazji zainstalował MySQL-a, bo takie żeczy się robi w SQL-u... jeśli już go zainstalujesz, możesz napisać skrypt podobny do tego:
SKRYPT1.php:
<html>
<?php
//definicja funkcji:
function print_form() {
?>
<form action = \"rejestracja.php\" method = \"POST\">
<p>Nick: <input type = \"text\" name = \"nick\">
<br>Login: <input type = \"text\" name = \"login\">
<br>Hasło: <input type = \"password\" name = \"passwd1\">
<br>Potwierdź hasło: <input type = \"password\" name = \"passwd2\">
<p><input type = \"submit\" name = \"submit\" value = \"Zarejestruj się!\">
<p><font color = \"#FFFFFF\"><b>Status:</b><font color = \"#C0C0C0\">
</form>
<font color = \"#FF0000\">
<?
}
print_form();
if(isset($_POST['submit'])): $nick = $_POST['nick'];
$login = $_POST['login'];
$passwd1 = $_POST['passwd1'];
$passwd2 = $_POST['passwd2'];
endif;
if(isset($_POST['submit']) && ($nick == \"\")): print(\"<p>Musisz wpisać swój <b>nick</b>.n\"); endif;
if(isset($_POST['submit']) && ($login == \"\")): print(\"<p>Musisz wpisać swój <b>login</b>.n\"); endif;
if(isset($_POST['submit']) && ($passwd1 == \"\")): print(\"<p>Musisz wpisać swoje <b>hasło</b>.n\"); endif;
if(isset($_POST['submit']) && ($passwd2 == \"\")): print(\"<p>Wpisz potwierdzenie <b>hasła</b>.n\"); endif;
if(isset($_POST['submit']) && ($passwd1 != $passwd2)): print(\"<p><b>Hasło</b> i jego potwierdzenie muszą być takie same!n\"); endif;
?>
<font color = \"#FF0000\">
<?
$login = $_POST['login'];
$sql = \"SELECT * FROM tabela WHERE login = '\". $login .\"'\";
?>
<font color = \"#C0C0C0\">
<?
if(isset($_POST['submit']) && ($passwd1 == $passwd2) && ($nick != \"\") && ($login != \"\") && (mysql_num_rows($result) <= 0)): print(\"<h3>Oto twoje dane:</h3>n\"); print(\"<p>Nick: <b>$nick</b>n\"); print(\"<p>Login: <b>$login</b>n\"); print(\"<p>Hasło: <b>*****</b>n\"); $sql = \"INSERT INTO tabela VALUES (
'$nick', '$login', '$passwd1')\";
endif;
?>
</html>
Ten skrypt nakaże interpreterowi, żeby zapisał dane podane w zmiennych $login, $nick i $passwd1 do tabeli "tabela" w bazie "baza"
SKRYPT2.php:
<? //To jest skrypt sprawdzający login ?>
<html>
<?php
//definicja funkcji
function print_form() {
?>
<center>
<form action = \"login.php3\" method = \"POST\">
<font color = \"#FFFFFF\">
<h3>Zaloguj się:</h3>
<font color = \"C0C0C0\">
<p>Login: <br><input type = \"text\" name = \"login\">
<br>Hasło: <br><input type = \"password\" name = \"passwd1\">
</center>
</form>
<?
}
if(isset($_POST['submit'])): if(!$db):
?>
<center>
<?
print(\"<h2>Błąd z połączeniem się do bazy danych!</h2>n\"); ?>
</center>
<?
else:
endif;
$login = $_POST['login'];
$sql = \"select * from tabela where login = '$login'\";
if($row_count == 0):
print_form();
?>
<font color = \"#FF0000\">
<center>
<h3>Niewłaściwy login!</h3>
</center>
<font color = \"#C0C0C0\">
<?
else:
$podpis = $_POST['podpis'];
if($podpis == \"\"):
print_form();
?>
<font color = \"#FF0000\">
<center>
<?
print(\"<p>Podpisz się!n\"); ?>
</center>
<font color = \"#FF0000\">
<?
else:
$passwd1 = $_POST['passwd1'];
if($passwd1 != $row[\"passwd\"]):
print_form();
?>
<font color = \"#FF0000\">
<center>
<?
print(\"<p>Nieprawidłowe hasło!n\"); ?>
</center>
<font color = \"#C0C0C0\">
?>
</center>
<?
endif;
endif;
endif;
else:
print_form();
endif;
?>
</html>
Na końcu możesz zawsze dać ciasteczko, które będzie pokazywało, że użytkownik jest zalogowany:
<?php
?>
W jeszcze innym skrypcie możesz dać komendę sprawdzającą, czy ciasteczko jest w przeglądarce... zresztą, o ciasteczkach przeczytasz w manualu... Jeśli Ci nie pomogłem, to sorry, ale spróbuj to zrobić w SQL-u. A poza tym, to strasznie coś namieszałeś w tym skrypcie... spróbuj dawać więcej spacji i TAB-ów, wtedy skrypt będzie przejrzystszy...
Ten post edytował Vertical 9.08.2004, 18:34:16