Autor Zpráva
johnl
Profil
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
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
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
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
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
Taps
GeneralDv
Děkuji... ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: