Nieuw lid |
|
Ik heb een login script gemaakt met php en mysql
maar het werkt maar half. ik zal alles effe uitleggen:
in functions staat de functie db_connect om met de db te connecteren en te checken of je al bent ingelogd
FUNCTIONS.PHP
---------------
<?php
function db_connect()
{
$server = "localhost";
$gebruiker = "username";
$wachtwoord = "***";
$db = "monsters_test";
$connect = mysql_connect($server,$gebruiker,$wachtwoord)
or die ("Kon niet connecteren met de server");
mysql_select_db($db,$connect)
or die ("Kon de database niet selecteren");
}
function check_login()
{
$_SESSION['user'] = $session_user;
db_connect();
$query = 'SELECT * FROM login WHERE user = $session_user"';
$sql = mysql_query($query) or die(mysql_error());
while($record = mysql_fetch_object($sql))
{
if ($record->logged_in == "ja") {
echo"Je bent al ingelogd!";
} else {
echo"Je bent nog niet ingelogd!";
}
}
}
?>
<?php function db_connect() { $server = "localhost"; $gebruiker = "username"; $wachtwoord = "***"; $db = "monsters_test"; or die ("Kon niet connecteren met de server");or die ("Kon de database niet selecteren");} function check_login() { $_SESSION['user'] = $session_user; db_connect(); $query = 'SELECT * FROM login WHERE user = $session_user"'; { if ($record->logged_in == "ja") { echo"Je bent al ingelogd!"; } else { echo"Je bent nog niet ingelogd!"; } } } ?>
dan komt het login formulier...is niet nodig denk ik
hier word de invoer gecontroleerd en de sessies aangemaakt
+ in de tabel word logged_in geupdated naar ja
LOGIN.PHP
----------
<?php
if ($_POST['user'] == "" || $_POST['pass'] == "") {
echo"Eerst het formulier invullen!";
} else {
$dbh=mysql_connect ("localhost", "username", "***") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("monsters_test");
$sql = "SELECT * FROM `login` WHERE `user` = '".$_POST['user']."'"; //alle gebruikers met de ingevoerde username ophalen
$ophalen = mysql_query($sql) or die(mysql_error()); // query uitvoeren
$aantal = mysql_num_rows($ophalen); // aantal records met verstuurd username tellen
if($aantal == 0){
//blijkbaar komt de username niet in de database voor!
echo"<font color=red face=verdana size=1>Fout: ingevoerde gebruikersnaam klopt niet!";
}else{
//username staat in de database, we gaan verder!
while($record = mysql_fetch_object($ophalen)){
$password_db = $record->password;
}
//password nu vergelijken met ingevoerd password
if(md5($password_db) != md5($_POST['password'])){
echo"<font color=red face=verdana size=1>Fout: ingevoerd wachtwoord klopt niet!";
}else{
$sql2 = "UPDATE login SET logged_in='ja'";
$ophalen2 = mysql_query($sql) or die(mysql_error()); // query uitvoeren
while($record = mysql_fetch_object($ophalen2)){
$post_user = $_POST['user'];
}
//sessie opstarten
echo"Je bent succesvol ingelogd. <a href=index.php?id=bev_pagina>ga verder</a>";
$_SESSION['user'] = '$post_user';
$_SESSION['logged_in'] = 'ja';
}
}
}
?>
<?php if ($_POST['user'] == "" || $_POST['pass'] == "") { echo"Eerst het formulier invullen!"; } else { $sql = "SELECT * FROM `login` WHERE `user` = '".$_POST['user']."'"; //alle gebruikers met de ingevoerde username ophalen $aantal = mysql_num_rows($ophalen); // aantal records met verstuurd username tellen if($aantal == 0){ //blijkbaar komt de username niet in de database voor! echo"<font color=red face=verdana size=1>Fout: ingevoerde gebruikersnaam klopt niet!"; }else{ //username staat in de database, we gaan verder! $password_db = $record->password; } //password nu vergelijken met ingevoerd password if(md5($password_db) != md5($_POST['password'])){ echo"<font color=red face=verdana size=1>Fout: ingevoerd wachtwoord klopt niet!"; }else{ $sql2 = "UPDATE login SET logged_in='ja'"; $post_user = $_POST['user']; } //sessie opstarten echo"Je bent succesvol ingelogd. <a href=index.php?id=bev_pagina>ga verder</a>"; $_SESSION['user'] = '$post_user'; $_SESSION['logged_in'] = 'ja'; } } } ?>
dit gaat ook zonder probs, maar als ik dan op ga verder klik
staat er helemaal geen text die er zou moeten staan:
BEV_PAGINA.PHP
------------------
<?php
include"functions.php";
check_login();
?>
Er zou dan 'Je bent al ingelogd!' moeten staan
maar het is blank :S
hopelijk kan iemand me helpen
|