ruttennicky
Legacy Member
Hallo allemaal,
Ik heb een klein probleempje bij het programmeren van een PHP script. Heb ervaring met het programmeren in PHP, maar krijg dit niet opgelost.
De situatie :
- Index.php met een include naar een login.php (de pagina waarop het inlogscript staat)
- Login.php : scriptpagina met het script om te checken in de db of de user bestaat (duh !
) en een setcookie.
index.php
Dus zoals je ziet is login geincluded en login() verwijst naar de functie login() in login.php
login.php
Als ik run dan krijg ik deze fout :
Warning: Cannot modify header information - headers already sent by (output started at /home/digitopie/domains/digitopie.be/public_html/Digitopie/index.php:8) in /home/digitopie/domains/digitopie.be/public_html/Digitopie/include/login.php on line 37
Ik heb deze fout al vaker gehad en opgelost met ob_start(); maar nu weet ik niet waar ik dit moet zetten (heb al verschillende zaken geprobeerd).
Kan iemand mij helpen met dit stom iets ?
Groetjes,
Nicky
Ik heb een klein probleempje bij het programmeren van een PHP script. Heb ervaring met het programmeren in PHP, maar krijg dit niet opgelost.
De situatie :
- Index.php met een include naar een login.php (de pagina waarop het inlogscript staat)
- Login.php : scriptpagina met het script om te checken in de db of de user bestaat (duh !
) en een setcookie.index.php
PHP:
<body>
<?php
include 'include/login.php';
?>
<div id="container">
<div id="header_loginform">
<div class="spacer">
<?php
login();
?>
</div>
</div>
login.php
PHP:
<?php
//Login script
//c 2009 Digitopie
include 'verbinden.php';
function login() {
function loggedinAction() {
$cookiestring = $_COOKIE['digitopie_cookie'];
$parameters = explode("&",$cookiestring);
echo("Welkom bij Digitopie, $naam $parameters[1] <br />Groep : $parameters[3] <br />Rol : $parameters[4]");
}
function inlogAction() {
if (isset($_POST['Inloggen'])) {
ob_start();
$gebruikersnaam = mysql_real_escape_string($_POST['txt_gebruikersnaam']);
$paswoord = sha1($_POST['txt_paswoord']);
if ($_POST['txt_gebruikersnaam'] != '' && $_POST['txt_paswoord'] != '') {
$loginquery = "SELECT p.Id, p.Naam, p.Voornaam, r.RolNaam, g.GroepsNaam
FROM (tblProfiel as p join tblRol as r on p.RolId = r.Id) join tblGroep as g on p.GroepId = g.Id
WHERE p.Gebruikersnaam = '$gebruikersnaam' AND p.Paswoord = '$paswoord'";
$loginqueryuitvoer = mysql_query($loginquery);
while($loginresultaat = mysql_fetch_object($loginqueryuitvoer)) {
/*
$_SESSION['id'] = $loginresultaat->Id;
$_SESSION['naam'] = $loginresultaat->Naam;
$_SESSION['voornaam'] = $loginresultaat->Voornaam ;
$_SESSION['groepsnaam'] = $loginresultaat->GroepsNaam;
$_SESSION['rolnaam'] = $loginresultaat->RolNaam;*/
$cookiecontent = $loginresultaat->Id . "&";
$cookiecontent .= $loginresultaat->Naam . "&";
$cookiecontent .= $loginresultaat->Voornaam . "&";
$cookiecontent .= $loginresultaat->GroepsNaam . "&";
$cookiecontent .= $loginresultaat->RolNaam;
ob_end_clean();
setcookie("digitopie_cookie",$cookiecontent,time()+3600);
loggedinAction();
}
}
else {
$loginfail = true;
echo("Gelieve een gebruikersnaam / paswoord in te geven");
}
}//end if
}
function showformAction() {
?>
<form method="post">
<ul id="menu">
<li><input type="text" name="txt_gebruikersnaam" value="Gebruikersnaam" /></li>
<li><input type="password" name="txt_paswoord" value="Paswoord" /></li>
<li><input type="submit" name="Inloggen" value="Inloggen" /></li>
</ul>
</form>
<?php
}
if (!isset($_COOKIE['digitopie_cookie'])) {
showformAction();
inlogAction();
}
else {
loggedinAction();
}
}
Als ik run dan krijg ik deze fout :
Warning: Cannot modify header information - headers already sent by (output started at /home/digitopie/domains/digitopie.be/public_html/Digitopie/index.php:8) in /home/digitopie/domains/digitopie.be/public_html/Digitopie/include/login.php on line 37
Ik heb deze fout al vaker gehad en opgelost met ob_start(); maar nu weet ik niet waar ik dit moet zetten (heb al verschillende zaken geprobeerd).
Kan iemand mij helpen met dit stom iets ?
Groetjes,
Nicky