Check of naam in SQL staat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Willem-Jan

Willem-Jan

25/05/2007 20:41:00
Quote Anchor link
Hey iedereen,

Ik ben bezig met een login systeem, en ik wil nu kijken of de naam in SQL staat.

Stel je voor, er staat in de database een gebruikersnaam 'Pietje'. Nu wil ik in een invoerveldje checken of Pietje bestaat. Bestaat Pietje, dan gaat hij door, bestaat hij niet, zet hij een fout in de array $error.

Ik heb dus een tabel, met een aantal rijen. Pietje staat met een aantal andere dingen in een rij. Het veld waar Pietje instaat heet 'gebruikersnaam'.

Goed, ik zet eerst alles in $line:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
?>


Dus nu kan ik een echo $line['gebruikersnaam'] doen. Ik check op deze manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
elseif ($_POST['gebruikersnaam'] != $line['gebruikersnaam']) {
    $error[gebruikersnaam] = 'De gebruikersnaam bestaat niet.';
}

?>


Alleen als ik nu in het invoerveld Pietje invoer, dan zegt hij nog steeds dat hij niet bestaat. Weet iemand hoe dit komt?

Alvast bedankt! :)
Gewijzigd op 01/01/1970 01:00:00 door Willem-Jan
 
PHP hulp

PHP hulp

26/12/2024 13:50:12
 
Jesper Diovo

Jesper Diovo

25/05/2007 20:50:00
Quote Anchor link
Submit je nadat je de naam hebt ingevuld?

In dat geval kan je doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
$sql
= mysql_query("SELECT gebruikersnaam FROM tabel WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
if(mysql_num_rows($sql) >= 1)
{

// bestaat
}else{
// bestaat niet
}
?>


Voor tabel moet je natuurlijk even je eigen tabel invullen, en de $_POST moet natuurlijk de naam van het veld hebben waar je de gebruikersnaam invult. :)
 
Willem-Jan

Willem-Jan

25/05/2007 21:07:00
Quote Anchor link
Djemo schreef op 25.05.2007 20:50:
Submit je nadat je de naam hebt ingevuld?

In dat geval kan je doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
$sql
= mysql_query("SELECT gebruikersnaam FROM tabel WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
if(mysql_num_rows($sql) >= 1)
{

// bestaat
}else{
// bestaat niet
}
?>


Voor tabel moet je natuurlijk even je eigen tabel invullen, en de $_POST moet natuurlijk de naam van het veld hebben waar je de gebruikersnaam invult. :)

Soper bedankt, dit werkt perfect!
 
Willem-Jan

Willem-Jan

25/05/2007 21:55:00
Quote Anchor link
Nu het volgende probleem:

Ik creër $line nog steeds zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
?>


Maar als ik nu dit doe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (sha1($_POST['wachtwoord']) != $line['wachtwoord']) {
    $error[wachtwoord] = 'Je hebt het verkeerde wachtwoord ingevuld';
}

?>


Dan werkt dat helemaal niet. Voer ik het goede wachtwoord in, blijft hij 'em verkeerd vinden. Wat doe ik verkeerd?
 
Raymond ---

Raymond ---

25/05/2007 22:41:00
Quote Anchor link
Staat $line['wachtwoord'] ook als sha1 in de DB? Beide variabelen moeten namelijk dezelfde waarde bevatten, en dus ook de zelfde sha1 key.
 
Willem-Jan

Willem-Jan

26/05/2007 11:01:00
Quote Anchor link
Raymond schreef op 25.05.2007 22:41:
Staat $line['wachtwoord'] ook als sha1 in de DB? Beide variabelen moeten namelijk dezelfde waarde bevatten, en dus ook de zelfde sha1 key.

Dat klopt, maar ik merk nu dat $line gewoon leeg is. Ik weet niet waardoor het komt, maar kan iemand iets zien wat verkeerd is aan deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$query
= "SELECT * FROM ledensysteem WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
?>
 



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.