Login systeem

Status
Niet open voor verdere reacties.

marcoboekholt

Gebruiker
Lid geworden
10 mei 2012
Berichten
6
Hallo,

Ik ben bezig om kennis van PHP en MySQL te krijgen maar nu maak ik een login systeem, maar wanneer ik naar de paneel ga als ik heb ingelogd kan hij de webpagina niet vinden vreemd dus.

de website http://www.mabowebdesign.nl/

daar kan je inloggen met de volgende gegevens.

Test account
Username: Demo
Password: Demo


hier de script van me pages die ik allemaal heb gemaakt.


index.php
HTML:
<form action="/Check/" method="post" id="l_form" style="margin: auto;" >
					<table>
						<tr>
							<td>
									<input type="text" name="username" value="username" />
									<br />
									<input type="password" value="password" name="password"  />
							</td>
						</tr>
						<tr>
							<td>
								<input type="submit" class="button" style="float: right; margin-right: 100px" value="Log in" />
							</td>
						</tr>
					</table>
				
				</form>


loguit.php
PHP:
<?php
	session_start();
	session_destroy(); {
	header('http://www.mabowebdesign.nl');
	exit();
	}
?>

panel.php
PHP:
<?php
session_start();
include('Check/index.php');
if(isset($_SESSION['username'])) {
header('Location: /Paneel');
}
?>
<h1>Welkom,</h1><?php echo $_username ?><br />
>> <a href="/Logout">Loguit</a>


Check.php met config erbij in. (en je de gegevens bij de connectie met database kloppen 100% maar heb voor veiligheid 4x * gedaan
PHP:
<?php
	$Host = '****'; //MySQL Host
	$Username = '****';  //MySQL Username
	$Password = '****'; //MySQL Password
	$Database = '****; //MySQL Database
	
	mysql_connect($Host, $Username, $Password)or die(mysql_error());
	mysql_select_db($Database)or die(mysql_error());
	
	session_start(); 

    $_username = mysql_real_escape_string($_POST['username']);
    $_password = md5($_POST['password']);
    $_count = mysql_num_rows(mysql_query("SELECT username, password FROM Login WHERE `username`='$_username' AND `password`='$_password'"));
    if($_count == 1) {
        $_SESSION['username'] = $_username;
        header('Location: ../Paneel');
    } else {
        header('Location: ../index.php');
    }
?>

.htaccess
Code:
RewriteEngine on
RewriteRule ^Check/?$ Check/index.php
RewriteRule ^Paneel/?$ panel.php
RewriteRule ^Logout/?$ loguit.php


iemand een idee ?

Mvg,
Marco Boekholt
 
je pagina doet niets <form action="/Check/" method="post" id="l_form" style="margin: auto;" >
in deze lijn moet je zeggen waar je formulier naar moet gaan bv van form.php naar login.php

ik zou je aanraden een op youtube te gaan en kijk naar het kannaal van phpacademy deze persoon legt het heel goed uit en bekijk zeker ook eens de site w3 schools meer bepaald bij record invoegen en select dan krijg je ook direct het antwoord op je vraag

geen nut dat ik het je nu allemaal zeg dan leer je ook niets bij ;) bij vragen zal ik natuurlijk graag beantwoorden
 
@alain1988
Wat is dat voor een antwoord? Ten eerste, die form code doet netjes zijn werk. Zoals jij het formuleert zou die form geen doel hebben. Dat heeft het weldegelijk, gezien de "action" tag netjes is ingevuld. Als je zijn .htaccess had gelezen, had je ook geweten dat /Check/ wel degelijk naar een pagina leidt. Dat het niets uitvoert is dus simpelweg onjuist.

Tevens, waarom verwijs je hem door naar andere sites? Dan kan hij beter gewoon helemaal geen thread starten.

-- On topic --
Marco, wat er hier fout gaat is dat je de gebruiker oneindig doorstuurt naar het gebruikerspaneel. Als de gebruiker aankomt op panel.php, controleer jij of hij is ingelogd. Als dat het geval is, stuur je hem opnieuw door naar panel.php (Location header). Dat betekend dat panel.php opnieuw word aangeroepen, opnieuw checkt of de user is ingelogd en opnieuw doorstuurt. Dit veroorzaakt een oneindige loop.

Oplossing: Controleer of de gebruiker is ingelogd. Als dat het geval is, laat je hem het paneel zien en stuur je hem dus *niet* door. Als de gebruiker nog niet is ingelogd, stuur je hem echter door naar de login pagina. Theorie naar praktijk:

PHP:
if(isset($_SESSION["username"]) == false) { // Controleer of user NIET is ingelogd
    header("Location: /login"); // Stuur door naar login pagina
    exit(); // Stop het script
}

Daaronder bouw je dan verder het paneel op dat mensen moeten zien als zij wel zijn ingelogd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan