Witam! Po obiciu się o różne technologie, języki programowania itd. przechodzę do innego projektu, realnego i mam nadzieję, że prostego do wykonania. Żeby nie było, że pisze tylko bo mam problem ze zrobieniem rejestracji, to napiszę też o szyfrowaniu. Ale najpierw rejestracja, buduję ją do własnych potrzeb, dlatego może być troche "pomieszana". Plik sql1.php
<?php
$connection = @mysql_connect('adres serwera oczywiscie te dane sa wpisane', 'nick', 'haslo')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('nazwa bazy danych', $connection)
or die('Nie mogę połączyć się z bazą danych');
?>
Plik register.php
<html>
<?php
include("include/head.php");
// include("include/sql1.php");
?>
<body>
<h1>Rejestracja</h1>
<h2>Utwórz swoje konto gry WorldWar3</h2>
<br><br>
Regulamin<br>
<?
//jesli byl wyslany formularz przechodzimy do obsługi danych
if(isset($_POST['wyslij']))
{
foreach ($_POST AS $klucz => $wartosc)
{
$wartosc= trim($wartosc);
if (get_magic_quotes_gpc())
$wartosc= stripslashes($wartosc);
$wartosc=htmlspecialchars($wartosc, ENT_QUOTES);
$_POST[$klucz]=$wartosc;
}
$nick = $_POST['nick'];
$poziom = "1";
$haslo = $_POST['haslo'];
$haslopoprawne = md5($_POST['haslo']);
$email = $_POST['email'];
$emailpoprawny = md5($_POST['email']);
$data = date('jS F Y');
$datazalogowania = date('jS F Y');
$nazwapanstwa = $_POST['nazwapanstwa'];
$avatar = $_POST['avatar'];
$blad_txt='';
$blad=false;
if(strlen($nick)<4){
$blad_txt.='<font color=\'#990000\'>Pole <b>1</b>: nick za krótki (min.4 znaki).</font><br/>';
$blad=true;
}
if(strlen($nick)>16){
$blad_txt.='<font color=\'#990000\'>Pole <b>1</b>: nick za długi (maks.16 znaków).</font><br/>';
$blad=true;
}
if(strlen($haslo)<4){
$blad_txt.='<font color=\'#990000\'>Pole <b>2</b>: hasło za krótkie (min.4 znaki).</font><br/>';
$blad=true;
}
if(strlen($haslo)>16){
$blad_txt.='<font color=\'#990000\'>Pole <b>2</b>: hasło za długie (maks.16 znaków).</font><br/>';
$blad=true;
}
//sprawdzamy czy jest podany prawidłowy adres e-mail
if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)){
$blad_txt.='<font color=\'#990000\'>Pole <b>3</b>: nieprawidłowy adres e-mail</font><br/>';
$blad=true;
}
if(!$blad)
{
//zapisywanie poprawnych danych do bazy danych
include("include/sql1.php");
If($nick == 'DaRkMAN'){
$poziom = "9";
}
//zapytanie dodające zmienne $imie i $nazwisko do bazy
$zapytanie = "CREATE TABLE $nick (
poziom VARCHAR(1),
haslo VARCHAR(255),
email VARCHAR(255),
data VARCHAR(15),
datazalogowania VARCHAR(15),
nazwapanstwa VARCHAR(50),
avatar VARCHAR(80),
)
INSERT INTO $nick VALUES ('$poziom','$haslopoprawne','$emailpoprawny','$data','$datazalogowania','$nazwapanstwa','$avatar')";
$idzapytania = mysql_query($zapytanie);
if($idzapytania) echo '<font color=\'#00FF00\'>Zarejestrowano poprawnie</font>';
else echo '<font color=\'#990000\'>Błąd podczas dodawania</font>';
}
else
{
echo $blad_txt;
}
}
else
{
$nick = '';
$poziom = "1";
$haslo = '';
$email = '';
$data = date('jS F Y');
$datazalogowania = date('jS F Y');
$nazwapanstwa = '';
$avatar = '';
}
//wyswietlamy formularz
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<table>
<tr><td></td><td><b>Informacje podstawowe:<b></td></tr>
<tr><td>1.</td><td>Nick*:</td><td><input type="text" name="nick" value="'.$nick.'"></td></tr><br><br>
<tr><td>5.</td><td>Nazwa państwa w grze:</td><td><input type="text" name="nazwapanstwa" value="'.$nazwapanstwa.'"></td></tr>
<tr><td>2.</td><td>Haslo*:</td><td><input type="password" name="haslo" value="'.$haslo.'"></td></tr>
<tr><td>3.</td><td>E-mail*:</td><td><input type="text" name="email" value="'.$email.'"></td></tr>
<tr><td>20.</td><td>Avatar(adres pliku):</td><td><input type="text" name="avatar" value="'.$avatar.'"></td></tr>
<tr><td></td><td></td><td><input type="reset" value="Wyczyść" /> <input type="submit" name="wyslij" value="Wyślij"></td></tr>
</table>
</form>';
?>
Ok, teraz o co w tym kodzie chodzi: Wypełniamy formularz (nie jest skończony, skończę jak zrobię "silnik") piszemy sobie swój nick, hasło i reszte. Nick jest zapisywany do zmiennej nick, hasło do zmiennej haslo itd... Hasło i Email są szyfrowane przez md5. Gdy klikniemy "Wyślij", powinna nam się utworzyć tabela o nazwie nicku, a w niej powinny utworzyć się pola i wypełnić danymi z formularza.
Teraz drugie pytanie, jak szyfrować inne wartości, tak, żeby jak najciężej było je edytować hakerom i tym podobnym? Chciałbym coś w stylu md5, fajna rzecz ale pewnie łatwa do minięcia. Załóżmy, że każdy użytkownik dostawałby 5000 punktów do jakiegoś tam celu. Będzie miał możliwości zarobku, ale istnieją użytkownicy, którzy chcieliby w kilka minut mieć np. dodatkowe 10000 punktów. Nie interesowałem się jak można to zrobić, ale chyba użytkownicy tego forum wiedzą jak tego uniknąć, czyli co zastosować.</b></b>