teneerste aan iedereen die ik heb geschreven met een PM mijn excuus ik wist niet dat dat niet mocht mijn excuus daarvoor,

ik zal hier in de topic de scripts plaatsen ,

ik kom niet uit hoe het kan dat mijn expire.php niet werkt en dus ergens moet er iets niet kloppen

expire.php


 <?php

// tijd.php meegeven


// var maken met de tijd die er nu is
$nu = mktime($uur,$minuut,$seconden,$maand,$dag,$jaar);
// var maken voor de tijd dat de sessie verloopt
$expire =  mktime(date("H")+10, date("i") , date("s"), date("m"), date("d"), date("Y"));

// wanneer de expiretijd in de sessie kleiner dan de tijd van nu, melding geven en uitloggen.
    if (isset($_SESSION['expire']) && $_SESSION['expire'] < $nu){
    echo ("<font color=red>Je sessie is verlopen, log opnieuw in</font><br>");
    $fout = "ja";
    include_once("uitloggen.php");
    exit;
    }
// wanneer de sessie nog geldig is, tijd vernieuwen
    else {
    $_SESSION['expire'] = $expire;
        }

index.php

 <?php
//session_start();

// wanneer alle velden zijn ingevuld dan hier verder
if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username'] <> NULL && $_POST['password'] <> NULL){
    // standaart is er geen fout
    $fout = "nee";        
    include("verbinden.php");
    // zoeken naar de gebruiker, hier ook de aanpassing doen voor encryptie 
    $gebruiker_sql = "SELECT id,type FROM user WHERE loginnaam = '" . $_POST['username'] . "' AND wachtwoord = '" . $_POST['password'] . "'";
    $gebruiker_result = mysql_query($gebruiker_sql);
    // wanneer er een gebruiker is gevonden dan hier verder
    if ($gebruiker_result){
        $gebruiker = mysql_fetch_array($gebruiker_result);
    // controleren of het geselecteerde type van de gebruiker overeenkomt
        if ($gebruiker['type'] == $_POST['type']){
            //$login meegeven (ivm foutafhandeling later)
            $login = "succes";
            // de sessie variabelen vullen
            $_SESSION['id'] = $gebruiker['id'];
            include("tijd.php");
            // de expiretijd de 1e keer instellen
            $expire =  mktime($uur,$minuut,$seconden,$maand,$dag,$jaar);
            $_SESSION['expire'] = $expire;
            $_SESSION['type'] = $gebruiker['type'];
            echo ("U bent ingelogd, een moment gedult alstublieft, u wordt doorgestuurd");
            // met javascript doorlinken naar een andere pagina. De sessie blijft bestaan!
?>

<html>
<head>
<meta http-equiv="refresh" content="2;URL=index2.php" />
</head>
</html>

<?
            }
        else {
            // wanneer type niet overeenkomt dan $login = "type"
            $login = "type";
            }
        }
        
// FOUTAFHANDELING:

// als de typen van de login niet overeenkomen dan fout geven        
    if (isset($login) && $login == "type"){
        $fout = "ja";
        echo ("<font color=red>U hebt niet de bevoegdheid om als dit type in te loggen!</font>");
        }
// als $login niet bestaat, is er geen record in de DB gevonden met de user en pass combinatie
    else if (!isset($login)){
        $fout = "ja";
        echo ("<font color=red>De combinatie van gebruikersnaam en wachtwoord is onjuist</font>");
        }
    }

// wanneer maar 1 van de 2 velden is ingevuld fout geven
else if (isset($_POST['username']) || isset($_POST['password'])){
    $fout == "ja";
    echo ("<font color=red>Vul beide velden in voordat u in kan loggen</font>");
    }
    
// wanneer niets ingevuld of wanneer er een fout is, formulier weergeven
if (!isset($_POST['username']) && !isset($_POST['password']) || $fout == "ja"){
?>
<form name="form1" method="post" action="index.php">
  <table width="80%" border="0">
    <tr>
      <td width="15%">Gebruikersnaam:</td>
      <td><input name="username" type="text" id="username"></td>
    </tr>
    <tr>
      <td>Wachtwoord:</td>
      <td><input name="password" type="password" id="password"></td>
    </tr>
    <tr>
      <td>Opdrachtgever/Personeelslid </td>
      <td><select name="type">
        <option value="personeel">PERSONEEL</option>
        <option value="opdrachtgever">OPDRACHTGEVER</option>
      </select></td>
    </tr>
  </table>
  <p>
    <input name="Login" type="submit" id="Login" value="Login">
  </p>
</form>


<?php
}
?> 

index2.php

<?php
session_start();

// in expire.php wordt gekeken of de tijd verlopen is
include ("expire.php");
    
//als de sessie bestaat, dan gaat die hier verder
if (isset($_SESSION['id'])){
    include("verbinden.php");
    if ($_SESSION['type'] == "personeel"){
        // wanneer als PERSONEEL ingelogd, dan functie PERSONEEL aanroepen, id meegeven
        personeel($_SESSION['id']);
        }
        // wanneer als OPDRACHTGEVER ingelogd, dan functie OPDRACHTGEVER aanroepen, id meegeven
    else if ($_SESSION['type'] == "opdrachtgever"){
        opdrachtgever($_SESSION['id']);
        }
    }

// als de sessie niet bestaat, geef melding en ga terug naar index.php
else if(!isset($_SESSION['id'])){
    echo ("<font color=red>U bent niet ingelogd!</font>");
?>

<html>
<head>
<meta http-equiv="refresh" content="2;URL=index.php" />
</head>
</html>

<?
    }

// de functie PERSONEEL, krijgt een ID mee, om later gegevens uit DB te kunnen halen.
function personeel($id){
    echo $id;
    echo ("<br><a href=uitloggen.php>Uitloggen</a><br><br>");
    echo ("<br>Personeelslid u bent ingelogd ");
    }

// de functie OPDRACHTGEVER, krijgt een ID mee, om later gegevens uit DB te kunnen halen.
function opdrachtgever($id){
    echo $id;
    echo ("<br><a href=uitloggen.php>Uitloggen</a><br><br>");
    echo ("<br>Opdrachtgever u bent ingelogd");
    }
?>

tijd.php

<?php
    $uur = date("H");
    $minuut = date("i");
    $seconden = date("s");
    $dag = date("d");
    $maand = date("m");
    $jaar = date("Y");
            
?> 

uitloggen.php


<?php
session_start();
session_destroy();
// sessie is beëindigd, ga terug naar de loginpagina
?>

<html>
<head>
<meta http-equiv="refresh" content="0;URL=index.php" />
</head>
</html>

<?

exit();
?> 


verbinden.php

<?php 

$mysql['host']           = "db.vanmijn.database.nl";
$mysql['gebruikersnaam']         = "mijngebruikersnaam";
$mysql['wachtwoord']         = "mijnwachtwoordd";
$mysql['database']             = "midatabasenaam";

mysql_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord']);
mysql_select_db($mysql['database']);

?> 

mijn setup.php

<?php
include("verbinden.php");

$create_user="CREATE TABLE `user` (
  `id` int(255) NOT NULL auto_increment,
  `loginnaam` varchar(255) NOT NULL default '',
  `wachtwoord` varchar(255) NOT NULL default '',
  `type` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `username` (`loginnaam`)
)";
$bool=mysql_query($create_user);
if($bool==1) echo ("Usertabel is aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van userteabel.<br></font>");


$user_insert="INSERT INTO `user` VALUES (1,'John van Kooten','wachtwoord','personeel')";
$bool=mysql_query($user_insert);
$user_insert="INSERT INTO `user` VALUES (2,'Marc van Kooten','wachtwoord','personeel')";
$bool=mysql_query($user_insert);
$user_insert="INSERT INTO `user` VALUES (3,'Tester','wachtwoord','personeel')";
$bool=mysql_query($user_insert);
$user_insert="INSERT INTO `user` VALUES (4,home',kanarie','opdrachtgever')";
$bool=mysql_query($user_insert);
$user_insert="INSERT INTO `user` VALUES (5,'gegege','pass','vakantie')";
$bool=mysql_query($user_insert);
if($bool==1) echo ("Users zijn aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van Users.<br></font>");

$create_personeel="CREATE TABLE `personeel` (
  `id` int(255) NOT NULL auto_increment,
  `personeelsnr` varchar(7) NOT NULL default '',
  `voornaam` varchar(20) NOT NULL default '',
  `tussenvoegsel` varchar(20) NOT NULL default '',
  `achternaam` varchar(20) NOT NULL default '',
  `adres` varchar(40) NOT NULL default '',
  `postcode` varchar(6) NOT NULL default '',
  `plaats` varchar(25) NOT NULL default '',
  `functie` varchar(40) NOT NULL default '',
  `in dienst getreden` varchar(12) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `personeelsnr` (`personeelsnr`)
)";
$bool=mysql_query($create_personeel);
if($bool==1) echo ("Tabel personeel is aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van tabel personeel.<br></font>");
	
$personeel_insert="INSERT INTO `personeel` VALUES (1,'Tester','Test','','Testerterman','de testerbree 54','8106AT','Testerheem','Testeman','01-04-2009')";
$bool=mysql_query($personeel_insert);
$personeel_insert="INSERT INTO `personeel` VALUES (2,'max van maxen','max','van','maxen','maxenstraat 3,'1234mx','maxdorp','maxioionist','16-03-2009')";
$bool=mysql_query($personeel_insert);
$personeel_insert="INSERT INTO `personeel` VALUES (3,'dirc van teuren','dirc','van','teuren','dircvanteurenstraat 26','4321XX','teurendorp','Directeur','09-03-2009')";
$bool=mysql_query($personeel_insert);
if($bool==1) echo ("Personeelsleden zijn aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van personeelsleden.<br></font>");	
	
$create_opdrachtgever="CREATE TABLE `opdrachtgever` (
  `id` int(255) NOT NULL auto_increment,
  `debiteurnaam` varchar(255) NOT NULL default '',
  `debiteurnr` varchar(20) NOT NULL default '',
  `adres` varchar(40) NOT NULL default '',
  `postcode` varchar(6) NOT NULL default '',
  `plaats` varchar(25) NOT NULL default '',
  `aanhef` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `debiteurnaam` (`debiteurnaam`)
)";
$bool=mysql_query($create_opdrachtgever);
if($bool==1) echo ("Tabel opdrachtgever is aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van tabel opdrachtgever.<br></font>");	

$opdrachtgever_insert="INSERT INTO `opdrachtgever` VALUES (4,hotel','1',kanarieweg 20','1166BW','Amsterdam','Dhr F kwekkeboom')";
$bool=mysql_query($opdrachtgever_insert);

// het type float(3,1) betekend dat er maximaal 2 tekens voor de , staan en minimaal (en maximaal) 1 erachter.
$create_info="CREATE TABLE `info` (
  `id` int(255) NOT NULL auto_increment,
  `personeelsnr` varchar(7) NOT NULL default '',
  `E-mail` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `parttime full time` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
)";
$bool=mysql_query($create_info);
if($bool==1) echo ("info tabel is aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van info tabel.<br></font>");

$info_insert="INSERT INTO `info` VALUES (1,'John van Kooten','[email protected]',wachtwoord,'fulltime')";
$bool=mysql_query($info_insert);
$info_insert="INSERT INTO `info` VALUES (2,'Marc van Kooten','[email protected]',wachtwoord,'fulltime')";
$bool=mysql_query($info_insert);
$info_insert="INSERT INTO `info` VALUES (3,'Tester','[email protected]',wachtwoord,'part time')";
$bool=mysql_query($info_insert);
$opdrachtgever_insert="INSERT INTO `opdrachtgever` VALUES (4,hotel','wachtwoord',geen,'onbepaalde tijd')";
$bool=mysql_query($opdrachtgever_insert);
if($bool==1) echo ("personeelsleden en opdrachtgevers info zijn aangemaakt<br>");
    if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het maken van personeelsleden en opdrachtgevers info.<br></font>");

// Het stukje voor wissen van de database, wanneer er een fout was ontstaan bij het creëren.

//*$wissen = "DROP DATABASE `personeel opdrachtgevers`";
$voeruit = mysql_query($wissen);
if($voeruit==1) echo ("Database is gewist");
if($voeruit<>1) echo ("FOUT BIJ WISSEN");*/

?> 


dit zijn alle scripts die ik gebruik dus als iemand weet hoe ik dit moet oplossen is welkom



heb in index.php ook de expire veraderd met time(); veranderd maar lijkt erop dat er geen sessie is ofzo dan

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
@ John

Waarom begin je niet over nieuw en ga je eerst even wat tutorials lezen? Want dit script is niet echt super om in gebruik te nemen.
maar ark de AK Login van jou , gebruikt ook sessies en dan kan je dus kiezen hoelang de sessie mag duren en met uitloggen kan je kiezen welke sessie je uit wil loggen, met dit scriptis het aleen in uit uitloggen en verweist hij eigenlijk al van username gekoppelt aan database en daaruit haalt hij dan de info wat voor hem/haar bedoelt is dat is wel wat ik graag wil
Ik heb er heel veel puinhoop uitgehaald. Ik denk dat dit al een stuk beter moet zijn.


index2.php
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

session_start();

include ("expire.php");
if (isset($_SESSION['id']))
{
if ($_SESSION['type'] == "personeel")
{
personeel($_SESSION['id']);
}
elseif ($_SESSION['type'] == "opdrachtgever")
{
opdrachtgever($_SESSION['id']);
}
}
else
{
echo '<html>
<head>
<meta http-equiv="refresh" content="2;URL=index.php" />
</head>
<body>
<font color="red">U bent niet ingelogd!</font>
</body>
</html>';
}

// de functie PERSONEEL, krijgt een ID mee, om later gegevens uit DB te kunnen halen.
function personeel($id){
echo $id;
echo ("<br><a href=uitloggen.php>Uitloggen</a><br><br>");
echo ("<br>Personeelslid u bent ingelogd ");
}

// de functie OPDRACHTGEVER, krijgt een ID mee, om later gegevens uit DB te kunnen halen.
function opdrachtgever($id){
echo $id;
echo ("<br><a href=uitloggen.php>Uitloggen</a><br><br>");
echo ("<br>Opdrachtgever u bent ingelogd");
}
?>

expire.php
<?php
if (isset($_SESSION['expire']) and $_SESSION['expire'] < time())
{
echo '<font color="red">Je sessie is verlopen, log opnieuw in</font><br>';
include_once("uitloggen.php");
exit;
}

$_SESSION['expire'] = time + (10 * 3600);
?>

index.php
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

session_start();

if (!empty($_POST['username']) and !empty($_POST['password']))
{
include("verbinden.php");
$gebruiker_sql = "SELECT id, type
FROM user
WHERE loginnaam = '" . mysql_real_escape_string($_POST['username']) . "'
AND wachtwoord = '" . mysql_real_escape_string($_POST['password']) . "'";
$gebruiker_result = mysql_query($gebruiker_sql);
if ($gebruiker_result)
{
if(mysql_num_rows() == 1)
{
$gebruiker = mysql_fetch_array($gebruiker_result);
if ($gebruiker['type'] == $_POST['type'])
{
$_SESSION['id'] = $gebruiker['id'];
$_SESSION['expire'] = time();
$_SESSION['type'] = $gebruiker['type'];
echo '<html>
<head>
<meta http-equiv="refresh" content="2;URL=index2.php" />
</head>
<body>
U bent ingelogd, een moment geduld alstublieft, u wordt doorgestuurd
</body>
</html>';
}
else
{
echo '<font color="red">U hebt niet de bevoegdheid om als dit type in te loggen!</font>';
}
}
else
{
echo '<font color="red">De combinatie van gebruikersnaam en wachtwoord is onjuist</font>';
}
}
else
{
echo 'ERROR: Query mislukt';
}
}
elseif (isset($_POST['username']) or isset($_POST['password']))
{
echo '<font color="red">Vul beide velden in voordat u in kan loggen</font>';
}

echo '<form name="form1" method="post" action="index.php">
<table width="80%" border="0">
<tr>
<td width="15%">Gebruikersnaam:</td>
<td><input name="username" type="text" id="username"></td>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td>Opdrachtgever/Personeelslid </td>
<td><select name="type">
<option value="personeel">PERSONEEL</option>
<option value="opdrachtgever">OPDRACHTGEVER</option>
</select></td>
</tr>
</table>
<p>
<input name="Login" type="submit" id="Login" value="Login">
</p>
</form>';
?>
thx voor je hulp:)

maar nu heb ik het volgende hij kent dus numrow ==1 niet zie fout code

Warning: Wrong parameter count for mysql_num_rows() in /storage/mijndomein/users/136729/public/sites/www.mjenzo.nl/login/index.php on line 17



Probeer eens mysql_num_rows($gebruiker_result) == 1
oke dat wekt ,

maar nu komt er weer een probleem:((((

nu is de sessie verlopen,//

er staat ,

Je sessie is verlopen,log opnieuw in

Notice: A session had already been started-ignoring session_start()in /storage/mijndomein/users/136729/public/sites/www.mjenzo.nl/login/uitloggen.php on line 2
en wordt ik weer terug gestuurd naar de index het inlogscherm
Het bestandje tijd.php heb je niet meer nodig.

Verder moet session_start(); weg uit uitloggen.php

In expire.php
Moet dit
$_SESSION['expire'] = time + (10 * 3600);
Dit zijn
$_SESSION['expire'] = time() + (10 * 3600);

In index.php
Moet dit
$_SESSION['expire'] = time();
Dit zijn
$_SESSION['expire'] = time() + (10 * 3600);;

Reageren