Ik heb een registratiescriptje (in PHP) geschreven. Ik zou nu graag voordat eerst het emailadres controleren of dit al in de database staat of niet. Indien het aanwezig is in de database, dan mag de registratie niet gebeuren. Elke e-mailadres mag namelijk maar 1 keer voorkomen.

Hieronder vind je mijn script... Wie kan helpen?
Alvast bedankt!


<?php include ("connectie.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Registratie</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
if (isset($_POST['btnControleer']))
{	$opslaan="OK";
if (empty($_POST['txtVoornaam'])) {$leegVoornaam = "<- ontbreekt!";$opslaan="";} else {$leegVoornaam="";}
if (empty($_POST['txtAchternaam'])) {$leegAchternaam = "<- ontbreekt!"; $opslaan="";} else {$leegAchternaam="";}
if (empty($_POST['txtGebruikersnaam'])) {$leegGebruikersnaam = "<- ontbreekt!";$opslaan="";} else {$leegGebruikersnaam="";}
if (empty($_POST['txtWw1'])) {$leegWw1 = "<- ontbreekt!";$opslaan="";} else {$leegWw1="";}
if (empty($_POST['txtWw2'])) {$leegWw2 = "<- ontbreekt!";$opslaan="";} else {$leegWw2="";}
if (empty($_POST['txtEmail1'])) {$leegEmail1 = "<- ontbreekt!";$opslaan="";} else {$leegEmail1="";}
if (empty($_POST['txtEmail2'])) {$leegEmail2 = "<- ontbreekt!";$opslaan="";} else {$leegEmail2="";}
if ($_POST['txtWw1']<>$_POST['txtWw2']) {$leegWw1 = "<- niet gelijk!";$leegWw2 = "<- niet gelijk!";$opslaan="";}
if ($_POST['txtEmail1']<>$_POST['txtEmail2']) {$leegEmail1 = "<- niet gelijk!";$leegEmail2 = "<- niet gelijk!";$opslaan="";}

if ($opslaan=="OK")
{	$voornaam = $_POST['txtVoornaam'];
	$achternaam = $_POST['txtAchternaam'];
	$gebruikersnaam = $_POST['txtGebruikersnaam'];
	$wachtwoord = $_POST['txtWw1'];
	$email = $_POST['txtEmail1'];
	$functie = "AND";

$sql = "insert into tbllogin (Voornaam,Achternaam,Gebruikersnaam,Wachtwoord, Emailadres, Functie) values ('$voornaam','$achternaam','$gebruikersnaam','$wachtwoord','$email','$functie')";
$result = mysql_query($sql) or die(mysql_error());
//unset($_SESSION['toesteltype']);
echo "Je gegevens werden geregistreerd.<br/><br/>"; }
}
if ($opslaan<>"OK")
{
?>
Om in te loggen heb je een gebruikersnaam en een wachtwoord nodig.<br />
Indien je niet over een gebruikersnaam en een wachtwoord beschikt, kan je je hieronder registreren.<br /><br />
<strong>Registratie</strong><br /><br />
<form id="form1" name="frmControle" method="post" action="">
<table border="0" cellspacing="0" cellpadding="0">
<tr><td width="130">Voornaam*</td>
	<td><input name="txtVoornaam" type="text" id="txtVoornaam" value="<?php echo $_POST['txtVoornaam']; ?>" /></td>
    <td class="bericht"><?php echo $leegVoornaam ?></td></tr>
<tr><td>Achternaam*</td>
	<td><input name="txtAchternaam" type="text" id="txtAchternaam" value="<?php echo $_POST['txtAchternaam']; ?>" /></td>
    <td class="bericht"><?php echo $leegAchternaam ?></td></tr>
<tr><td>Gebruikersnaam*</td>
	<td><input name="txtGebruikersnaam" type="text" id="txtGebruikersnaam" value="<?php echo $_POST['txtGebruikersnaam']; ?>" /></td> <td class="bericht"><?php echo $leegGebruikersnaam ?></td></tr>	
<tr><td>Wachtwoord*</td>
    <td><input name="txtWw1" type="text" id="txtWw1" value="<?php echo $_POST['txtWw1']; ?>"/></td>
    <td class="bericht"><?php echo $leegWw1 ?></td></tr>
<tr><td>Herhaal wachtwoord*</td>
	<td><input name="txtWw2" type="text" id="txtWw2" value="<?php echo $_POST['txtWw2']; ?>"/></td>
	<td class="bericht"><?php echo $leegWw2 ?></td></tr> 	
<tr><td>E-mailadres*</td>
    <td><input name="txtEmail1" type="text" id="txtEmail1" value="<?php echo $_POST['txtEmail1']; ?>"/></td>
    <td class="bericht"><?php echo $leegEmail1 ?></td></tr>
<tr><td>Herhaal e-mailadres*</td>
	<td><input name="txtEmail2" type="text" id="txtEmail2" value="<?php echo $_POST['txtEmail2']; ?>"/></td>
	<td class="bericht"><?php echo $leegEmail2 ?></td></tr>   
<tr><td><span class="style1">*verplicht in te vullen</span></td>
    <td colspan="2"><input name="btnControleer" type="submit" id="btnControleer" value="Registreer" /></td>
    <td class="bericht"><?php echo $bericht;?></td></tr>
</table>
</form>
<?php } ?>
</body>
</html>
Post alléén relevante code en geen compleet script.

Je post is nu niet echt leesbaar. Pas je post even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Om php code zet je uiteraard dit:<?php en ?>Gebruik je knop om dit te doen.


SanThe.
<?PHP

$Query = "SELECT email FROM tabel WHERE email = '".mysql_real_escape_string($_POST['emailveld'])."'";

$Result = mysql_query($Query);

if(mysql_num_rows($Result) == 1)
{
/* Email bestaat */
}
else
{
/* Email bestaat niet ga verder met je code */
}

?>

Je voert dus eerst deze query uit, En als die niet bestaat dan ga je verder met inserten.
@ SanThe: Ik heb het aangepast zoals gevraagd. Bedankt alvast!
@ Ark: Bedankt voor je snel antwoord, maar ik weet ook niet echt waar dit in mijn code moet komen te staan. Bedankt alvast!
Je kunt veel beter een UNIQUE CONSTRAINT op het e-mailveld in je database aanbrengen. Dan is het onmogelijk om dubbele waarden in te voeren en krijg je van MySQL een errorcode 1062 terug.
@ Jan Koehoorn: Bedankt voor je antwoord alvast! Hoe ziet mijn code er dan uit, ik heb dit nooit gezien... Bedankt!
Heeft weinig met je code te maken...
Je zal het in de database moeten oplossen specifiek voor dat veld.

In phpmyadmin kan je het heel makkelijk toevoegen, mag je zelf wel uitzoeken trouwens :)

Mocht je geen phpmyadmin hebben, dan kan je een query draaien waardoor dit wordt aangepast.

UNIQUE CONSTRAINT zoals Jan al aangeeft, dit is prima te vinden via google en je leert er ook weer van :)

error code van mysql uitlezen kan je dmv: [php]mysql_errno[/php]
@ Rik Rijk: Ik beschik over phpmyadmin... Bedankt voor je antwoord. Ik heb zelf al gezocht, maar niet direct gevonden, vandaar mijn bericht op dit forum... Op die manier leer ik hier niets bij :-). Bedankt!
<?PHP

/* Kijken of er gepost wordt */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* Veld controle */
/* Als er geen fouten zijn voer je die code die ik gepost had uit */
/* Verder wijst de code die ik had gepost zichzelf wel als je de oranje tekst leest */
}

?>

We gaan natuurlijk niet alles voor je doen, Want daar leer jij niks van.
Sander,

Als je de structure van je tabel bekijkt, dan heb je rechts van de kolommen allerlei icoontjes staan...

Kijk eens wat al die icoontjes doen.

Reageren