fout in script

Status
Niet open voor verdere reacties.

helper66

Gebruiker
Lid geworden
23 sep 2013
Berichten
32
hallo

ik heb een php script dat de id van een gebruiker moet ophaalen:
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 id FROM userdata WHERE username='$username' AND password='$password'");
$do_user_check = mysql_num_rows($user_check);
echo $do_user_check;



?>

maar het returnt altijd 2.
wat ik ook intiep.

kan iemand mij helpen?

thanks
 
Probeer het eens met deze query :

Code:
$user_check = mysql_query('SELECT id FROM userdata WHERE username="'.$username.'" AND password="'.$password.'" ');

Binnen een query horen strings tussen dubbelquotes te staan.
 
nu krijg ik deze error:
Code:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/u858863882/public_html/login.php on line 13

en mijn code is nu:
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 id FROM userdata WHERE username='$username' AND password='$password'");
$user_check = mysql_query('SELECT id FROM userdata WHERE username="'.$username.'" AND password="'.$password.'" ');

$do_user_check = mysql_num_rows($user_check);
echo $do_user_check;



?>


de bedoeling van het script dat ik heb gescreven is het id van de gebruiker weergeven.
 
Laatst bewerkt:
nu zegt hij:
Code:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/u858863882/public_html/login.php on line 7

met als php code:
PHP:
<?php
require_once 'forum/loaddb.php'; 
$do_user_check = 0;
$username=$_POST["user"];
$password=$_POST["pass"];
 
$user_check = mysql_query("SELECT id FROM userdata WHERE username="'.$username.'" AND password="'.$password.'" ");
 
$do_user_check = mysql_num_rows($user_check);
echo $do_user_check;
?>
 
Heb je al gekeken of de inhoud van de $_POST array is wat je verwacht dat het is ?

Overigens, check eerst die loaddb.php, gezien de foutmelding zie ik het probleem daar eerder in zitten.
 
Laatst bewerkt:
Verder klopt de regel select nu niet meer, dit zou dit moeten zijn:
PHP:
$user_check = mysql_query("SELECT id FROM userdata WHERE username="'.$username.'" AND password="'.$password.'" ");

Geen idee waar je dit vandaan haalt maar je kunt zelfs aan de kleur van de variabelen zien dat dit niet meer klopt en dat het eerder wel klopte.
 
dit is de inhoud van loaddb.php
PHP:
<?php
$db = array (
    'host' => 'localhost',
    'user' => 'x_geheim_x',
    'pass' => 'x_geheim_x',
    'dbname' => 'x_geheim_x'
);

if(!mysql_connect($db['host'], $db['user'], $db['pass']))
{
    trigger_error('Fout bij verbinden: '.mysql_error());
}
elseif(!mysql_select_db($db['dbname']))
{
    trigger_error('Fout bij selecteren database: '.mysql_error());
}
else
{
    $sql = "SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'";
    if(!mysql_query($sql))
    {
        trigger_error('MySQL in ANSI niet mogelijk');
    }
}
?>
 
Mijn excuses helper66, en bedankt aan gast0158. Inderdaad de selectregel klopt niet na mijn toevoeging. Had even verkeerd gekeken.

Ik zie geen fouten in de loaddb file, misschien gast0158 wel maar ik zie ook geen fouten verder...
 
Laatst bewerkt:
Heb je hier niet dezelfde vraag gesteld? :rolleyes:
 
Laatst bewerkt:
Mag ik er ook nog even op wijzen dat met de code hierboven je heel erg gevoelig bent voor SQL injection?

Ik zou toch echt naar prepared statements i.c.m. PDO gaan kijken, dan ben je een stuk veiliger dan dat je nu bent. Iemand hoeft maar iets 'fouts' in je POST te drukken en je hele database ligt op straat of is leeg.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan