Jasper Schellekens op 30/03/2015 18:04:40
Beste scripters!
Ik ben beginnend met PHP.
Ik wil dus op mijn website een blokkade maken voor dubbel login.
Hoe wil ik dit doen?
In de tabel users heb ik online en online2.
online registreert wanneer de klant inlogt( tijdstip datum etc.)
Bij online2 komt na het inloggen inplaats van nee, ja te staan.
Op het moment dat een klant inlogt op mijn website verandert dit.
Nu wil ik zorgen dat de klant niet met een tweede scherm kan inloggen (dubbel login)
Hoe maak ik bij het inloggen iets dat controleert of online2 op ja of nee staat?
Staat die op ja? dan wil ik de foutmelding 'u bent al ingelogd' laten zien.
Staat er nee? dan kan er ingelogd worden.
Hoe kan ik dit doen?
De bestanden mocht het nodig zijn:
login.php
<?php /* ------------------------- */
include("config.php");
if(isset($_POST['login'])) {
$dbres = mysql_query("SELECT * FROM `users` WHERE `login`='{$_POST['login']}' AND `pass`=MD5('{$_POST['pass']}')");
$num = mysql_num_rows($dbres);
if($num > 0) {
$naam = $_POST['login'];
$_POST['login'] = $naam;
$pass = $_POST['pass'];
$_POST['pass'] = $pass;
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
$dbres = mysql_query("SELECT *,UNIX_TIMESTAMP(`signup`) AS `signup` FROM `users` WHERE `login`='{$_SESSION['login']}'");
$_SESSION['data'] = mysql_fetch_object($dbres);
if($data->vakantie > 0){
header("Location: $sitelink/index.php?vakantie");
exit;
}
header("Location: inlogger.php?x={$_POST['login']}&pass={$_POST['pass']}");
}
else{
header("Location: $sitelink/index.php?error");
}
}
else if($_GET['x'] == "logout") {
mysql_query("UPDATE `[users]` SET `online`='0000-00-00 00:00:00' WHERE `login`='{$data->login}'");
mysql_query("DELETE FROM `[online]` WHERE `login`='{$_COOKIE['login']}' AND `validate`='{$_COOKIE['validate']}' AND `IP`='{$_SERVER['REMOTE_ADDR']}'");
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
session_destroy();
header("Location: $sitelink/index.php");
}
/* ------------------------- */ ?>
inlogger.php
<?
include("config.php");
$user1 = mysql_query("SELECT * FROM `users` WHERE `activationcode`='0' AND `login`='{$_GET['x']}' AND `pass`=MD5('{$_GET['pass']}')");
$user = mysql_num_rows($user1);
if($user > 0){
$_SESSION['login'] = $_GET['x'];
$data->login = $_GET['x'];
header("Location: index.php?a=loggedin");
}
else{
header("Location: $sitelink/index.php?error");
}
?>
loggedin.php
<table width="100%">
<tr>
<td align="center">
<br><br><br><br>
<table class="div_popup" align="center">
<tr>
<td>
Je bent ingelogd in het systeem en zal over enkele ogenblikken door worden gestuurd. </td>
</tr>
<tr>
<td>
<br><br>
<a href="<? echo $sitelink;?>/v3/index.php?a=news" class="msg_ok">Klik hier indien je niet automatisch verder gaat.</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<script language="javascript">
setTimeout("document.location.href='<? echo $sitelink;?>/v3/index.php?a=news'",(1000*2));
</script>
</div>
</td>
</tr>
</table>
</td>
Alvast bedankt!
[size=xsmall]Toevoeging op 30/03/2015 18:08:41:[/size]
Kleine edit: De foutmelding is niet nodig die zit er al bij.
Hij moet alleen het dubbel inloggen blokkeren
[size=xsmall]Toevoeging op 30/03/2015 18:42:12:[/size]
Jasper Schellekens op 30/03/2015 18:40:40
[quote="Jasper Schellekens op 30/03/2015 18:04:40"]
Beste scripters!
Ik ben beginnend met PHP.
Ik wil dus op mijn website een blokkade maken voor dubbel login.
Hoe wil ik dit doen?
In de tabel users heb ik online en online2.
online registreert wanneer de klant inlogt( tijdstip datum etc.)
Bij online2 komt na het inloggen inplaats van nee, ja te staan.
Op het moment dat een klant inlogt op mijn website verandert dit.
Nu wil ik zorgen dat de klant niet met een tweede scherm kan inloggen (dubbel login)
Hoe maak ik bij het inloggen iets dat controleert of online2 op ja of nee staat?
Staat die op ja? dan wil ik de foutmelding 'u bent al ingelogd' laten zien.
Staat er nee? dan kan er ingelogd worden.
Hoe kan ik dit doen?
Ik heb het hiermee geprobeert maar helaas werkte dit niet:
<?
include("config.php");
$user1 = mysql_query("SELECT * FROM `users` WHERE `online2`='nee' AND `login`='{$_GET['x']}' AND `pass`=MD5('{$_GET['pass']}')");
$user = mysql_num_rows($user1);
if($user > 0){
$_SESSION['login'] = $_GET['x'];
$data->login = $_GET['x'];
header("Location: index.php?a=loggedin");
}
else{
header("Location: $sitelink/index.php?error");
}
?>
De bestanden mocht het nodig zijn:
login.php
<?php /* ------------------------- */
include("config.php");
if(isset($_POST['login'])) {
$dbres = mysql_query("SELECT * FROM `users` WHERE `login`='{$_POST['login']}' AND `pass`=MD5('{$_POST['pass']}')");
$num = mysql_num_rows($dbres);
if($num > 0) {
$naam = $_POST['login'];
$_POST['login'] = $naam;
$pass = $_POST['pass'];
$_POST['pass'] = $pass;
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
$dbres = mysql_query("SELECT *,UNIX_TIMESTAMP(`signup`) AS `signup` FROM `users` WHERE `login`='{$_SESSION['login']}'");
$_SESSION['data'] = mysql_fetch_object($dbres);
if($data->vakantie > 0){
header("Location: $sitelink/index.php?vakantie");
exit;
}
header("Location: inlogger.php?x={$_POST['login']}&pass={$_POST['pass']}");
}
else{
header("Location: $sitelink/index.php?error");
}
}
else if($_GET['x'] == "logout") {
mysql_query("UPDATE `[users]` SET `online`='0000-00-00 00:00:00' WHERE `login`='{$data->login}'");
mysql_query("DELETE FROM `[online]` WHERE `login`='{$_COOKIE['login']}' AND `validate`='{$_COOKIE['validate']}' AND `IP`='{$_SERVER['REMOTE_ADDR']}'");
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
session_destroy();
header("Location: $sitelink/index.php");
}
/* ------------------------- */ ?>
inlogger.php
<?
include("config.php");
$user1 = mysql_query("SELECT * FROM `users` WHERE `activationcode`='0' AND `login`='{$_GET['x']}' AND `pass`=MD5('{$_GET['pass']}')");
$user = mysql_num_rows($user1);
if($user > 0){
$_SESSION['login'] = $_GET['x'];
$data->login = $_GET['x'];
header("Location: index.php?a=loggedin");
}
else{
header("Location: $sitelink/index.php?error");
}
?>
loggedin.php
<table width="100%">
<tr>
<td align="center">
<br><br><br><br>
<table class="div_popup" align="center">
<tr>
<td>
Je bent ingelogd in het systeem en zal over enkele ogenblikken door worden gestuurd. </td>
</tr>
<tr>
<td>
<br><br>
<a href="<? echo $sitelink;?>/v3/index.php?a=news" class="msg_ok">Klik hier indien je niet automatisch verder gaat.</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<script language="javascript">
setTimeout("document.location.href='<? echo $sitelink;?>/v3/index.php?a=news'",(1000*2));
</script>
</div>
</td>
</tr>
</table>
</td>
Alvast bedankt!
[size=xsmall]Toevoeging op 30/03/2015 18:08:41:[/size]
Kleine edit: De foutmelding is niet nodig die zit er al bij.
Hij moet alleen het dubbel inloggen blokkeren
[/quote]