kijken of gebruiker bestaat

Status
Niet open voor verdere reacties.

helper66

Gebruiker
Lid geworden
23 sep 2013
Berichten
32
hallo

ik heb nu deze code om een account toe te voegen in mijn database:
PHP:
$username=$_POST["user"];
$password=$_POST["pass"];
$emailid=$_POST["email"];
$itemid=$_POST["items"];
$moneynumb=$_POST["geld"];
if($_GET["key"] == 'testcode'){

require_once 'forum/loaddb.php'; 

$sql = "INSERT INTO userdata
VALUES('$username','$password','$emailid','$moneynumb','$itemid')";

if(!$res = mysql_query($sql))
{
echo 'error: ';
echo mysql_error();
} 
}
maar ik wil nu dus dat hij eerst kijkt of de gebruiker al bestaat.
weet iemand hoe?


thanks
 
Door eerst in de database een record op te vragen ;)

Je zult dus eerst een SELECT-query uit moeten voeren en aan de hand van het resultaat daarvan doe je de INSERT.
 
Deze website heet "Helpmij" niet "Geefmij" ;)

Wat eigen initiatief is dus wel gewenst.

Als je bovenstaande code hebt kunnen schrijven dan weet je ook wel hoe je iets uit de database op kunt vragen nietwaar?
Weet je dat niet dan is het zaak dat je daar naar gaat zoeken.

Een account heeft een unieke waarde die je wilt controleren, het veld dat die waarde bevat gebruik je voor je WHERE
 
Als ik dat probeer en de gebruiker bestat niet geeft hij een error.
 
Hoe ziet je code er uit en wat is de error?
 
mijn code heb ik verandert in:
PHP:
<?php
echo $do_user_check;
$do_user_check = 0;
$username=$_POST["user"];
$password=$_POST["pass"];

require_once 'forum/loaddb.php'; 

$user_check = mysql_query("SELECT username FROM userdata WHERE username='$username' AND password='$password'");
$do_user_check = mysql_num_rows($user_check);
echo $do_user_check;

if($do_user_check == 0){

//bestaat niet



}
else
{
// bestaat wel



}

?>

met user check
maar wat ik ook intiep dit blijft in de var 2 zetten.
 
Laatst bewerkt:
met user check
maar wat ik ook intiep dit blijft in de var 2 zetten.
Wat bedoel je hier mee?


Heb je code iets verbeterd:
PHP:
<?php
//echo $do_user_check; 
$do_user_check = 0;
$username=$_POST["user"];
$password=$_POST["pass"];
 
require_once 'forum/loaddb.php'; 
 
$user_check = mysql_query("SELECT username FROM userdata WHERE username='$username'");// je wil alleen checken op de gebruikersnaam neem ik aan
$do_user_check = mysql_num_rows($user_check);
echo $do_user_check;
 
if($do_user_check == 0){
 
//bestaat niet
 
 
 
}
else
{
// bestaat wel
 
 
 
}
 
?>
 
Dat wat ik als gebruikersnaam en wachtwoord ook intiep er altijd het nummer 2 in de var $do user check staat.
En ik wil weten of de ingevulde username en wachtwoord het zelfde is zodat de gebruiker inlogt.
En dat hij het zegt als hij niet bestaat.
En dan niet dat er een mysql error in de pagina staat.
 
Laatst bewerkt:
Laat ik op voorhand zeggen dat het gebruik van mysql_*-functies afgeraden wordt, gebruik daarvoor in de plaats mysqli_*-functies
Verder hoop ik voor jou (en je gebruikers) dat je de wachtwoord geëncodeerd in de database opslaat.

Dat betekent dat je eerst de input vanuit het formulier moet encoderen zodat je die string kunt gebruiken voor je vergelijking. Ik ga er hieronder vanuit dat je dat bij de declaratie van $password hebt gedaan (daarom ook geen mysql_real_escape_string)

Het is dus aan te raden je script daarop aan te passen.
PHP:
// Gebruiker opvragen in de database
$query = mysql_query("SELECT username, password FROM userdata WHERE username = '". mysql_real_escape_string($username) ."'");
$result = mysql_result($query);
if(!$result) {
    echo 'Er is een fout opgetreden! MySQL zegt: '. mysql_error();
} else {
    $row = mysql_fetch_assoc($result);
    // Inhoud van $row tonen, als de username gevonden is dan zal dat een array("username" => "waarde", "password" => "waarde") zijn
    var_dump($row);
    if($row['password'] === $password) {
        echo 'Gebruikersnaam en wachtwoord kloppen';
    } else {
        echo 'Gebruikersnaam gevonden maar verkeerde wachtwoord';
    }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan