<?php
if (isset($_POST['acceptedreg']) AND
$_POST['acceptedreg'] == 1
) { if ( empty($_POST['wpisanyloginreg']) || empty($_POST['wpisanehasloreg']) || empty($_POST['wpisanyemailreg']) || empty($_POST['wpisanaplecreg']) ) { echo '<b>Nie wypełniłeś wszystkich pól!</b>'; $_POST['acceptedreg'] = 0; } else {
//check open i insert open
else
$wplec = $_POST['wpisanaplecreg'];
$checklogin = mysql_query("SELECT id FROM users WHERE login = '$wlogin'"); $checkemail = mysql_query("SELECT id FROM users WHERE email = '$wemail'"); echo '<table border="0">'; if ($logincheck == 1
) { echo '<td>- Konto o takim loginie już istnieje. Wybierz inny login.</td><tr>'; } if ($emailcheck == 1
) { echo '<td>- Konto o takim emailu już istnieje. Wpisz inny email.</td>'; } if ($logincheck == 1 OR
$emailcheck == 1
) { echo '<meta http-equiv="refresh" content="5;url=rejestracja.php"/>'; } else
{
$databaza= date('H:i/d/m/y'); mysql_query("INSERT INTO users VALUES ('','$wlogin','$whaslo', '$wemail', '$wplec', 'n$databaza', '0')"); echo "Zostałeś poprawnie zarejestrowany!<br>Twoje hasło to: <b>$whaslo</b>.<br>Możesz się zalogować w formularzu u góry."; }
//check close i insert close
}
}
if (!isset($_POST['acceptedreg']) || $_POST['acceptedreg'] == 0
) { echo '<table border="0"><form method="POST"> <td width="120"> Login:</td><td width="90"><input type="text" name="wpisanyloginreg" maxlength="10"> </td><tr>
<td> Hasło:</td><td><input type="text" name="wpisanehasloreg" maxlength="10"> </td><tr>
<td> Email:</td><td><input type="text" name="wpisanyemailreg" maxlength="25"> </td><tr>
<td> Płeć:</td><td><select name="wpisanaplecreg">
<option value="1">Kobieta</option>
<option value="2">Mężczyzna</option>
<input type="hidden" name="acceptedreg" value="1"> </td><tr>
<td colspan="2"><center><input type="submit" value="Zarejestruj"><h5>*Po przyciśnięciu "Zarejestruj"<br>wyświetli się Twoje hasło!</h5></td>
</form></table>';
}
?>
Jest to mój skrypt rejestracji. Wszystko działa jak należy, nie ma błędów itp. Chodzi tylko o to, że nie wiem czy dobrze zrobione są te magic quotesy. Wpiszę w login i pass np. haslo'' to potem po kliknięciu Submita jest napisane, że Twoje hasło to: haslo\'\' i tak chyba powinno to wyglądać, ale po chwili dodawane jest to do bazy i tam dodaje się jako haslo'' bez tych backslashów. Następnie przy zalogowaniu jak wpiszę haslo'' to mnie zaloguje. Login i Pass oczywiście są takie same. Tak więc nie wiem jak zrobić aby to naprawić. Ktoś wpisze to coś od sql injection w rejestracji a potem przy logowaniu skrypt nie zabezpieczy się tymi addslashami czy coś, przynajmniej ja tak to widzę. Z góry dzięki.