Elikkä löysin netistä kivan php rekisteröinti skriptin joka käyttää MySQL:llä mutta vaikka skripti muuten toimii hyvin se ei tarkista jos saman nimistä käyttäjää on jo olemassa. Voiko joku kerto mitä lisään skriptiin että se tarkistaa onko käyttäjää olemassa.
Toivottavasti muokkaus tulee tuohon koodipätkään
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <?php ob_start(); include ('config.php'); if (empty($username)) { die ("Anna käyttäjätunnus!"); } if (empty($password)) { die ("Anna salasana!"); } if (empty($email)) { die ("Anna sähköpostiosoite!"); } else{ $id=substr(md5(time()),0,90); $conn = mysql_connect("$db_host", "$db_user", "$db_pass") or die("Failed to connect to mysql server"); mysql_select_db("$db_name", $conn); $result= MYSQL_QUERY("INSERT INTO an_members (id, username, email, password, validated)". "VALUES ('$id', '$username', '$email', '$password', '0')"); echo "Käyttäjätunnuksesi ja salasanasi on lähetetty sinulle osoitteeseen $email. <br>Paina linkkiä sähköpostissa aktivoidaksesi tunnuksesi."; mail("$webmaster", "$username has signed up", "$username has signed up with email $email and password $password", "From: $webmaster"); mail("$email", "Rekisteröitymin $domain".":iin", "Tervetuloa $username!! Olet rekisteröitynyt seuraavilla tiedoilla: Käyttäjätunnus: $username Salasana: $password Sähköposti: $email ID: $id Aktivoi tunnuksesi manuaalisesti antamalla ID-tunnuksesi: $root/validate.php Voit myös aktivoida tunnuksesi automaattisesti painamalla alla olevaa linkkiä: $root/validate.php?id=$id Ystävällisin Terveisin $domain Kiitos antidolle http://www.antido.com", "From: $webmaster"); } echo "<br>"; if ($include_menu == 1){ include ('menu.php'); } else{} ob_end_flush(); ?> </font>
Seuraavalla koodilla saat ongittua tietoosi, kuinka monta tietyn nimistä tunnusta tietokannassa on valmiina.
$maara = mysql_result(mysql_query("SELECT COUNT(*) FROM an_members WHERE username = '$username'"), 0);
Sijoita tämä kysely ennen uuden käyttäjän lisäämistä ja tarkista $maara-muuttujan arvo. Jos luku on nollasta eriävä, käyttäjänimi on jo tietokannassa ja rekisteröinti täytyy keskeyttää.
Selvä. Täytyy kokeilla :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.