Wat doet mysql_nuw_rows in deze code?
Ik snap wel dat het iets te maken heeft met het email die hij ook bij $query pakt.
Kan iemand het me uitleggen?
Code (php)
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
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
<?php
include "dbconfig.php";
if(isset($_POST['registreren']))
{
$email = $_POST['email'];
$wachtwoord = $_POST['wachtwoord'];
$query = "SELECT * FROM gebruikers WHERE email='$email'";
$result = mysql_query($query, $connect)
or die(mysql_error());
if(mysql_num_rows($result) > 0)
{
$tekst = "Dit e-mailadres bestaat al.<br />
<a href=registreren.php>Opnieuw registreren</a>" ;
}
else
{
$query = "INSERT INTO gebruikers (email, wachtwoord)
VALUES ($email, $wachtwoord)";
$result = mysql_query($query)
or die(mysql_error());
$tekst = "Bedankt voor uw aanmelding. <br />
Je kunt nu <a href=inlog.php>hier</a> inloggen.";
}
die ($tekst);
}
?>
include "dbconfig.php";
if(isset($_POST['registreren']))
{
$email = $_POST['email'];
$wachtwoord = $_POST['wachtwoord'];
$query = "SELECT * FROM gebruikers WHERE email='$email'";
$result = mysql_query($query, $connect)
or die(mysql_error());
if(mysql_num_rows($result) > 0)
{
$tekst = "Dit e-mailadres bestaat al.<br />
<a href=registreren.php>Opnieuw registreren</a>" ;
}
else
{
$query = "INSERT INTO gebruikers (email, wachtwoord)
VALUES ($email, $wachtwoord)";
$result = mysql_query($query)
or die(mysql_error());
$tekst = "Bedankt voor uw aanmelding. <br />
Je kunt nu <a href=inlog.php>hier</a> inloggen.";
}
die ($tekst);
}
?>
Groet jerry
- checken of er gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Wachtwoord is niet gecodeert
- or die is geen foutafhandeling
voor info over mysql_num_rows kan je naar de documentatie gaan.
Gewijzigd op 02/11/2011 12:47:19 door Jasper DS
En waarom die die() op het eind? Als ik iets goeds doe, moet een mens dan ook dood?
Gewijzigd op 02/11/2011 12:47:07 door - Ariën -
Al de 'oude fouten' uit je vorige posts zitten hier weer in. Lees je vorige posts nog eens door. Script is ook nog eens lek => sql-injection.
Het is inderdaad nog niet uitgebreid, dus laat de sql-injection en de gecodeerde wachtwoorden maar even weg.
Ikzelf zou inderdaad die $tekst niet op deze manier doen, maar op de manier met een array, en de array later uitlezen. Toch?
De oude fouten zijn niet van mij. Ik zou namelijk eerst kijken of het gepost is, en dan pas variablen gaan maken etc.
Maar even op mijn vraag in te komen, en dan antwoord te geven op @aar.
Als hij dan 0 is, dan heeft hij toch nog geen inhoud, dus bestaat het email adres niet, dus dan geeft hij toch een error aan omdat de $result niet gevonden kan worden?
Waar jij het waarschijnlijk mee verwart is mysql_fetch_assoc aanroepen op het resultaat. Dat zal ook zonder fouten gaan, behalve dat je niet een array met de velden terugkrijgt, maar false, omdat het het laatste resultaat is. Als je daar niet rekening mee houdt, dan krijg je inderdaad foutmeldingen.
edit: technischere uitleg: mysql_query geeft een verwijzing naar de plek waar de resultaten staan terug, maar dus niet de resultaten zelf. Je kan dan met mysql_num_rows kijken hoeveel resultaten er zijn, en met mysql_fetch_assoc kan je een voor een de resultaten ophalen en omzetten in een PHP array.
Gewijzigd op 02/11/2011 23:03:53 door Jelmer -
Duidelijke uitleg, bedankt!