anoniem Geplaatst: 2 juli 2004 Delen Geplaatst: 2 juli 2004 De bedoeling is dus dat als iemand niet is ingelogt de link login.php verschijnt, als hij dus wel is ingelogt moet het verandert worden naar logout.php. Heb het onderstaande, maar het werkt dus niet. Iemand een idee waarom niet? Als je niet bent ingelogt staat er wel netje login maar zodra je inlogt en dan op uitloggen klikt blijft logout gewoon staan. En verandert dus niet terug naar login. Dit is de code die in het menu staat en dus controleert ofdat je bent ingelogd of niet. [code:1:6342500738] <?php if(isset($_COOKIE['user_id']) AND (substr($_SERVER['PHP_SELF'], -10) != 'logout.php')) { echo '<a href="logout.php">Logout</a>'; } else { echo '<a href="login.php">Login</a>'; } ?> [/code:1:6342500738] De code van logout.php [code:1:6342500738] <?php if(!isset($_COOKIE['first_name'])) { header ("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']) . "index.php"); exit(); } else { setcookie ('firstname','', time()-300, '/', '', 0); setcookie ('user_id','', time()-300, '/', '', 0); } $page_title = 'Logout!'; include ('./header.inc'); echo '<p>You are now logged out</p>'; include ('./footer.inc'); ?> [/code:1:6342500738] Quote Link naar reactie
anoniem Geplaatst: 4 juli 2004 Auteur Delen Geplaatst: 4 juli 2004 lol daar zit deze noob ook al mee te klooien bij mij veranderd het pas als je op een andere link op de pagina klikt www.phpfreakz.nl forum weet iemand hoe dat op te lossen? Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 Ik heb het nooit zo gehad op dat header gebeuren, ik gebruik zelf graag [color=green:40a8d04cda]echo "<META http-equiv='refresh' content='0;URL=http://weetikveel.nl/index.php'>";[/color:40a8d04cda]. Misschien is dat een optie? Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 Het probleem zit hem waarschijnlijk in feit dat je met setcookie() je cookie laat verlopen bij de volgende request. De Location header stuurt de huidige request door, naar een andere pagina, maar de request is hetzelfde, dus bestaat de cookie nog steeds (deze verdwijnt pas bij de volgende request). Voor meer info kun je in de [url=ftp://ftp.isi.edu/in-notes/rfc2616.txt]HTTP 1.1 specs[/url] (hfdst 14.30) kijken. Een oplossing zou dan kunnen zijn een META refresh, aangezien dan een nieuwe request gegenereerd wordt. -Rémy Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 ik heb ook al META geprobeerd maar dat geeft bij mijn inlog een error http://www.kassenaar.com/php/hoofdstuk_12.zip login2.php Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 [url=http://www.php.net/manual/en/ref.session.php]Sessies[/url] is je antwoord. [url=http://www.free2code.net/tutorials/programming/php/4/phplogin.php]Creating a PHP Login Script[/url] Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 [quote:e821554070="h4xX0r"][url=http://www.php.net/manual/en/ref.session.php]Sessies[/url] is je antwoord. [url=http://www.free2code.net/tutorials/programming/php/4/phplogin.php]Creating a PHP Login Script[/url][/quote:e821554070] mijn login gaat via sessies?[code:1:e821554070] <?php session_start(); // sessie beginnen // controleren of pagina correct is aangeroepen. if (!empty($_POST)){ include("inc_connect.php"); $query = "SELECT * FROM users WHERE email='" . $_POST["email"] ."' AND wachtwoord='". $_POST["wachtwoord"]. "'"; $result = mysql_query($query) or die("FOUT : " . mysql_error()); if (mysql_num_rows($result) > 0){ // e-mailadres gevonden, registreer gegevens in session $username = $_POST["email"]; $wachtwoord = $_POST["wachtwoord"]; session_register("username"); session_register("wachtwoord"); /* Indien u in een live-applicatie nog meer gegevens hebt opgeslagen voor een user, deze dan uitlezen via mysql_fetch_row($result) en toekennen aan diverse variabelen voor gebruik elders in de site. Voor deze kleine applicatie is dat echter niet nodig. */ // Doorsturen naar beveiligde pagina header("Location: beveiligd.php"); exit(); }else{ // geen e-mail adres gevonden, of ongeldig wachtwoord. $tekst = "U hebt geen geldige combinatie van e-mailadres en wachtwoord opgegeven. Maak een keuze: <br> <a href=\"login.php\">Opnieuw inloggen</a><br> <a href=\"register.php\">Hier registreren</a><br>"; die($tekst); } }else{ // pagina was incorrect aangeroepen, direct doorsturen naar login.php header("Location: login.php"); } [/code:1:e821554070] Quote Link naar reactie
anoniem Geplaatst: 5 juli 2004 Auteur Delen Geplaatst: 5 juli 2004 [quote:bf9ee6afbb="Cable guy"][quote:bf9ee6afbb="h4xX0r"][url=http://www.php.net/manual/en/ref.session.php]Sessies[/url] is je antwoord. [url=http://www.free2code.net/tutorials/programming/php/4/phplogin.php]Creating a PHP Login Script[/url][/quote:bf9ee6afbb] mijn login gaat via sessies?[/quote:bf9ee6afbb]Zelf ff checken. Zo uit de losse pols verzonnen :)[code:1:bf9ee6afbb] <?php session_start(); // sessie beginnen // controleren of pagina correct is aangeroepen. if (!empty($_POST)){ include("inc_connect.php"); if (!(isset($_SESSION['isloggedin']) && isset($_SESSION['username']) && isset($_SESSION['wachtwoord']) && ($_SESSION['isloggedin']=='1'))) { $query = "SELECT * FROM users WHERE email='" . $_POST["email"] ."' AND wachtwoord='". $_POST["wachtwoord"]. "'"; $result = mysql_query($query) or die("FOUT : " . mysql_error()); if (mysql_num_rows($result) > 0){ // e-mailadres gevonden, registreer gegevens in session // $username = $_POST["email"]; // $wachtwoord = $_POST["wachtwoord"]; $_SESSION['isloggedin'] = '1'; $_SESSION['username'] = $_POST['email']; $_SESSION['wachtwoord'] = $_POST['wachtwoord']; /* Indien u in een live-applicatie nog meer gegevens hebt opgeslagen voor een user, deze dan uitlezen via mysql_fetch_row($result) en toekennen aan diverse variabelen voor gebruik elders in de site. Voor deze kleine applicatie is dat echter niet nodig. */ // Doorsturen naar beveiligde pagina header("Location: beveiligd.php"); exit(); }else{ // geen e-mail adres gevonden, of ongeldig wachtwoord. $tekst = "U hebt geen geldige combinatie van e-mailadres en wachtwoord opgegeven. Maak een keuze: <br> <a href=\"login.php\">Opnieuw inloggen</a><br> <a href=\"register.php\">Hier registreren</a><br>"; die($tekst); } }else{ // pagina was incorrect aangeroepen, direct doorsturen naar login.php header("Location: login.php"); } else { header("Location: beveiligd.php"); exit(); } } [/code:1:bf9ee6afbb] Quote Link naar reactie
anoniem Geplaatst: 6 juli 2004 Auteur Delen Geplaatst: 6 juli 2004 Heb het inderdaad met sessies geprobeerd en dat werkt wel! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen