Hi, ik ben bezig met een website bouwen en ik ben een CMS aan het bouwen en de db connect is goed maar hij zegt telkens weer dat de gegevens fout zijn terwijl ik ze uit de db kopieër, kan iemand mij helpen?
Dit is mijn code:

<?php

$iq = "SELECT*FROM Tabelname WHERE name='".$_POST['name']."' AND password='".$_POST['password']."' LIMIT 1";
$q = mysql_query($iq);

if (mysql_num_rows($q) == 1) {
$_SESSION['login']=$_POST['name'];
echo "<script> window.location = 'Website locatie(is goed)'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}

?>
Waar controleer je of $_POST['name'] en $_POST['password'] wel bestaan?

Volgens mij zou je code al minimaal dit moeten hebben:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

$con = mysqli_connect('host','naam','ww','DB_Naam');

if (mysqli_errno($con)) {
echo mysqli_error($con);
}

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$name = mysqli_real_escape_string($con, $_POST['name']);
$password = mysqli_real_escape_string($con, $_POST['password']);

$query = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$result = mysqli_query($con, $query);


if (!$result)) {
trigger_error('Er is een fout opgetreden: <BR />' . mysqli_error());
}

if (mysqli_num_rows($result) == 1) {
$_SESSION['login'] = $_POST['name'];
header('Location: pannekoek.php');
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
}
Zo is het nog beter....

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

$con = mysqli_connect('host','naam','ww','DB_Naam');
    
if (mysqli_errno($con)) {
    echo mysqli_error($con);
}

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $name = mysqli_real_escape_string($con, $_POST['name']);
    $password = mysqli_real_escape_string($con, $_POST['password']);
    
    $query = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
    $result = mysqli_query($con, $query);
    
    
    if (!$result)) {
        trigger_error('Er is een fout opgetreden: <BR />' . mysqli_error());
    } else {
	if (mysqli_num_rows($result) == 1) {
        	$_SESSION['login'] = $_POST['name'];
    		header('Location: pannekoek.php');
    	} else {
    		echo "Fout wachtwoord of gebruikersnaam";
    	}
    }
    
} 
?>


Verder is het nog niet gereed voor publicatie, want je wachtwoorden moet je ook encrypten.
In platte tekst opslaan is een absolute NO-GO.
jeps en dan hoef je $password niet meer te escapen
<?php
$name = mysqli_real_escape_string($con, $_POST['name']);
$password = sha1($_POST['password']);
?>

Maar dan moet paswoord ook wel met sha1 opgeslagen zijn in de database.
$name en $password zijn overbodig, die kan je ook rechtstreeks in de query zetten.

Tevens is het netter om eerste de Gebruikersnaam uit de Database te halen en daarna in een sessie te zetten in verband met hoofdletters.
Ik controleer het nergens omdat dit de functie is het wordt via een andere form opgeroepen vandaar, maar dat maakt dacht ik geen verschil met de code


[size=xsmall]Toevoeging op 18/07/2014 11:26:27:[/size]

Ik controleer het nergens omdat dit de functie is het wordt via een andere form opgeroepen vandaar, maar dat maakt dacht ik geen verschil met de code
Maar de vraag is: Werkt het nu wel beter? ZO nee, wat gaat er fout, wat gebeurt er, wat doe je precies?

Reageren