Post subject: Mailinglijst met beveiliging van een inlogscript.
Posted: Tue Jun 29, 2010 9:04 am
Newbe
Joined: Fri Mar 26, 2010 11:51 am
Posts: 5
Ik heb een mailinglijst script gemaakt en een inlog script, onafhankelijk werken ze goed. Maar beide willen maar niet met elkaar samen werken, een simpel include met echo je hebt toegang. Zou toch moeten werken. Ik heb al van alles geprobeerd, maar zonder het gewenste resultaat.
Ik hoop dat er iemand is in het forum die een idee heeft? Ergens zie ik iets over het hoofd.
Met vriendelijke groet, eric
p.s. Ik gebruik xampp server 1.7.3. Met PHP versie 5.3.1.
autoid2.php
<?php session_start(); // Start de sessie // Maak de functie controle met de variabele naam en wachtwoord. function controle($email, $wachtwoord) { if ($email != "eric@top.nl" || $wachtwoord != md5("pas100")) { return false; } else { return true; } } function valid_mail ($str) //functie controleer string mail { return (preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i',$str)); }
// Controleer naam en wachtwoord if (isset($_POST["verzonden"]) && controle($_POST["email"], md5($_POST["wachtwoord"]))==true) { // OK $_SESSION['email'] = $email; $_SESSION['wachtwoord'] = md5($wachtwoord);
session_start(); if (!isset($_SESSION['email']) { header('Location: autoid2.php'); exit; // stuur de user naar de login pagina als hij nog niet is ingelogd }
en dan in autoid2.php verander
Code:
// Controleer naam en wachtwoord if (isset($_POST["verzonden"]) && controle($_POST["email"], md5($_POST["wachtwoord"]))==true) { // OK $_SESSION['email'] = $email; $_SESSION['wachtwoord'] = md5($wachtwoord);
}
naar
Code:
// Controleer naam en wachtwoord if (isset($_POST["verzonden"]) && controle($_POST["email"], md5($_POST["wachtwoord"]))==true) { // OK $_SESSION['email'] = $email; $_SESSION['wachtwoord'] = md5($wachtwoord); header('Location: mailingin.php'); exit; }
Eerst stuur je de user naar de inlog pagina. Wanneer hij juist inlogd, gaat hij automatisch naar de mailinglist. Als iemand op de mailinglist komt zonder ingelogd te zijn, gaat hij vanzelf naar de loginpagina.
Zorg aleen dat de twee php bestanden in dezelfde map staan.
Post subject: Re: Mailinglijst met beveiliging van een inlogscript.
Posted: Mon Jul 05, 2010 2:12 pm
Newbe
Joined: Fri Mar 26, 2010 11:51 am
Posts: 5
Hallo,
Bedankt voor je reactie! Ik heb de wijzigingen aangebracht zoals aangegeven.
autoid2.php stuurt de user na correcte inloggegevens nu naar mailingin.php tot zover gaat het goed. Alleen bij mailingin.php schakelt ie weer terug naar autoid2.php. De if statement werkt niet helemaal goed, al voer je de correcte inloggevens in.
Ik heb de volgende dingen onderzocht:
Ik heb met var_dump gekeken of de super global $_SESSION de array gegevens wel juist doorgeeft, geen probleem tot zover.
Ik heb het if (conditie) verder uitgeplozen.
Code:
session_start(); if (!isset($_SESSION['email'])){ header('Location: autoid2.php'); exit;// stuur de user naar de login pagina als hij nog niet is ingelogd }
! Is waar als het enkelvoudig argument(rechts) onwaar is en onwaar als dat argument waar is. isset Neemt een array[key] en retourneert true als het sleutelgedeelte een geldige sleutel voor de array is. $_SESSION['email'] klopt ook zit in de array.
Mischien ligt het aan mijn installatie van XAMPP server 1.7.3. Met PHP versie 5.3.1. Ik ben nog een beginner met PHP
Zou jij het willen testen of het bij jou wel goed werkt?
Post subject: Re: Mailinglijst met beveiliging van een inlogscript.
Posted: Mon Jul 05, 2010 3:38 pm
Newbe
Joined: Fri Mar 26, 2010 11:51 am
Posts: 5
Hallo Clear,
Ik heb het gevonden met print_r de $_SESSION array met email is leeg, dus kon hij niet anders dan dat hij steeds naar autoid2.php ging. Hij gaf wel het wachtwoord goed door met md5. Dus email in wachtwoord veranderd en werken als een speer.
Code:
session_start(); if (!isset($_SESSION['wachtwoord'])){ header('Location: autoid2.php'); exit;// stuur de user naar de login pagina als hij nog niet is ingelogd }
Er is dus niks met het if (conditie) aan de hand, werkt gewoon goed. Fout zit in autoid2.php hij zet de string van email niet in de $_SESSION['email'] array.
Users browsing this forum: No registered users and 0 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum