script wil cookie niet aanmaken

Status
Niet open voor verdere reacties.

janusvl

Gebruiker
Lid geworden
11 apr 2009
Berichten
159
ik heb het volgende script:

PHP:
<?php
$email = $_COOKIE['email'];

if($_COOKIE['email'] == ""){

if($_POST['post']){
$mail = $_POST['email'];
include('verbinding.php');
 $check = mysql_query ("SELECT * FROM `gadget` WHERE email = '$mail' LIMIT 1"); /* >>limit<< is just to make it faster in case the db is huge */
if(mysql_num_rows($check) != 0){
Setcookie("email", $mail, Time()+3600*24*7*54);
?>
	  <script language=javascript>
		document.location.href="index.php";
		</script>
<?
}else{
echo"gebruiker niet bekend";
}
}
?>
<body bgcolor="#FFFFFF">
U dient eerst inloggen
<form method='post' target='_self'>

<table>
<tr><td>email:</td><td> <input type='text' name='email'></td></tr>	
</table>			
<input type='submit' name='post' value='Login'>
</form>
<br>
<b><a href="aanmelden.php">Geen acount maak hem hier in 5 seconden</a></b>
</center>
</body>
<?

}else{



maar nu wordt de cookie niet gezet

weet iemand wat ik fout doe?

janus
 
Probeer eens:

PHP:
setcookie("email", $mail, time()+3600*24*7*54);

Als dat niet werkt (moet je het alsnog als bovenstaande laten staan), kun je

PHP:
if($_COOKIE['email'] == ""){

nog vervangen door:

PHP:
if(!isset($_COOKIE['email'])){

,

PHP:
if($_POST['post']){

vervangen door:

PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST'){

En als het dan nog niet werkt, dan komen er waarschijnlijk geen resultaten terug uit je database.
 
Probeer eens:

PHP:
setcookie("email", $mail, time()+3600*24*7*54);

Als dat niet werkt (moet je het alsnog als bovenstaande laten staan), kun je

PHP:
if($_COOKIE['email'] == ""){

nog vervangen door:

PHP:
if(!isset($_COOKIE['email'])){

,

PHP:
if($_POST['post']){

vervangen door:

PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST'){

En als het dan nog niet werkt, dan komen er waarschijnlijk geen resultaten terug uit je database.

helaas. Maar er komt wel iets terug van de database je wordt namelijk wel doorgestuurd aleen de cookie wordt niet gemaakt

ik heb nu:

PHP:
<?php
$email = $_COOKIE['email'];


if(!isset($_COOKIE['email'])){


if($_SERVER['REQUEST_METHOD'] == 'POST'){
$mail = $_POST['email'];
include('verbinding.php');
 $check = mysql_query ("SELECT * FROM `gadget` WHERE email = '$mail' LIMIT 1"); /* >>limit<< is just to make it faster in case the db is huge */
if(mysql_num_rows($check) != 0){

setcookie("email", $mail, time()+3600*24*7*54);

?>
	  <script language=javascript>
		document.location.href="index.php";
		</script>
<?
}else{
echo"gebruiker niet bekend";
}
}
?>
<body bgcolor="#FFFFFF">
U dient eerst inloggen
<form method='post' target='_self'>

<table>
<tr><td>email:</td><td> <input type='text' name='email'></td></tr>	
</table>			
<input type='submit' name='post' value='Login'>
</form>
<br>
<b><a href="aanmelden.php">Geen acount maak hem hier in 5 seconden</a></b>
</center>
</body>
<?

}else{

ik hoop dat iemand het probleem nog ziet?

janus
 
opzoeken of de cookie voorkomt bij mij cookies

en dat komt hij niet

het vreemde is als ik het inlog stuk weg laat en meteen de cookie neer laat zetten dan doet hij het wel:S


janus
 
ik heb een ander script gepakt om te kijken ik ben nu iets verder:

Warning: Cannot modify header information - headers already sent by (output started at /home/janus321/domains/321computers.nl/public_html/gadget/verbinding.php:1) in /home/janus321/domains/321computers.nl/public_html/gadget/index.php on line 29
Ingelogd een moment

PHP:
<?php
$email = $_COOKIE['email'];

if(!isset($_COOKIE['email'])){


if($_POST['post']){
	// (submit titel)


$email = $_POST['email'];

include("verbinding.php");
 
 		$login_check = mysql_query("SELECT * FROM gadget WHERE email = '$email' LIMIT 1");
		// er worden alle records in de tabel 'gebruikers' geselecteerd

		if(mysql_num_rows($login_check) == 0){

			// er zijn 0 records geselecteerd, de gebruiker heeft dus geen goede gegevens opgegeven.
			echo "Niet ingelogd";
}else{ 
			
  $query = "SELECT * FROM gadget WHERE email = '$email'";
  $result = mysql_query($query) or die ("Mislukt88!");
while($obj=mysql_fetch_object($result)){
	$id = $obj->email;
}
setcookie("email", $id, time() + 3600); 
 
echo"Ingelogd een moment";
?>
<!--<body onLoad="window.top.location='index.php'">--> 
<?
}
}
?>
<head>
<title>inloggen</title>
</head>
<center>
<body>
<form method='post' target='_self'>

<table>
<tr><td>email:</td><td> <input type='text' name='email'></td></tr>
</table>


	<input type='submit' name='post' value='login'>
</form>
</center>
</body>
<br>
<b><a href="aanmelden.php">Geen acount maak hem hier in 5 seconden</a></b>
</center>
</body>
<?

}else{

wat ik had was een werkend script nu deze nog

janus
 
Dat betekent meestal dat er al output gestuurd is. Dat kan zo weinig zijn als een spatie. Als er output is gestuurd, zijn ook de zogenaamde headers al verstuurd. Het setten van een cookie wordt ook middels een header gedaan. Dat kan dan dus niet meer.

Ik zou even kijken of er nog iets boven de PHP code staat, een enter / en spatie, etc...

[EDIT]
Er zou ook output uit verbinding.php kunnen komen.
[/EDIT]
 
Mijn dank ik groot.

Het was een spatie die voor <?php in verbinding.php stond
nu werkt het

danku

janus
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan