probleempje met een php inlog script.

Pagina: 1
Acties:
  • 194 views

Acties:
  • 0 Henk 'm!

  • Douw3rd
  • Registratie: Januari 2010
  • Laatst online: 23-04-2023
Ik heb een simpel php inlog scriptje geschreven, alleen gaat er iets fout, en ik vermoed dat het bij de sessies ligt.
Heeft iemand enig idee wat ik fout doe?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Login form:


<html>
<head>
<title> Admin Login </title>
<link href="loginlayout.css" rel="stylesheet" type="text/css" />
</head>
<body class="banner">


<form name="login" method="post" action="logincheck.php">
<p> </p>
<table border="0" width="225" align="center" bgcolor="#FFFFFF">
<tr>
<td width="219" bgcolor="#333333">
<p align="center"><strong><font color="white">Admin Login</font></strong></p> </td>
</tr>
<tr>
<td width="219">
<table border="0" width="220" align="center" bgcolor="#BFAE80">
<tr>
<td width="71"><span style="font-size:10pt;">Username:</span></td>
<td width="139"><input type="text" name="name"></td>
</tr>
<tr>
<td width="71"><span style="font-size:10pt;">Password:</span></td>
<td width="139"><input type="password" name="password"></td>
</tr>
<tr>
<td width="71"> </td>
<td width="139">
<p align="right"><input type="submit" name="submit" value="Login"></p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="219" bgcolor="#333333"> </td>
</tr>
</table>
</form>


</body>
</html>
~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

logincheck.php:


<?php
require 'dbconnection.php' ;

$name = $_POST['name'];
$password = $_POST['password'];

$Success=0;

$result=mysql_query("SELECT * FROM admin
WHERE name='$name'
AND password='$password'") or die(mysql_error());

while ($row=mysql_fetch_array($result))
{
$Success=1;
}
if($Success ==1)
{
session_start();
$_SESSION["login"]=$_POST['login'];
header('Location: gelukt.php');
}
else
{
print ("<center><b>The user/password information you provided was incorrect, please try again!</b></center>");
include "login.html";
}
?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Het gelukt.php is een pagina als test om te weergeven als het gelukt is. Dit staat er in om te checken of je echt ingelogt bent:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<?php

session_start();
if(!isset($_SESSION["login"]))
{
header('Location: login.html');
}

else
{
print ("lalalala gelukt!!1");
}


?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Verder is er nog een dbconnection.php bestandje. Bij het opgeven van foutieve informatie bij het inloggen krijg ik de foutmelding te zien zoals het hoort. Alleen als ik juiste informatie opgeef, wordt ik terug naar de login gestuurd. Ik denk dat ik iets fout doe met de sessies, maar ik kom er maar niet achter wat. Iemand een idee?

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 18-09 19:18
Wat gaat er precies fout? Krijg je een foutmelding? Heb je al gedebugd?

[ Voor 16% gewijzigd door dev10 op 08-04-2010 15:04 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Begin eens met [code] tags zeg... En wat gaat er fout?

Edit: Als het je bedoeling is bij succes naar gelukt.php te forwarden klopt dit volgens mij niet:
PHP:
1
2
3
4
if(!isset($_SESSION["login"]))
{
  header('Location: login.html');
}

[ Voor 63% gewijzigd door Hydra op 08-04-2010 15:07 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Gebruik eens [code] tags. [code=html] en [code=php]. (Lees ook de FAQ voor je een topic post!)

De fout zit hem in het feit dat je in $_SESSION['login'] de waarde van $_POST['login'] gaat steken. Maar er zit helemaal niets in $_POST['login'].

Edit: bekijk ook eens hoe je moet debuggen: NMe in "Programming FAQ - Algemeen"

[ Voor 18% gewijzigd door Tharulerz op 08-04-2010 15:07 ]


Acties:
  • 0 Henk 'm!

  • X_lawl_X
  • Registratie: September 2009
  • Laatst online: 19-09 09:07
Als ik jou was zou ik even kijken naar mysql_real_escape_string(), anders wordt het inloggen wel heel erg makkelijk...

[ Voor 49% gewijzigd door X_lawl_X op 08-04-2010 15:08 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Douw3rd schreef op donderdag 08 april 2010 @ 14:59:
Heeft iemand enig idee wat ik fout doe?
Ja hoor ;)
1) Je gebruikt geen code tags
2) Je hebt de Quickstart niet gehanteerd toen je dit topic opende
3) We doen niet aan Kan iemand even...?-topics ;)
4) Je vermeldt veel te weinig informatie (foutmeldingen etc.) in je topicstart

[ Voor 7% gewijzigd door RobIII op 08-04-2010 15:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.