Nagaan of e-mailadres in database zit...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Cornelis

Sander Cornelis

30/07/2009 15:17:00
Quote Anchor link
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!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?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>
Gewijzigd op 01/01/1970 01:00:00 door Sander Cornelis
 
PHP hulp

PHP hulp

26/11/2024 14:53:59
 
- SanThe -

- SanThe -

30/07/2009 15:25:00
Quote Anchor link
Post alléén relevante code en geen compleet script.

Je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php en ?>
Gebruik je Afbeelding knop om dit te doen.


SanThe.
 
Mr.Ark

Mr.Ark

30/07/2009 15:26:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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.
 
Sander Cornelis

Sander Cornelis

30/07/2009 16:35:00
Quote Anchor link
@ 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!
 
Jan Koehoorn

Jan Koehoorn

30/07/2009 16:37:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Sander Cornelis

Sander Cornelis

30/07/2009 16:39:00
Quote Anchor link
@ Jan Koehoorn: Bedankt voor je antwoord alvast! Hoe ziet mijn code er dan uit, ik heb dit nooit gezien... Bedankt!
 
Erik Rijk

Erik Rijk

30/07/2009 16:47:00
Quote Anchor link
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: mysql_errno
 
Sander Cornelis

Sander Cornelis

30/07/2009 16:51:00
Quote Anchor link
@ 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!
 
Mr.Ark

Mr.Ark

30/07/2009 17:03:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?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.
 
Erik Rijk

Erik Rijk

30/07/2009 17:06:00
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.