Hey allen ik ben begonnen met php en ben al aantal maanden bezig met het basis leren.
Toen heb ik mezelf een opdracht gegeven om een simpel inlog + registratie te maken en dat telkens vernieuwen met beveiliging etc etc. Ik heb een probleem. Als ik registreer slaat hij de gegevens op maar als ik wil inloggen lukt dat niet


hier zitten al mijn funcies



<?php

session_start();

function Dbc(){  
$db_host = "localhost";
$db_username = "root";
$db_password = "";
$db_name = "testinlog";

$Connection = mysqli_connect($db_host, $db_username, $db_password,$db_name) or die ("Coudnt connect to the database");

mysql_select_db($database, $connection);

return $Connection;
} 


function loginControle($username, $password)
{
$connectie =  Dbc();

$username = mysqli_real_escape_string($connectie, $username);
$password = mysqli_real_escape_string($connectie, $password);

$query = "SELECT * from login where gebruikersnaam='".$username."' AND wachtwoord='".$password."'";
$result = mysqli_query($connectie, $query);
$rows = mysqli_num_rows($result);

if ($rows == 1) {
$_SESSION['IngelogdUser'] = true;
$_SESSION['IngelogdUserName']= $username;

header("location: geluktinlog.php");
} else {
header("location: inloggenfout.php");

}
mysqli_free_result($result);
mysqli_close($connectie);
}

function registreren()
{
$con = Dbc();

$gebruikersnaam = mysqli_real_escape_string($con, $_POST['gebruikersnaam']);
$wachtwoord = mysqli_real_escape_string($con, $_POST['wachtwoord']);

$sql="INSERT INTO login (gebruikersnaam, wachtwoord)
VALUES ('$gebruikersnaam','$wachtwoord')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
if(isset($_POST['versturen'])){
    
    header("Location: geluktregis.php");
    exit;
    }

mysqli_close($con);
}





dit is gewoon simpel form

<html>

    
<head>
<title></title>
</head>
<body>
    <div>
        <form action="controleren.php">
            
            <label> gebruikersnaam : <input type="text" name="gebruikersnaam" /> </label>  <br><br>
            <label> wachtwoord : <input type="password" name="wachtwoord" /> </label>  <br><br>
            <input type="Submit"value="verzenden" name="verzenden" />
            <a href="registreren.php">registereren</a>
            
            
        </form>
    </div>
   
</body>
</html>







<?php
include("function.php");
loginControle($_POST['gebruikersnaam'], $_POST['wachtwoord']);
?>



ik heb express om te kijken of het inlog lukt of niet verwezen naar een page genaamd inloggenfout

ik snap niet wat ik fout heb gedaan kan iemand mij erbij helpen ?
Kijk eens naar de gegevens in je database, mogelijk staan hier gegevens (gebruikersnaam-wachtwoord paren) dubbel in. In je controle controleer je of er maar één resultaat is, maar inmiddels staan er misschien gegevens dubbel in je database omdat je bij het registreren niet controleert of een gebruikersnaam uniek is.

Zet na een header('Location: ...'); (let ook op de hoofdletter en de spatie na de dubbele punt) altijd een exit. Officieel moet hier eigenlijk ook een volledige URL in staan.

Zet verder het melden en weergeven van fouten aan en druk eens wat informatie uit formulier / database af naar je scherm. Dat vertelt je mogelijk meer.
klopt omdat ik stap voor stap werk ga ik de unieke gedeelte nadat ik kan inloggen doen en alle andere maar alles staat nu maar 1 x erop heb aantal dingen zoals where veranderd in WHERE maar krijg zelfde probleem

in feite moet het werken toch ???
Kun je precies (stap voor stap) beschrijven wat je doet, en wat voor ongewenst effect dit uiteindelijk heeft?

EDIT: misschien is je sessie-directory niet schrijfbaar? Zet je foutenrapportage eens aan.

Voeg in een include die in alle code wordt toegevoegd de volgende code eens toe:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
1 registreren
2 dit word opgelsagen in het databasetabel genaamd login ik heb nu maar 3 rijen id gebruikersnaam en wachtwoord meer niet maar hij slaat wel op
3 daarna wil ik dat wanneer ik inlog gegevens van database haalt en kijkt of het klopt of niet en daarna inlogd en verwijst naar page inloggelukt of als het niet lukt naar page inloggenfout alleen het probleem is als ik inlog moet ik naar page inloggelukt wat niet gebeurd

[size=xsmall]Toevoeging op 24/02/2015 14:08:52:[/size]

heb dat zowel


<?php

 error_reporting(E_ALL);
 ini_set('display_errors','On');

?>



maar tevergeefs :(
Als je niet doorgestuurd wordt naar geluktinlog.php dan houdt dit in dat $rows ongelijk aan 1 was.

Een nadere inspectie van de bijbehorende query lijkt mij dan gewenst.

Ah, het begint te dagen.

Voeg eens method="post" toe aan je loginformulier. Als het goed is wordt tot nu toe je gebruikersnaam en wachtwoord meegegeven in je adresbalk. EDIT: en dat zie je dus niet omdat je direct wordt doorgestuurd.
Dank je wel Thomas van den Heuvel hoe kan ik zow een belangrijke informatie vergeten zijn

:(

het is opgelost bedankt voor je snelle reactie

Reageren