controleren of emailadres in de database voorkomt.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hugo B

Hugo B

09/09/2010 01:27:52
Quote Anchor link
Dag beste php experts,

Ik wil heel graag een scriptje waarbij bij registratie van een user wordt gecontroleerd of zijn/haar e-mailadres bij mij bekend is. Dan alleen krijgt de user toegang tot bepaald pagina's op de site.
Ter verduidelijking. een cursist schrijft zich in. e-mail adres komt daardoor in mijn database. Nu wil hij of zij een bepaalde pagina's op de site bekijken maar moet zich dan kenbaar maken of te wel inloggen met het e-mailadres. Bij inloggen moet gekeken worden of wij het e-mailadres kennen.

Ik hoop als leek op een beetje duidelijke uitleg.
Alvast dank
Hugo
 
PHP hulp

PHP hulp

08/05/2024 06:00:13
 
Jelmer -

Jelmer -

09/09/2010 07:02:59
Quote Anchor link
De meest simpele oplossing is om in je database de e-mailadreskolom een UNIQUE INDEX te te geven. Die zorgt er vervolgens voor dat het onmogelijk wordt twee rows met hetzelfde e-mailadres toe te voegen.

Vervolgens kan je bij het registreren controleren of het INSERT-query die alle gegevens van de cursist opslaat controleren of die query wel lukt. Lukt hij niet, dan is er iets mis. Met mysql_errno en deze tabel kan je zien wat de fout is (je kan ook even snel proberen om 2x hetzelfde e-mailadres toe te voegen en kijken welke errorcode je krijgt. ik denk 1022)
 
Hugo B

Hugo B

09/09/2010 14:20:31
Quote Anchor link
Jelmer, dank voor je reactie. Nog even voor de duidelijkheid, en neem me niet kwalijk ik ben de beginner, de bedoeling is dat er gecontroleerd wordt of het e-mailadres in de database voorkomt. alleen dan mogen ze op bepaalde pagina's. Die database met e-mailadressen wordt al eerder door mij zelf gevuld uit de aanmeldgegevens van de cursus. Dus het e-mailadres is bij mij al bekend de gebruiker moet zich aan de hand van zijn e-mailadres identificeren.

groet
Hugo
 
- Dave -

- Dave -

09/09/2010 14:29:58
Quote Anchor link
Een SELECT query uitvoeren en vervolgens kijken hoeveel rows er uitkomen.

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
<?php
// Connect script van jou.
include('dbconnect.php');

// Wel even voor anti sql injection zorgen.
$email = $_POST['email'];

$query = mysql_query("SELECT * FROM emails WHERE email = '$email'");

if(mysql_num_rows($query) == 0)
{

// Email is niet bekend.
}
else
{
// Doorsturen.
}
?>


Zoiets?
Gewijzigd op 09/09/2010 14:31:38 door - Dave -
 
Niels K

Niels K

09/09/2010 14:30:15
Quote Anchor link
Dan is het wat simpeler.

Je kunt gewoon een query maken:

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
<?php
$aQuery
=
"
    SELECT
        email
    FROM
        email
    WHERE
        email = '"
.mysql_real_escape_string( // $_POST variabele? of $_GET etc..). "'
";

// Query uitvoeren
$result = mysql_query($aQuery);

if( !$result ) {
    // Error etc..
}
else {
    // Kijken of er resultaat is
    if( mysql_num_rows( $result ) == 0) {
        // Geen resultaat gevonden
    }
    else {
        // Wel resultaat gevonden
    }
}

?>


Of bedoel je dat niet?

EDIT:
@Dave

- Variabelen uit quotes
- Fouten afhandeling
- SQL injection

Verder kan je gewoon je $_POST in de query stoppen. Hoef je eerst geen aparte variabele voor aan te maken
Gewijzigd op 09/09/2010 14:33:04 door Niels K
 
- Dave -

- Dave -

09/09/2010 14:36:16
Quote Anchor link
Hoeft niet. Kan wel en het staat duidelijker als hij meerdere post data doorgestuurd krijgt.
 
Niels K

Niels K

09/09/2010 14:42:33
Quote Anchor link
Daarom juist?

Anders ben je onnodig veel code aan het genereren voor niets..
 



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.