hallo,

ik heb zelf een webshop gemaakt.
ben er mee bezig.
ben nu bezig met een login systeem eraan te koppelen.

maar als ik inlog krijg ik eerst dit:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\webshop\inc_connect_mysql.php:12) in D:\xampp\htdocs\webshop\index.php on line 27

dit is regel 19 t/m 31 van index.php:
else
{
while($row = mysql_fetch_assoc($query))
{
$user_id = $row['user_id'];
}

$_SESSION['user_id'] = $user_id;
header("Location: index.php");

}
}
else

wat is het probleem hiervan? kan iemand me dat vertellen?

bijvoorbaart dank!
Er is output voordat je headers gaat versturen.
Dus er staat of ergens een echo, of een stuk html, of misschien een spatie voor je <?php tag.

Als je erop google vind je ook al enorm veel informatie hierover.
dit is vanaf regel 1 tot en met 32:
<?php
error_reporting(E_ALL);
session_start();
include("inc_connect_mysql.php");

if(!isset($_SESSION['user_id']))
{
if(isset($_POST['login']))
{
$query = mysql_query("SELECT * FROM tbl_users WHERE user_name = '" . $_POST['username'] . "' AND user_pass = '" . md5($_POST['password']) . "'");
$result = mysql_num_rows($query);

if(empty($result))
{
echo "<script>alert('Login Incorrect.'); document.location.href=('index.php')</script>";
}
else
{
while($row = mysql_fetch_assoc($query))
{
$user_id = $row['user_id'];
}

$_SESSION['user_id'] = $user_id;

}
}
else
{


?>

als ik de zin weg haal krijg ik de melding niet.. maar hij laad de pagina niet.
lijkt wel of hij hem ergens blokt?
ik moet de pagina nog een keer herladen voordat ik hem helemaal goed zie...
Je verstuurt data terwijl je pagina of nee, je PHP nog bezig is. Dan krijg je dus die headers. Wat ik zelf (!!) altijd doe, is een outputbuffer er om heen bouwen.

Velen zullen het hier niet echt mee eens zijn, maar het werkt wel altijd. Het is of dat, of je code omzetten, opdat je alle variabelen pas op het einde afwikkelt. Mijn persoonlijke voorkeur gaat dus uit naar de ob_start(); ob_flush();
Je output shit @ line 15.
Daarnaast had je dit forum wat beter door kunnen zoeken, dit is een teveel voorkomende fout.

Merijn Venema op 20/09/2010 12:26:58

Velen zullen het hier niet echt mee eens zijn, maar het werkt wel altijd. Het is of dat, of je code omzetten, opdat je alle variabelen pas op het einde afwikkelt. Mijn persoonlijke voorkeur gaat dus uit naar de ob_start(); ob_flush();


Misschien moet je iemand die net leert programmeren de juiste wijze aanleren ipv je persoonlijke voorkeur....
ik heb regel 15 even snel vervangen door dit:

echo ("Login Incorrect <a href=\"#\" onClick=\"history.back()\"> Terug </a>");

als ik inlog met goede gegevens krijg ik een witte pagina.
als ik hem dan herlaad komt hij wel goed te staan.

wat kan daar de oorzaak van zijn?
Zie de error; Je output begint op regel 12 in inc_connect_mysql.php.
Robin Pruijssen op 22/09/2010 14:23:22

dit kan gesloten worden!

Topics sluiten doen we in dit geval niet, anderen hebben wellicht nog een vraag over jouw oplossing en kunnen deze dan in dit topic kwijt ;-)

Reageren