login
webbiexl - 02/05/2005 17:57
PHP interesse
hey ik heb dat ledensysteem van murfy, en dat ben ik ontzettend aan het uitbreiden maar nu heb ik dus last van dat als ik heb ingelogd daarna nog een keer moet inloggen voordat daadwerkelijk ben ingelogd, ik heb aan de code bijna nix veranderd, hetgeen wat ik veranderd heb heeft geen effect hierop want hij heeft t wel goed gedaan, waar kan dit aan liggen????
12 antwoorden
Gesponsorde links
Stijn - 02/05/2005 18:03
PHP expert
mag ik eens de code zien....
webbiexl - 02/05/2005 18:08
PHP interesse
tuurlijk
<?php
include('config.php');
if($cfg['cronjobs'] != 1) { // Geen cronjobs ondersteund...
include('cronjobs.php');
}
if(isset($_SESSION['gebruiker'])) {
header("Location: ingelogged.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35" <?php if(isset($_GET['gebruikersnaam'])) { ?>value="<?=$_GET['gebruikersnaam']?>"<?php } ?>></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="<?php echo $_POST['poging']+1; ?>"><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if(isset($_POST['Submit'])) {
if($_POST['poging'] == $cfg['poging']+1) { // Reeds 3 pogingen achter de rug?
header("Location: wachtwoord.php");
}
$checkg = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'"),0);
$checkp = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."' AND wachtwoord='".md5($_POST['wachtwoord'])."'"),0);
mysql_query("UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_SESSION['gebruiker'] . "'");
if($_POST['gebruikersnaam'] == "" || $_POST['wachtwoord'] == "") {
$error[] = 'Vul alle velden in!';
}
if($checkg == 0 && $_POST['gebruikersnaam'] != "") {
$error[] = 'De ingevoerde gebruikersnaam is niet geregistreerd.';
}
if($_POST['wachtwoord'] != "" && $_POST['gebruikersnaam'] != "" && $checkp == 0) {
$error[] = 'Het ingevoerde wachtwoord is niet correct.';
}
if (!mysql_query("UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_SESSION['gebruiker'] . "'")) {
$error[] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.';
}
$fouten = sizeof($error); // aantal errors tellen
if($fouten != 0) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):';
echo '<ul>';
for($i = 0; $i < $fouten; $i++) {
echo '<li>'.$error[$i].'</li>';
}
echo '</ul>';
echo 'Poging '.$_POST['poging'].' van '.$cfg['poging'];
} else {
session_start();
$res = mysql_query("SELECT * FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'");
$row = mysql_fetch_assoc($res);
setcookie("gebruikersnaam",$row['gebruikersnaam'],time()+$_POST['tijd'],"/");
setcookie("wachtwoord",$row['wachtwoord'],time()+$_POST['tijd'],"/");
$_SESSION['gebruiker'] = $row['gebruikersnaam'];
$_SESSION['gid'] = $row['id'];
}
}
?>
<?php
include ( 'config.php' ) ;
if ( $cfg [ 'cronjobs' ] != 1 ) { // Geen cronjobs ondersteund...
include ( 'cronjobs.php' ) ;
}
if ( isset ( $_SESSION [ 'gebruiker' ] ) ) { header ( "Location: ingelogged.php" ) ; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35"
<?php if ( isset ( $_GET [ 'gebruikersnaam' ] ) ) { ?> value="
<?= $_GET [ 'gebruikersnaam' ] ?> "
<?php } ?> ></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="
<?php echo $_POST [ 'poging' ] + 1 ; ?> "><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if ( isset ( $_POST [ 'Submit' ] ) ) { if ( $_POST [ 'poging' ] == $cfg [ 'poging' ] + 1 ) { // Reeds 3 pogingen achter de rug?
header ( "Location: wachtwoord.php" ) ; }
$checkg = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) , 0 ) ; $checkp = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "' AND wachtwoord='" . md5 ( $_POST [ 'wachtwoord' ] ) . "'" ) , 0 ) ; mysql_query ( "UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_SESSION [ 'gebruiker' ] . "'" ) ;
if ( $_POST [ 'gebruikersnaam' ] == "" || $_POST [ 'wachtwoord' ] == "" ) {
$error [ ] = 'Vul alle velden in!' ;
}
if ( $checkg == 0 && $_POST [ 'gebruikersnaam' ] != "" ) {
$error [ ] = 'De ingevoerde gebruikersnaam is niet geregistreerd.' ;
}
if ( $_POST [ 'wachtwoord' ] != "" && $_POST [ 'gebruikersnaam' ] != "" && $checkp == 0 ) {
$error [ ] = 'Het ingevoerde wachtwoord is niet correct.' ;
}
if ( ! mysql_query ( "UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_SESSION [ 'gebruiker' ] . "'" ) ) { $error [ ] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.' ;
}
$fouten = sizeof ( $error ) ; // aantal errors tellen if ( $fouten != 0 ) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):' ; for ( $i = 0 ; $i < $fouten ; $i ++ ) {
echo '<li>' . $error [ $i ] . '</li>' ; }
echo 'Poging ' . $_POST [ 'poging' ] . ' van ' . $cfg [ 'poging' ] ; } else {
$res = mysql_query ( "SELECT * FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) ; setcookie ( "gebruikersnaam" , $row [ 'gebruikersnaam' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; setcookie ( "wachtwoord" , $row [ 'wachtwoord' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; $_SESSION [ 'gebruiker' ] = $row [ 'gebruikersnaam' ] ;
$_SESSION [ 'gid' ] = $row [ 'id' ] ;
}
}
?>
prorsoft - 02/05/2005 18:13 (laatste wijziging 02/05/2005 18:14)
PHP gevorderde
maak dat als je ingelogd bent datie dan de pagina refreshed!
PS. session_start() en setcookie() werken niet meer nadat je al html code geoutput hebt en/of geëchod hebt!
webbiexl - 02/05/2005 18:20 (laatste wijziging 02/05/2005 19:22)
PHP interesse
dus html na de php neerzetten? refreshen heeft tog geen zin want hij gaat direct naar ingelogged.php als je ingelogged bent
[edit] krijg t niet voor elkaar [/edit]
Stijn - 02/05/2005 20:25
PHP expert
Heb je script wat aangepast en normaal zou ie nu moeten werken
heb commentaar toegevoegd waar ik verandert heb
Hopelijk lukt het nu hé
<?php
ob_start();//code uitvoeren voordat de headers aangeroepen worden
session_start();//sessie starten doen we meestal in het begin ;)
include('config.php');
if($cfg['cronjobs'] != 1) { // Geen cronjobs ondersteund...
include('cronjobs.php');
}
if(isset($_COOKIE['gebruikersnaam']) AND isset($_COOKIE['wachtwoord']))
//als de gebruiker zich ingelogd heeft dan worden er cookies gemaakt.
//hier gebruikte je sessions
//wanneer de gebruiker zijn browser afsluit dan kan hij zich weer inloggen, wat vervelend is soms
//dus kijken of de cookies bestaan, ja of nee :)
{
header("Location: ingelogged.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="<?php $_SERVER['PHP_SELF'];//verwerkingspagina opgeven ?>">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35" <?php if(isset($_GET['gebruikersnaam'])) { ?>value="<?=$_GET['gebruikersnaam']?>"<?php } ?>></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="<?php echo $_POST['poging']+1; ?>"><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if(isset($_POST['Submit'])) {
if($_POST['poging'] == $cfg['poging']+1) { // Reeds 3 pogingen achter de rug?
header("Location: wachtwoord.php");
}
$checkg = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'"),0);
$checkp = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."' AND wachtwoord='".md5($_POST['wachtwoord'])."'"),0);
$update_time = mysql_query("UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_POST['gebruiker'] . "'");//$_SESSION[]???? De $_SESSION[gebruiker] is leeg...
//tijd updaten, we kunnen die variable een paar regels verder gebruiken
if($_POST['gebruikersnaam'] == "" || $_POST['wachtwoord'] == "") {
$error[] = 'Vul alle velden in!';
}
if($checkg == 0 && $_POST['gebruikersnaam'] != "") {
$error[] = 'De ingevoerde gebruikersnaam is niet geregistreerd.';
}
if($_POST['wachtwoord'] != "" && $_POST['gebruikersnaam'] != "" && $checkp == 0) {
$error[] = 'Het ingevoerde wachtwoord is niet correct.';
}
if (!$update_time) //hier kunnen we die $update_time gebruiken ^^
{
$error[] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.';
}
$fouten = sizeof($error); // aantal errors tellen
if($fouten != 0) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):';
echo '<ul>';
for($i = 0; $i < $fouten; $i++) {
echo '<li>'.$error[$i].'</li>';
}
echo '</ul>';
echo 'Poging '.$_POST['poging'].' van '.$cfg['poging'];
} else {
$res = mysql_query("SELECT * FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'");
$row = mysql_fetch_assoc($res);
setcookie("gebruikersnaam",$row['gebruikersnaam'],time()+$_POST['tijd'],"/");
setcookie("wachtwoord",$row['wachtwoord'],time()+$_POST['tijd'],"/");
$_SESSION['gebruiker'] = $row['gebruikersnaam'];
$_SESSION['gid'] = $row['id'];
}
}
ob_end_flush();//einde headers tegenhouden, ga met die banaan! :)
?>
<?php
ob_start ( ) ; //code uitvoeren voordat de headers aangeroepen worden include ( 'config.php' ) ;
if ( $cfg [ 'cronjobs' ] != 1 ) { // Geen cronjobs ondersteund...
include ( 'cronjobs.php' ) ;
}
if ( isset ( $_COOKIE [ 'gebruikersnaam' ] ) AND
isset ( $_COOKIE [ 'wachtwoord' ] ) ) //als de gebruiker zich ingelogd heeft dan worden er cookies gemaakt.
//hier gebruikte je sessions
//wanneer de gebruiker zijn browser afsluit dan kan hij zich weer inloggen, wat vervelend is soms
//dus kijken of de cookies bestaan, ja of nee :)
{
header ( "Location: ingelogged.php" ) ; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="<?php $_SERVER [ 'PHP_SELF' ] ; //verwerkingspagina opgeven ?> ">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35"
<?php if ( isset ( $_GET [ 'gebruikersnaam' ] ) ) { ?> value="
<?= $_GET [ 'gebruikersnaam' ] ?> "
<?php } ?> ></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="
<?php echo $_POST [ 'poging' ] + 1 ; ?> "><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if ( isset ( $_POST [ 'Submit' ] ) ) { if ( $_POST [ 'poging' ] == $cfg [ 'poging' ] + 1 ) { // Reeds 3 pogingen achter de rug?
header ( "Location: wachtwoord.php" ) ; }
$checkg = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) , 0 ) ; $checkp = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "' AND wachtwoord='" . md5 ( $_POST [ 'wachtwoord' ] ) . "'" ) , 0 ) ; $update_time = mysql_query ( "UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_POST [ 'gebruiker' ] . "'" ) ; //$_SESSION[]???? De $_SESSION[gebruiker] is leeg... //tijd updaten, we kunnen die variable een paar regels verder gebruiken
if ( $_POST [ 'gebruikersnaam' ] == "" || $_POST [ 'wachtwoord' ] == "" ) {
$error [ ] = 'Vul alle velden in!' ;
}
if ( $checkg == 0 && $_POST [ 'gebruikersnaam' ] != "" ) {
$error [ ] = 'De ingevoerde gebruikersnaam is niet geregistreerd.' ;
}
if ( $_POST [ 'wachtwoord' ] != "" && $_POST [ 'gebruikersnaam' ] != "" && $checkp == 0 ) {
$error [ ] = 'Het ingevoerde wachtwoord is niet correct.' ;
}
if ( ! $update_time ) //hier kunnen we die $update_time gebruiken ^^
{
$error [ ] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.' ;
}
$fouten = sizeof ( $error ) ; // aantal errors tellen if ( $fouten != 0 ) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):' ; for ( $i = 0 ; $i < $fouten ; $i ++ ) {
echo '<li>' . $error [ $i ] . '</li>' ; }
echo 'Poging ' . $_POST [ 'poging' ] . ' van ' . $cfg [ 'poging' ] ; } else {
$res = mysql_query ( "SELECT * FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) ; setcookie ( "gebruikersnaam" , $row [ 'gebruikersnaam' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; setcookie ( "wachtwoord" , $row [ 'wachtwoord' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; $_SESSION [ 'gebruiker' ] = $row [ 'gebruikersnaam' ] ;
$_SESSION [ 'gid' ] = $row [ 'id' ] ;
}
}
ob_end_flush ( ) ; //einde headers tegenhouden, ga met die banaan! :) ?>
Groeten stijn:cool:
webbiexl - 02/05/2005 22:09
PHP interesse
sorry maar ik moet nog steeds 2x inloggen maar iig thnx
Gerard - 03/05/2005 09:45
Ouwe rakker
De reden waarom je 2x moet inloggen is omdat je eerst controleerd ofdat een cookie geset is, daarna ga je handelen aan de hand van die info.
Pas veel later in je website ga je controleren of iemand gaat inloggen en of dat goed is.
Als je dan toch gaat werken met ob_start(); dan probeer dit eens:
<?php
ob_start();//code uitvoeren voordat de headers aangeroepen worden
session_start();//sessie starten doen we meestal in het begin ;)
include('config.php');
if($cfg['cronjobs'] != 1) { // Geen cronjobs ondersteund...
include('cronjobs.php');
}
if(isset($_COOKIE['gebruikersnaam']) AND isset($_COOKIE['wachtwoord']))
//als de gebruiker zich ingelogd heeft dan worden er cookies gemaakt.
//hier gebruikte je sessions
//wanneer de gebruiker zijn browser afsluit dan kan hij zich weer inloggen, wat vervelend is soms
//dus kijken of de cookies bestaan, ja of nee :)
{
header("Location: ingelogged.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="<?php $_SERVER['PHP_SELF'];//verwerkingspagina opgeven ?>">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35" <?php if(isset($_GET['gebruikersnaam'])) { ?>value="<?=$_GET['gebruikersnaam']?>"<?php } ?>></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="<?php echo $_POST['poging']+1; ?>"><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if(isset($_POST['Submit'])) {
if($_POST['poging'] == $cfg['poging']+1) { // Reeds 3 pogingen achter de rug?
header("Location: wachtwoord.php");
}
$checkg = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'"),0);
$checkp = mysql_result(mysql_query("SELECT COUNT(*) FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."' AND wachtwoord='".md5($_POST['wachtwoord'])."'"),0);
$update_time = mysql_query("UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_POST['gebruiker'] . "'");//$_SESSION[]???? De $_SESSION[gebruiker] is leeg...
//tijd updaten, we kunnen die variable een paar regels verder gebruiken
if($_POST['gebruikersnaam'] == "" || $_POST['wachtwoord'] == "") {
$error[] = 'Vul alle velden in!';
}
if($checkg == 0 && $_POST['gebruikersnaam'] != "") {
$error[] = 'De ingevoerde gebruikersnaam is niet geregistreerd.';
}
if($_POST['wachtwoord'] != "" && $_POST['gebruikersnaam'] != "" && $checkp == 0) {
$error[] = 'Het ingevoerde wachtwoord is niet correct.';
}
if (!$update_time) //hier kunnen we die $update_time gebruiken ^^
{
$error[] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.';
}
$fouten = sizeof($error); // aantal errors tellen
if($fouten != 0) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):';
echo '<ul>';
for($i = 0; $i < $fouten; $i++) {
echo '<li>'.$error[$i].'</li>';
}
echo '</ul>';
echo 'Poging '.$_POST['poging'].' van '.$cfg['poging'];
} else {
$res = mysql_query("SELECT * FROM leden WHERE gebruikersnaam='".$_POST['gebruikersnaam']."'");
$row = mysql_fetch_assoc($res);
setcookie("gebruikersnaam",$row['gebruikersnaam'],time()+$_POST['tijd'],"/");
setcookie("wachtwoord",$row['wachtwoord'],time()+$_POST['tijd'],"/");
$_SESSION['gebruiker'] = $row['gebruikersnaam'];
$_SESSION['gid'] = $row['id'];
header("Location: ingelogged.php");
}
}
ob_end_flush();//einde headers tegenhouden, ga met die banaan! :)
?>
<?php
ob_start ( ) ; //code uitvoeren voordat de headers aangeroepen worden include ( 'config.php' ) ;
if ( $cfg [ 'cronjobs' ] != 1 ) { // Geen cronjobs ondersteund...
include ( 'cronjobs.php' ) ;
}
if ( isset ( $_COOKIE [ 'gebruikersnaam' ] ) AND
isset ( $_COOKIE [ 'wachtwoord' ] ) ) //als de gebruiker zich ingelogd heeft dan worden er cookies gemaakt.
//hier gebruikte je sessions
//wanneer de gebruiker zijn browser afsluit dan kan hij zich weer inloggen, wat vervelend is soms
//dus kijken of de cookies bestaan, ja of nee :)
{
header ( "Location: ingelogged.php" ) ; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
</head>
<body>
<form name="form1" method="post" action="<?php $_SERVER [ 'PHP_SELF' ] ; //verwerkingspagina opgeven ?> ">
<table border="0">
<tr>
<td>Gebruikersnaam:</td>
<td><input name="gebruikersnaam" type="text" id="gebruikersnaam" size="35"
<?php if ( isset ( $_GET [ 'gebruikersnaam' ] ) ) { ?> value="
<?= $_GET [ 'gebruikersnaam' ] ?> "
<?php } ?> ></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord" size="35"></td>
</tr>
<tr>
<td>Tijd:</td>
<td><select name="tijd" id="tijd">
<option value="3600" selected>Een uur</option>
<option value="86400">Een dag</option>
<option value="604800">Een week</option>
<option value="2678400">Een maand</option>
<option value="32140800">Een jaar</option>
<option value="32140767859200">Altijd</option>
</select>
(cookies vereist) </td>
</tr>
<tr>
<td colspan="2"><input name="poging" id="poging" type="hidden" value="
<?php echo $_POST [ 'poging' ] + 1 ; ?> "><input type="submit" name="Submit" value="Inloggen"></td>
</tr>
</table>
</form>
</body>
</html>
<?php if ( isset ( $_POST [ 'Submit' ] ) ) { if ( $_POST [ 'poging' ] == $cfg [ 'poging' ] + 1 ) { // Reeds 3 pogingen achter de rug?
header ( "Location: wachtwoord.php" ) ; }
$checkg = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) , 0 ) ; $checkp = mysql_result ( mysql_query ( "SELECT COUNT(*) FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "' AND wachtwoord='" . md5 ( $_POST [ 'wachtwoord' ] ) . "'" ) , 0 ) ; $update_time = mysql_query ( "UPDATE leden SET datum2 = NOW() WHERE gebruikersnaam = '" . $_POST [ 'gebruiker' ] . "'" ) ; //$_SESSION[]???? De $_SESSION[gebruiker] is leeg... //tijd updaten, we kunnen die variable een paar regels verder gebruiken
if ( $_POST [ 'gebruikersnaam' ] == "" || $_POST [ 'wachtwoord' ] == "" ) {
$error [ ] = 'Vul alle velden in!' ;
}
if ( $checkg == 0 && $_POST [ 'gebruikersnaam' ] != "" ) {
$error [ ] = 'De ingevoerde gebruikersnaam is niet geregistreerd.' ;
}
if ( $_POST [ 'wachtwoord' ] != "" && $_POST [ 'gebruikersnaam' ] != "" && $checkp == 0 ) {
$error [ ] = 'Het ingevoerde wachtwoord is niet correct.' ;
}
if ( ! $update_time ) //hier kunnen we die $update_time gebruiken ^^
{
$error [ ] = 'Tijdstip van laatst online gebruiker kan niet worden bijgewerkt.' ;
}
$fouten = sizeof ( $error ) ; // aantal errors tellen if ( $fouten != 0 ) { // Er is minstens 1 error
echo 'Kan niet inloggen omwille van de volgende reden(en):' ; for ( $i = 0 ; $i < $fouten ; $i ++ ) {
echo '<li>' . $error [ $i ] . '</li>' ; }
echo 'Poging ' . $_POST [ 'poging' ] . ' van ' . $cfg [ 'poging' ] ; } else {
$res = mysql_query ( "SELECT * FROM leden WHERE gebruikersnaam='" . $_POST [ 'gebruikersnaam' ] . "'" ) ; setcookie ( "gebruikersnaam" , $row [ 'gebruikersnaam' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; setcookie ( "wachtwoord" , $row [ 'wachtwoord' ] , time ( ) + $_POST [ 'tijd' ] , "/" ) ; $_SESSION [ 'gebruiker' ] = $row [ 'gebruikersnaam' ] ;
$_SESSION [ 'gid' ] = $row [ 'id' ] ;
header ( "Location: ingelogged.php" ) ;
}
}
ob_end_flush ( ) ; //einde headers tegenhouden, ga met die banaan! :) ?>
webbiexl - 03/05/2005 10:37
PHP interesse
ik zie niet wat jij veranderd hebt, maar nu doet ie helemaal niets meer, alsof de pagina niet meer op de server staat
Gerard - 03/05/2005 10:38
Ouwe rakker
lijn 92, zelf veranderen waar hij anders heen moet.
webbiexl - 03/05/2005 10:44
PHP interesse
die stond ook al op lijn 14
Thomas - 03/05/2005 10:56 (laatste wijziging 03/05/2005 10:56)
Moderator
Ik zou ook geen wijs worden uit deze code... Sommige dingen zijn gewoon echt niet logisch (als je kijkt naar het eerste codefragment).
- waarom worden er twee queries uitgevoerd (eerst om te kijken of het lid bestaat, en dan om te kijken of dat lid bestaat, en het wachtwoord overeenkomt ?)
- en daarna vraag je NOG een keer de gegevens op, om je sessie/cookie te vullen... Dit kan dus met één query
- je start je sessie nadat je pagina is afgelopen
- als iemand "hackpogingen" onderneemt, zal dit echt niet gebeuren doordat de "hacker" telkens het formuliertje braaf opnieuw gaat invullen, dus die controle met $_POST['poging'] is nogal onzinnig
Schrijf anders dit script eens zelf, en vraag je van tevoren af wat je wilt bereiken met die pagina. Als je dat doet ben je al verder gekomen dan de auteur.
webbiexl - 03/05/2005 12:12
PHP interesse
khebbut gefixed (en deels opnieuw geschreven)...
iedereen bedankt voor het helpen oplossen en voor de morele steun (eps. fangorn (die sindskort aan zijn avatar te zien dood zaad heeft ))^^^^^^
Gesponsorde links
Dit onderwerp is gesloten .