Vraag & Antwoord

Webprogrammeren & scripting

PHP Inlog syteem

13 antwoorden
  • Hoi, ik ben op het moment bezig om een inlog systeem te bouwen met php en mySQL. het lukt aardig ik stuit alleen op 1 probleem. Pagina: Login.php , hier worden de username en password ingevoerd. Alles werkt goed en als er op de knop login wordt gedrukt logt die in, alleen hij wordt niet goed doorgestuurd naar de pagina Beveiligd.php. [code:1:53b300d1e3]<?php session_start(); if(!empty($_POST)){ include("connection.php"); $query = "SELECT * FROM users WHERE email='" . $_POST["email"] ."' AND wachtwoord='". md5($_POST["wachtwoord"]) . "'"; $result = mysql_query($query); if(mysql_num_rows($result) > 0){ $user = $_POST["email"]; $wachtwoord = $_POST["wachtwoord"]; $_SESSION['user'] = $user; header("Location: beveiligd.php"); exit(); } else { $text = "U hebt geen goede combinatie van emailadres en wachtwoord gebruikt! <A onclick='javascript: window.back();'>Ga terug</A>"; die($text); } } else{ //pagina verkeerd aangeroepen header("Location: login.php"); }?> [/code:1:53b300d1e3] Ik vermoed dat er een fout zit in de header of iets dergelijks...
  • heb je die session variabele goed geregistreerd? Dit was ik zelf ook eens vergeten... en ik zie het hier ook niet staan.
  • staat beveiligd.php wel in de zelfde map als login.php?
  • En een tip: Zet NOOIT die gepost variabelen direct in de query. Das vragen om een SQLinjection die minder leuke gevolgen kan hebben. Altijd eerst los checken en dan pas in de query zetten.
  • nog wat anders: Waar gaat hij dan wel naartoe of welke melding krijg je?
  • Geeft connection.php nog informatie richting de bezoeker? Als er al informatie verstuurd is, wil een header niet echt meer lukken.
  • [quote:bf556d9511="E gozeling"]Geeft connection.php nog informatie richting de bezoeker? Als er al informatie verstuurd is, wil een header niet echt meer lukken.[/quote:bf556d9511] Maar dan hoor je normaal gesporoken wel een 'Headers already sent' fout te krijgen.
  • Verander die laatste regels eens in dit anders: [code:1:7c24e21dfe]if ( headers_sent() ) { echo "<script language='JavaScript'>"; echo "document.location='./login.php'"; echo "</script>"; } else { header("location: ./login.php"); }[/code:1:7c24e21dfe]
  • haha das een leuke oplossing maar als het goed is moet het zonder kunnen 8) maarre waar is de topicstarter gebleven?
  • Ik ben nog erg nieuw met php en begrijp vele van de reacties niet :P wel heb ik geprobeerd het stukte met dat laatste script te vervangen, helaas zonder suc6, de pagina blijft blank op login_2.php staan. De bestanden staan allemaal in de zelfde map ja, wat wordt er bedoeld of de session variabele wel goed geregistreerd is ?
  • login2.php? bedoel je niet beveiligd.php? kan je anders de broncodes van allebei de bestanden eens plaatsen?
  • Oke hier de broncode van login.php login_2.php en beveiligd.php login.php [code:1:18983b5536] <H2>Hier kunt u inloggen!</H2><BR> Als u een nieuwe gebruiker bent, <A HREF="register.php">kunt u hier registreren</A><P> <FORM NAME="form1" ACTION="login_2.php" METHOD="post"> E-mail adres: <INPUT TYPE="text" NAME="email" MAXLENGHT="40"><BR> Wachtwoord: <INPUT TYPE="password" name="wachtwoord" maxlenght="10"> <INPUT TYPE="submit" VALUE="Login!"> </FORM> [/code:1:18983b5536] login_2.php [code:1:18983b5536]<?php session_start(); if(!empty($_POST)){ include("connection.php"); $query = "SELECT * FROM users WHERE email='" . $_POST["email"] ."' AND wachtwoord='". md5($_POST["wachtwoord"]) . "'"; $result = mysql_query($query); if(mysql_num_rows($result) > 0){ $user = $_POST["email"]; $wachtwoord = $_POST["wachtwoord"]; $_SESSION['user'] = $user; if ( headers_sent() ) { echo "<script language='JavaScript'>"; echo "document.location='./login.php'"; echo "</script>"; } else { header("location: ./login.php"); } [/code:1:18983b5536] beveiligd.php [code:1:18983b5536] <?php session_start(); ?> <HTML> <HEAD><TITLE>Welkom op de beveilgde pagina!</TITLE> </HEAD> <BODY> <?php if(!isset($_SESSION["user"])){ $text = "U bent niet goed ingelogd, ga terug naar <A HREF='login.php'>de login pagina</A> of naar <A HREF='registreer.php'>de registreer pagina</A>"; echo($text); } else{?> Welkom, u bent aangemeld als <?php echo($_SESSION["user"]);?><BR> <P> <A HREF="loguit.php">Log hier uit!</A> <?php } ?> </BODY> </HTML> Deze pagina controleerd of uw gegevens goed zijn aan de hand van sessions, en dan komt u op de pagina die u naar hartelust kunt veranderen. Als u meerdere pagina's wilt beveiligen kunt u dat door de volgende code doen: Code: <?php session_start(); if(!isset($_SESSION["user"])){ header("Location: login.php"); } ?> [/code:1:18983b5536] connection.php [code:1:18983b5536] <?php $host = "localhost"; $db_naam ="user_login"; $db = mysql_connect($host); mysql_select_db($db_naam, $db); ?> [/code:1:18983b5536] dit zijn de broncodes.
  • Oke het is uiteindelijk opgelost, er werd inderdaad al een header verstuurd nu heb ik het script gebruikt van: Sjoerd, en alles werkt goed. Bedankt nog!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.