Hallo iedereen,

Ik ben bezig met mijn stageopdracht en ben tot zover nog bezig met het login script. Alles werkt tot zover alleen moet er nog een functie in die voorkomt dat 1 gebruikersnaam 2x wordt geregistreerd in de database.

Het ingeven van de gegevens gebeurt op de pagina
new.php

vervolgens worden de gegevens gecontroleerd of alles in ingevuld maar nog niet of de gebruikersnaam al bestaat in de database.


newuser.php

if($_SERVER['REQUEST_METHOD'] == 'POST') {									/* Controleer of alle velden ingevuld zijn */
						if(empty($_POST['name_first']))
							echo 'Er is geen gebruikersnaam opgegeven.';						/* Melding bij geen invoer */
						elseif(empty($_POST['name_last']))
							echo 'Er is geen achternaam opgegeven.';
						elseif(empty($_POST['functie']))
							echo 'Er is geen functie opgegeven.';
						elseif(empty($_POST['pass']))
							echo 'Er is geen wachtwoord opgegeven.';
						elseif(empty($_POST['username']))
							echo 'Er is geen gebruikersnaam opgegeven.';		
						else {	// check dubbele registratie
						
				?>
							
							<form action="add.php" method="post">																											<!-- Het registratieformulier -->
								<p>Voornaam: <br/>		
								<input type="text" name="name_first" readonly="readonly" value="<?=$_POST['name_first'];?>" style="background-color: none; border:none;"/>
								<p>Achternaam: <br/> 	
								<input type="text" name="name_last" readonly="readonly" value="<?=$_POST['name_last'];?>" style="background-color: none; border:none;"/>
								<p>Functie: <br/>		
								<input type="text" name="functie" readonly="readonly" value="<?=$_POST['functie'];?>" style="background-color: none; border:none;"/>
								<p>Wachtwoord: <br/>	
								<input type="password" name="pass" readonly="readonly" value="<?=$_POST['pass'];?>" style="background-color: none; border:none;"/>
								<p>Gebruikersnaam:<br/>	
								<input type="text" name="username" readonly="readonly" value="<?=$_POST['username'];?>" style="background-color: none; border:none;"/>
								<p>Rechten:<br/>
								<input type="select" name="level" readonly="readonly" value="<?=$_POST['level'];?>" style="background-color: none; border:none;"/>		<br/>	
								<input type="submit" value="Verstuur"/>				 																						<!-- Verzenden gegevens -->
							</form>	


De verwerking van de registratie vind plaats in dit script.
add.php

			<?php 
				
				$name_first = 	$_POST['name_first'];	
				$name_last =  	$_POST['name_last'];	
				$functie = 		$_POST['functie'];		
				$pass = 		$_POST['pass'];		
				$username = 	$_POST['username'];	
				$level = 		$_POST['level'];	
				$pass1 = 		md5($pass);  													/* Converteer Password naar md5hash */
								
				$query2= mysql_query("INSERT INTO login (user_first,user_last,user_func,user_pass,user_login,user_level) VALUES ('$name_first','$name_last','$functie','$pass1','$username','$level')");
			?>	<br/>


Wie kan mij op weg helpen met het controleren van de gebruikersnaam?
Alvast bedankt iedereen
Dennis schreef op 04.03.2009 16:41
Doe zoiets :


$sql = "SELECT id FROM login WHERE name='".mysql_real_escape_string($_POST['name'])."'";
$query = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($query);
	  
if($count >= "1"){
echo "This username is already taken.";
}else{

Jij leest echt niet hé?
Karl schreef op 27.02.2009 15:54
SQL Beginnershandleiding

pgFrank schreef op 27.02.2009 18:06
Gepruts met een SELECT is leuk en aardig voor wat extra werk, het zal je niet beschermen tegen dubbele records, dat is technisch niet mogelijk.

SanThe schreef op 03.03.2009 17:30
Gewoon niks aannemen van wat andere, meer ervaren, mensen zeggen is blijkbaar voor jou de meest [color=red]UNIQUE[/color] (hint) methode.
nee had er geen zin in karl. :)
vingers gingen sneller dan de ogen blijkt

Reageren