Autor | Zpráva | ||
---|---|---|---|
johnl Profil |
#1 · Zasláno: 23. 7. 2009, 13:35:12
Dobrý den, mám takovou registraci:
<?php include "./connect.php";// připojení k databázi if(isset($_POST['submit'])) { $nick = $_POST['nick']; $heslo = $_POST['heslo']; $over_heslo = $_POST['over_heslo']; $md5_heslo = md5($heslo); $email = $_POST['email']; /* --- KONTROLA ZADANÝCH ÚDAJŮ --- */ if($nick==""){ echo'Nebyl vyplněn nick!'; } else if($heslo==""){ echo'Nebylo vyplněno heslo'; } else if($over_heslo==""){ echo'Nebylo vyplněno ověřovací heslo'; } else if($heslo!=$over_heslo){ echo'Vyplněná hesla se neshodují'; } else if($email==""){ echo'Nebyl vyplněn email'; } else{ $sql= mysql_query("INSERT INTO uzivatele VALUES ('','$nick','$md5_heslo','$email')") or die(mysql_error()); echo'Registrace byla úspěšně dokončena!'; } } ?> <form action="#" method="post"> <table> <tr> <td>Nick: </td> <td><input type="text" name="nick" value="" size="25" tabindex="1" /></td> </tr> <tr> <td>Heslo: </td> <td><input type="password" name="heslo" value="" size="25" tabindex="2" /></td> </tr> <tr> <td>Ověření hesla: </td> <td><input type="password" name="over_heslo" value="" size="25" tabindex="3" /></td> </tr> <tr> <td>Email: </td> <td><input type="text" name="email" value="" size="25" tabindex="4" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="submit" value="Registrovat" /></td> </tr> </table> </form> Když někdo zadá stejný nick jako už v databázi je, sice se starý nick nesmaže (jsou v databázi oba dva nicky), ale to nechci. Nevím jak mám udělat aby se nick v databázi ověřil a pokud už v databázi takový nick je vypíše to třeba "Tento nick už je obsazený...", jak to mám udělat? |
||
tiso Profil |
#2 · Zasláno: 23. 7. 2009, 13:40:07
Nastaviť unikátny index na stĺpec nick v databáze a pri INSERT zisťovať či nastala chyba. Ak nastala tá o pokuse vložiť duplicitu, tak vypíšeš tú hlášku.
|
||
Taps Profil |
#3 · Zasláno: 23. 7. 2009, 13:40:19 · Upravil/a: Taps
johnl
přidej tam toto $nick = $_POST['nick']; $heslo = $_POST['heslo']; $over_heslo = $_POST['over_heslo']; $md5_heslo = md5($heslo); $email = $_POST['email']; $sql=mysql_query("select * from uzivatele where nick='$nick'"); .... } else if($email==""){ echo'Nebyl vyplněn email'; } elseif(mysql_num_rows($sql)==1){ echo 'Takový nick již existuje'; } |
||
johnl Profil |
#4 · Zasláno: 23. 7. 2009, 14:04:12
Nevím, možná je to tím že mám na serveru jen php4 ale je tam chyba:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/w/wincre/registrace.php on line 31 Na řádku 31 je to: elseif(mysql_num_rows($sql)==1){ |
||
GeneralDv Profil |
#5 · Zasláno: 23. 7. 2009, 19:07:22 · Upravil/a: GeneralDv
„Na řádku 31 je to:
elseif(mysql_num_rows($sql)==1){“ Takže je chyba v SQL dotazu select * from uzivatele where nick='$nick' Nemáš v něm náhodou jinak pojmenovanej sloupec / tabulku ? |
||
johnl Profil |
#6 · Zasláno: 23. 7. 2009, 19:21:44
Taps
GeneralDv Děkuji... ;-) |
||
Časová prodleva: 15 let
|
0