Simpele header redirect wil niet werken...
{
//Connectie met de databank
include("inc_connect.php");
$naam = $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$sqlSelect = "select * from admin where A_NAAM = '".$naam."' and A_WACHTWOORD = '".$wachtwoord."'";
$resultaatset = mysql_query($sqlSelect) or die (mysql_error());
$rij = mysql_fetch_array($resultaatset);
//$rol = $rij["A_ROL"];
if(mysql_num_rows($resultaatset) == 0)
{
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["username"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("Location: overzicht.php");
exit;
}
}
Dit is mijn php code. Als ik foutieve login gegevens invoer op mijn server toont hij wat hij moet tonen, namelijk: echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
Als ik JUISTE login gegevens invoer geeft hij een error:
Warning: Cannot modify header information - headers already sent by (output started at /customers*****/index.php:13) in /customers/****/index.php on line 38
Kan iemand me helpen?
Gewijzigd op 01/01/1970 01:00:00 door Robin
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["username"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("Location: overzicht.php");
}
else
{
//Correct ingelogd
$_SESSION["username"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("Location: overzicht.php");
er mag geen echo plaatsvinden voor een header redirect
lees hier: http://nl.php.net/header
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
Die code die jij intypt, is toch volledig dezelfde als de mijne? en er staat geen echo voor mijn redirect...
staat boven
dus: output voor je header. dus error. lees mijn link eens dan zie je wat ik bedoel, er mag geen, 0, niks, noppes, nada aan output zijn voor je je header aanroept.
die echo doet hij alleen als de inlog gegevens incorrect zijn..., dus dat heeft toch niets te maken met de redirect? En ik heb deze code al gebruikt voor een gastenboek, en daar werkte het wel. Zou het aan mijn hosting kunnen liggen?
Zie dus lijn 13 van je code. Daar staat output welke VOOR de header staat.
Ligt niet aan je hosting... (tenzij die een advertentie bovenaan plaatst in je code, wat ik niet verwacht)
Nu ja. Ik zie ook geen output.
Dit is waarschijnlijk niet de volledige code.
Wat staat er op lijn 13 (en omstreken)?
De code die je schreef, telt geen 38 lijnen, dus je zal output verzonden hebben voor de lijn
if (!empty($_POST))
op lijn 13:
De voledige code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>VbInlogPagina</title>
<meta http-equiv = "content-type" content = "text/html; charset = utf-8" />
<link href = "Stylesheets/stylesheet1.css" type = "text/css" rel = "stylesheet" />
</head>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if(!empty($_POST))
{
//Connectie met de databank
include("inc_connect.php");
$naam = $_POST["naam"];
$wachtwoord = $_POST["wachtwoord"];
$sqlSelect = "select * from admin where A_NAAM = '".$naam."' and A_WACHTWOORD = '".$wachtwoord."'";
$resultaatset = mysql_query($sqlSelect) or die (mysql_error());
$rij = mysql_fetch_array($resultaatset);
//$rol = $rij["A_ROL"];
if(mysql_num_rows($resultaatset) == 0)
{
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["naam"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("location: overzicht.php");
}
}
?>
if(!empty($_POST))
{
//Connectie met de databank
include("inc_connect.php");
$naam = $_POST["naam"];
$wachtwoord = $_POST["wachtwoord"];
$sqlSelect = "select * from admin where A_NAAM = '".$naam."' and A_WACHTWOORD = '".$wachtwoord."'";
$resultaatset = mysql_query($sqlSelect) or die (mysql_error());
$rij = mysql_fetch_array($resultaatset);
//$rol = $rij["A_ROL"];
if(mysql_num_rows($resultaatset) == 0)
{
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["naam"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("location: overzicht.php");
}
}
?>
<h1>Inlogformulier</h1>
<form name="form1" method = "post" action = >
<table align = "center" border = "0" >
<tr>
<td>Gebruikersnaam</td>
<td colspan = "2"><input type="text" name = "naam" /></td>
</tr>
<tr>
<td>Wachtwoord</td>
<td colspan = "2"><input type="password" name = "wachtwoord" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name = "InlogKnop" value = "Login" /></td>
<td align = "right"><input type="reset" name = "ResetKnop" value = "Reset" /></td>
</tr>
</table>
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Robin
Die
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>...
mag niet verzonden worden.
Zorg er voor dat de php logica helemaal bovenaan staat.
Dus iets als
Het is gelukt!
Robin schreef op 06.10.2008 14:56:
if(!empty($_POST))
{
//Connectie met de databank
include("inc_connect.php");
$naam = $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$sqlSelect = "select * from admin where A_NAAM = '".$naam."' and A_WACHTWOORD = '".$wachtwoord."'";
$resultaatset = mysql_query($sqlSelect) or die (mysql_error());
$rij = mysql_fetch_array($resultaatset);
//$rol = $rij["A_ROL"];
if(mysql_num_rows($resultaatset) == 0)
{
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["username"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("Location: overzicht.php");
exit;
}
}
Kan iemand me helpen?
{
//Connectie met de databank
include("inc_connect.php");
$naam = $_POST["username"];
$wachtwoord = $_POST["wachtwoord"];
$sqlSelect = "select * from admin where A_NAAM = '".$naam."' and A_WACHTWOORD = '".$wachtwoord."'";
$resultaatset = mysql_query($sqlSelect) or die (mysql_error());
$rij = mysql_fetch_array($resultaatset);
//$rol = $rij["A_ROL"];
if(mysql_num_rows($resultaatset) == 0)
{
echo "<p align = \"center\">Niet correct ingelogd - Nieuwe Poging</p>";
}
else
{
//Correct ingelogd
$_SESSION["username"] = $naam;
$_SESSION["wachtwoord"] = $wachtwoord;
header("Location: overzicht.php");
exit;
}
}
Kan iemand me helpen?
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Robin
probeer eens met ob_start(); bovenaan in je script te plaatsen en onderaan in je script ob_end_flush();
Zorg gewoon dat je scripts goed in elkaar zitten, dan heb je dit soort smerige oplossingen helemaal niet nodig. Dus eerst alle PHP logica afhandelen en dan pas output naar de browser versturen.