Hey,
Jawel een probleem :
Warning: Cannot modify header information - headers already sent by (output started at C:\Documents and Settings\ik\Mijn documenten\Buitendegrenzen\public_html\buitendegrenzen\Chiro\index.php:14) in C:\Documents and Settings\ik\Mijn documenten\Buitendegrenzen\public_html\buitendegrenzen\Chiro\loginzelf.php on line 97

dat is de foutmelding die ik krijg op mijn pagina die ik hieronder zal plaatsen .
Ik krijg deze ook voor de 3 lijnen eronder wat ik namenlijk probeer te doen is cookies te zetten.

Dus ik ben gaan opzoeken waarom hij klaagt en dit is omdat cookies moeten geplaatst zijn voor je header ...
Maar ik denk dan oke ik zet het plaatsen van de cookie in een appart bestand en ik laat mijn pagina daar even naartoe gaan.
Maar als ik "header (location : cookies.php); of iets dergenlijks gebruik dan heb ik dezelfde problemen.

ik hoop dat iemand me kan helpen.
(het is voor een site die ik als school opdracht ben aan het maken vandaar)


<?
session_start()
?>

<?

												if(!IsSet($_SESSION['login'])) { //Nakijken als de sessie al bestaan moet de onderstaande code niet gebeuren !

//**********************************************Cookie controle ********************************************

if(isset($_COOKIE['login'])) { 

$username = $_COOKIE['username']; 
$pass = $_COOKIE['pass'];
$rank = $_COOKIE['rank'];
	include('Connections/chiroconnect.php');  // deze moet je aanpassen als je mijn script wil gebruiken Taguan (Kritof Verbeeck)
      $query = mysql_query("SELECT * FROM users WHERE username = '$username' and pass = '$pass'");
      $rij = mysql_fetch_array($query);

    
	$tellen = mysql_num_rows($query);
    if($tellen == 1) {
 
                
 	$verloopt_op = time() + 2592000;
	

//Cookies aanpassen (dit is voor de verlooptijd (ik ben eigenlijk niet zeker of het noodzakelijk is maar ik denk dat het zoiso geen kwaat kan) )
	setcookie("login", true, $verloopt_op);
	setcookie("pass", $rij['pass'], $verloopt_op);
	setcookie("username", $rij['username'], $verloopt_op);
	setcookie("rank", $rij['rank'], $verloopt_op);
	
// ************************** plaatsen sessie ******************* 

	
	     $_SESSION['login']=true;           
         $_SESSION["username"]= $rij['username']; 
         $_SESSION['rank']   = $rij['rank']; 
		 $_SESSION['pass']   = $rij['pass'];
		 
													$username = $_SESSION["username"];
  												 	print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  

		} //	if ($aantal_nr = 1 ) { 
		else { 
		echo("Raar maar u hebt een cookie van deze site maar uw naam staat niet in de database probeer uw cookies eens op te kuisen raad ik aan");
		} //else {
		
}  //if(isset($_COOKIE['login'])) { 
else {


//*************************************************EINDE COOKIE CONTROLE***********************************
if(isset($_POST['Submit'])) {


   $username = trim(strtolower($_POST['username']));
   $pass = $_POST['pass'];
   $bericht = "Foute invoer voor het inloggen <br>.";
   $correctelogin = "false";   // steeds bijhouden als er iets mis gaat dan kan ik achteraf een bericht weergeven.
   if(strlen($username) <= 1 or strlen($username) >=15){
      $dead = "true";
      $bericht = $bericht."Username (2-14)<br>";
	     $correctelogin = "true";
   } //if(strlen($username) <= 1 or strlen($username) >=15){
   
   if(strlen($pass) < 6 or strlen($pass) > 20) {
      $bericht = $bericht."Paswoord (4-20)<br>";
	     $correctelogin = "true";
    }  //if(strlen($pass) < 6 or strlen($pass) > 20) {
	
//Als alles nog correct is dan gaan we in de database zoeken !
   if($correctelogin = "false"){
      include('Connections/chiroconnect.php');
	  	$pass="chiro".$pass."kwiks";

		$pass=sha1(md5($pass));
      $query = mysql_query("SELECT * FROM users WHERE username = '$username' and pass = '$pass'");
      $rij = mysql_fetch_array($query);  
	
	$tellen = mysql_num_rows($query);
    if($tellen == 1) {
	
	
	     $_SESSION['login']=true;           
         $_SESSION["username"]= $rij['username']; 
         $_SESSION['rank']   = $rij['rank']; 
		 $_SESSION['pass']   = $rij['pass'];
		 
													$username = $_SESSION["username"];
  												 	print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  
		//if(form.cookie.checked == true) {											
	if ($_POST['cookie'] == "checkbox" ) {

		$verloopt_op = time() + 2592000;
	setcookie("login", true, $verloopt_op);
	setcookie("pass", $rij['pass'], $verloopt_op);
	setcookie("username", $rij['username'], $verloopt_op);
	setcookie("rank", $rij['rank'], $verloopt_op);
	
	echo("Cookie geplaatst. <br>");
	
	}  //if ($_POST['cookie'] == "on" ) {
	else {
	echo("Geen cookie. <br>");
	}  //	else {
	
	}  //if ($totalRows_rij == 1 ) {
	else {
	echo ("Verkeerd paswoord of verkeerde username. <br>");
	
	//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
	?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?

	
	}  //else {
	}  // if($correctelogin = false){
	else {
	echo($bericht);
	
	//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
	?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?

	
	} // 	else {
	
	
}  //if(isset($_POST['submit'])) {
else {
//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?
}  //else {
} //if(isset($_COOKIE['login'])) { 
											}   //if(!IsSet($_SESSION['login'])) {
											else {
											if($_SESSION["login"] == "true") {
												$username = $_SESSION["username"];
  												 print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  
											}
											else { //	if($_SESSION["login"] == "true") {
													echo("Er is iets mis gegaan met de sessie.");
												 }
											} //else {


?>


als ik het invoeg in een andere pagina gebruik ik include (); onderaan de pagina zodat het FORM onderaan word weergegeven.
ob_start() al geprobeerd aan het begin van de pagina?

of

session_start() en ob_start() beiden al net boven line 97 geprobeerd?
<?
session_start()
?>

<?

Wordt

<?
session_start()
?><?
en is er geen enkele manier om vanuit het script als je al wel delen kan hebben gestuurt naar je brower en toch naar een andere pagina wordt gestuurd ?
ik had dat ook maar toen heb ik mijn session start net boven de <html> tag gezet en toen was het opgelost
kristof schreef op 26.01.2007 18:29
en is er geen enkele manier om vanuit het script als je al wel delen kan hebben gestuurt naar je brower en toch naar een andere pagina wordt gestuurd ?

Jawel; met JavaScript:


<?php
    echo '<script type="text/javascript">';
    echo 'window.location="depaginawaarjenaartoewilt.php"';
    echo '</script>';
?>

[edit]In een inlogscript zou ik dat trouwens afraden.[/edit]
ja met de session had ik het probleem al een aantal keer gehad en dan ook opgelost gekregen maar hier raakte ik niet uit .

ik benhet nu met het java script aan het aanpassen en tot nu toe werkt dat prima ik zal de oplossing jier komen plaatsen !!

MAAR ALVAST MERCIKES !!
1ste post rekt uit :P lol <-- nutteloos sorry ;p
oké, zoals beloofd kom ik hier zetten wat ik er heb van gemaakt :)
ik moet nog wel een deel van de code uitkuisen (veel overbodige dingen doordat ik nu met een extern bestand werk voor de cookie)

en ik heb nog 1 probleem maar ik ben het bestandje nu grondig beu dus ik zal morge verder zoeken achter de oorzaak :)
maar ik geraak niet meer uitgelogd :( hij vind steeds de cookie terweil dat ik alle gegevens eruit haal (ik word er zot van).

loginzelf.php

<?
session_start();
?>

<?

												if(!IsSet($_SESSION['login'])) { //Nakijken als de sessie al bestaan moet de onderstaande code niet gebeuren !

//**********************************************Cookie controle ********************************************

if($_COOKIE['login'] == "true") { 

$username = $_COOKIE['username']; 
$pass = $_COOKIE['pass'];
$rank = $_COOKIE['rank'];
	include('Connections/chiroconnect.php');  // deze moet je aanpassen als je mijn script wil gebruiken Taguan (Kritof Verbeeck)
      $query = mysql_query("SELECT * FROM users WHERE username = '$username' and pass = '$pass'");
      $rij = mysql_fetch_array($query);

    
	$tellen = mysql_num_rows($query);
    if($tellen == 1) {
 
    echo '<script type="text/javascript">';
    echo 'window.location="cookieplaatsen.php?user='.$rij['username'].'&pass='.$rij['pass'].'"';
    echo '</script>';
	                
 	$verloopt_op = time() + 2592000;
	

//Cookies aanpassen (dit is voor de verlooptijd (ik ben eigenlijk niet zeker of het noodzakelijk is maar ik denk dat het zoiso geen kwaat kan) )
	setcookie("login", true, $verloopt_op);
	setcookie("pass", $rij['pass'], $verloopt_op);
	setcookie("username", $rij['username'], $verloopt_op);
	setcookie("rank", $rij['rank'], $verloopt_op);
	
// ************************** plaatsen sessie ******************* 

	
	     $_SESSION['login']=true;           
         $_SESSION["username"]= $rij['username']; 
         $_SESSION['rank']   = $rij['rank']; 
		 $_SESSION['pass']   = $rij['pass'];
		 
													$username = $_SESSION["username"];
  												 	print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  

		} //	if ($aantal_nr = 1 ) { 
		else { 
		echo("Raar maar u hebt een cookie van deze site maar uw naam staat niet in de database probeer uw cookies eens op te kuisen raad ik aan");
		} //else {
		
}  //if(isset($_COOKIE['login'])) { 
else {


//*************************************************EINDE COOKIE CONTROLE***********************************
if(isset($_POST['Submit'])) {


   $username = trim(strtolower($_POST['username']));
   $pass = $_POST['pass'];
   $bericht = "Foute invoer voor het inloggen <br>.";
   $correctelogin = "false";   // steeds bijhouden als er iets mis gaat dan kan ik achteraf een bericht weergeven.
   if(strlen($username) <= 1 or strlen($username) >=15){
      $dead = "true";
      $bericht = $bericht."Username (2-14)<br>";
	     $correctelogin = "true";
   } //if(strlen($username) <= 1 or strlen($username) >=15){
   
   if(strlen($pass) < 6 or strlen($pass) > 20) {
      $bericht = $bericht."Paswoord (4-20)<br>";
	     $correctelogin = "true";
    }  //if(strlen($pass) < 6 or strlen($pass) > 20) {
	
//Als alles nog correct is dan gaan we in de database zoeken !
   if($correctelogin = "false"){
      include('Connections/chiroconnect.php');
	  	$pass="chiro".$pass."kwiks";

		$pass=sha1(md5($pass));
      $query = mysql_query("SELECT * FROM users WHERE username = '$username' and pass = '$pass'");
      $rij = mysql_fetch_array($query);  
	
	$tellen = mysql_num_rows($query);
    if($tellen == 1) {
	
	
	     $_SESSION['login']=true;           
         $_SESSION["username"]= $rij['username']; 
         $_SESSION['rank']   = $rij['rank']; 
		 $_SESSION['pass']   = $rij['pass'];
		 
													$username = $_SESSION["username"];
  												 	print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  
		//if(form.cookie.checked == true) {											
	if ($_POST['cookie'] == "checkbox" ) {

    echo '<script type="text/javascript">';
    echo 'window.location="cookieplaatsen.php?user='.$rij['username'].'&pass='.$rij['pass'].'"';
    echo '</script>';

		$verloopt_op = time() + 2592000;
	setcookie("login", true, $verloopt_op);
	setcookie("pass", $rij['pass'], $verloopt_op);
	setcookie("username", $rij['username'], $verloopt_op);
	setcookie("rank", $rij['rank'], $verloopt_op);
	
	echo("Cookie geplaatst. <br>");
	
	}  //if ($_POST['cookie'] == "on" ) {
	else {
	echo("Geen cookie. <br>");
	}  //	else {
	
	}  //if ($totalRows_rij == 1 ) {
	else {
	echo ("Verkeerd paswoord of verkeerde username. <br>");
	
	//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
	?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?

	
	}  //else {
	}  // if($correctelogin = false){
	else {
	echo($bericht);
	
	//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
	?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?

	
	} // 	else {
	
	
}  //if(isset($_POST['submit'])) {
else {
//  Als je mijn script wil gebruiken als een apparte pagina en niet include gebruiken moet je hieronder bij action loginzelf.php zetten en niet index.php (groeten Taguan)
?>
<form name="form1" method="post" action="index.php">
Username :
<input name="username" type="text" id="username">

Paswoord :
<input name="pass" type="password" id="pass">
 Cookie :
 <input name="cookie" type="checkbox" id="cookie" value="checkbox">
 <input type="submit" name="Submit" value="Invoeren">
 <a href="usermaken.php">registreren</a>
</form>
<?
}  //else {
} //if(isset($_COOKIE['login'])) { 
											}   //if(!IsSet($_SESSION['login'])) {
											else {
											if($_SESSION["login"] == "true") {
												$username = $_SESSION["username"];
  												 print "Hey " . $username . ",<br> <a href=logout.php>log uit.</a>";    //   Printen van welkomsbericht !  
											}
											else { //	if($_SESSION["login"] == "true") {
													echo("Er is iets mis gegaan met de sessie.");
												 }
											} //else {


?>


cookieplaatsen.php

<?
session_start();
if(isset($_GET['user'])){
      include('Connections/chiroconnect.php');

		$username = $_GET['user'];
		$pass=$_GET['pass'];
      $query = mysql_query("SELECT * FROM users WHERE username = '$username' and pass = '$pass'");
      $rij = mysql_fetch_array($query);  
	
	$tellen = mysql_num_rows($query);
    if($tellen == 1) {
	
	
	     $_SESSION['login']=true;           
         $_SESSION["username"]= $rij['username']; 
         $_SESSION['rank']   = $rij['rank']; 
		 $_SESSION['pass']   = $rij['pass'];
										

		$verloopt_op = time() + 2592000;
	setcookie("login", "true", $verloopt_op);
	setcookie("pass", $rij['pass'], $verloopt_op);
	setcookie("username", $rij['username'], $verloopt_op);
	setcookie("rank", $rij['rank'], $verloopt_op);

	echo("Cookie geplaatst. <br>");
	

	}  //  if($tellen == 1) {
}  //   if(isset($_GET['user'])){

echo '<script type="text/javascript">';
echo 'window.location="index.php"';
echo '</script>';
	
	?>


logout.php

<?php 
session_start(); 
session_destroy();
session_start();
if(isset($_COOKIE['login'])) { 

 	$verloopt_op = time() - 2592000;
	setcookie("login", "false", $verloopt_op);
	setcookie("pass", "", $verloopt_op);
	setcookie("username", "", $verloopt_op);
	setcookie("rank", "", $verloopt_op);
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>CHIRO-KETEN-Lint</title>
<link href="chiro.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div>
<?
include ("kop.php");
            //sessie is weg
   print "Je bent nu niet meer ingelogd (normaal gezien).";
   print "<br><a href=index.php>HOME</a>";

include ("voet.php");
?>
</div>
</body>
</html>


index.php (niet echt supper nuttig maar voor een idee te hebben waarom ik het onderaan wil :) )

<?php 
session_start(); 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>CHIRO-KETEN-Lint</title>
<link href="chiro.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?
include ("kop.php");
?>
<div>

<table width="780" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="185" height="164" valign="top"><br />
	  <? include("menuafdelingen.php"); ?> </td>
    <td width="595" valign="top">
	
	
	<table width="595" border="0" cellpadding="0" cellspacing="0" bordercolor="#FF0000">
  <!--DWLayoutTable-->
  <tr>
    <td width="445" rowspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="13" height="100">&nbsp;</td>
    <td width="100" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
  </tr>
  <tr>
    <td height="56">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
	
	
	
	
	</td>
    </tr>
</table>
</div>
<?
include ("voet.php");
?>

</body>
</html>



in de voet zit dan nog eens een include naar login.php
het werkt VOLLEDIG je moet alleen de include("voet.php"); uit de pagina logout halen

Reageren