Pokwapiłem się usun±ć wszystkie dwukropki z nazw pól.
<form action="x.php" method="post"> <!--Nick-->
<input type="text" name="nick" maxlength="10" size="10">
<!--haslo-->
<input type="password" name="haslo" maxlength="10" size="10">
<!--2cyfry-->
<input type="text" name="2cyfry" maxlength="2" size="2">
<!--4cyfry-->
<input type="text" name="4cyfry" maxlength="4" size="4">
<!--potwierdzenie-->
<input type="submit" value="okej"/>
A tu skrypcik PHP który odwala czarn± robotę.
X.php
Na pocz±tku pliku znajduj± się dane które powiniene¶ dopasować do swoich wymagań
<?PHP
/*
Nick może składać się z liter liczb oraz zanków "-" oraz "_"
Hasło natomiast z liter, liczb i wszystkich znaków które wymagaj± tuszu do druku
Zarówno nick jak i hasło mog± zawierać polskie znaki kodowane w UTF-8
2 liczby to 2 liczby jak mniemam
4 adekwatnie ;)
*/
// Adres strony z błędem po Ľle wypełnionych danyh
$error = "error.html";
// Adres strony wy¶wietlonej kiedy nie uda się zapisać dobrze wysłanych danych
$save_error = "save_error.html";
// Adres strony z dobrze wypełnionymi danymi
$good = "good.html";
// plik z danymi. Dobrze by było go umie¶cić poza głównym folderem aplikacjii aby nikt nie miał do niego dostępu. Inaczej kto¶ wykradnie wszystkie dane wpisuj±c jego adres w
// przegl±darce
$plik = "dane.txt";
// Maksymalna liczba znaków w Nicku
$nick_max = 15;
// Maksymalna liczba znaków w Ha¶le
$haslo_max = 15;
// Sprawdzenie danych wej¶ciowych
// Czy zostały wysłane wszystkie wymagane pola
$nick = $haslo = $cyfry2 = $cyfry4 = "";
if ( isset ($_POST['nick']) ) {
$nick = $_POST['nick'];
}
if ( isset ($_POST['haslo']) ) {
$haslo = $_POST['haslo'];
}
if ( isset ($_POST['2cyfry']) ) {
$cyfry2 = $_POST['2cyfry'];
}
if ( isset ($_POST['4cyfry']) ) {
$cyfry4 = $_POST['4cyfry'];
}
// sprawdzenie przesłanych danych
if
(
! preg_match ("/^[a-zA-Z0-9-_ˇĘĆ¦ÓŁŻ¬Ćѱęć¶ółżĽćń]{1,".$nick_max."}$/u", $nick ) || ! preg_match ("/^[a-zA-Z0-9:graph:ˇĘĆ¦ÓŁŻ¬Ćѱęć¶ółżĽćń]{1,".$haslo_max."}$/u", $haslo ) || ){
header ( "Location: ".$error ); // Dane zostały wypełnione w nieprawidłowy sposób przekierowanie do strony z błędem }
else
{
// otwarcie pliku do zapisu
if ( ! $handler = fopen ( $plik , 'at' ) ) {
header ( "Location: ". $save_error ); }
if ( ! fputs ( $handler , "NICK:".$nick.PHP_EOL
."HASLO:".$haslo.PHP_EOL
."2cyfry:".$cyfry2.PHP_EOL
."4cyfry:".$cyfry4.PHP_EOL
."##########".PHP_EOL
) ) {
header ( "Location: ". $save_error ); }
header ( "Location: ". $good ); }
header ( "Location:".$error ); ?>
Hasła s± widoczne praktycznie dla każdego w takiej konfiguracji. Można by je zaszyfrować
albo plik gdzie¶ schować. Tak by nie był dostępny po wpisaniu
http://adres.twojej.strony/dane.txt