<?php else { //check open i insert open else $wplec = $_POST['wpisanaplecreg']; if ($logincheck == 1) { echo '<td>- Konto o takim loginie już istnieje. Wybierz inny login.</td><tr>'; } if ($logincheck == 1 OR $emailcheck == 1) { echo '<meta http-equiv="refresh" content="5;url=rejestracja.php"/>'; } else { 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 } } 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.