PHP error met ledenscript
Ik ben bezig met een ledenscript in mijn layout te ''zetten'', maar als ik inlog op de login.php dan geeft hij deze error na het inloggen:
Warning: Cannot modify header information - headers already sent by (output started at /home/humor4li/domains/humor4life.nl/public_html/Members/login.php:11) in /home/humor4li/domains/humor4life.nl/public_html/Members/login.php on line 97
En op de 97e regel staat dit, hier gaat het ook om:
header("Location: index.php");
En mijn vraag is nu: WAT moet ik hieraan aanpassen om te zorgen dat ik die error niet krijg?
Alvast bedankt!
Daar zit het probleem en dat zul je moeten aanpakken.
Ik ben (nog) niet zo heel goed met PHP (dit is een beetje bedoelt om te oefenen) maar bedoel je nou dat het probleem de ''enters'' zijn?
Je begint net met PHP en je wil 'even' een ledensysteem in je layout kopieren?
Begin bij de basis! Vergeet wat je nu allemaal wil en ga PHP leren! Vanaf het begin!
Dit is eigenlijk bedoelt om een beetje te oefenen, zien hoe het werkt.
ik ben al bij het begin begonnen...
Op regel 11 in je script zorg jij voor output naar de browser terwijl je op regel 97 nog eens header aanroept. Dat kan niet! Het gaat niet om de enters in je php script, het gaat om de output die je naar de browser verstuurt...
Onzin dat je al bij het begin begonnen bent, dit is zinnen proberen te maken terwijl je je naam nog niet eens kan schrijven.
<script language="JavaScript" type="text/javascript">
Maar daar ''zit'' ie nog in de layout.
En anders in de 11de regel van het script is het dit:
$a = "Je gebruikersnaam en/of je wachtwoord zijn INcorrect.<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
@Wes
Ik probeer hiervan te leren om het scriptje zoveel mogelijk aantepassen, maar dan moet ik wel weten wát ik fout doe!
Wat je overigens net zegt over regel 11de regel, dat is inderdaad het probleem.
Er mag géén enkele output zijn voor een header functie!
Helemaal niet dus!
Wat doe je dus? Eerst PHP code, dan de layout en dan op de goede plek een nieuw PHP blok met daarin de aanroep om de juiste data naar het scherm te schrijven.
Ik ben bezig met een ledenscript in mijn layout te ''zetten''
En ik zeg dat ik bezig ben met dat in mn layout te zetten, niet dat ik het heb gemaakt!!
Quote:
Dit is toch output verzenden naar de browser?!?<script language="JavaScript" type="text/javascript">
Voordat header() aangeroepen wordt mag er nog 0,0 (ook wel: niets, noppes, nada, geen enkele, niet iets, enz.) output naar de browser verzonden worden. Dus voordat die functie aangeroepen wordt, kun je ook geen HTML naar de browser sturen. Dit gaat dus ook niet werken:
Zorg dat je de logica (php) en output (html) gescheiden houdt! Dus:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Blanche schreef op 11.12.2007 16:28:
Dit betekent dus dat je alle php code aan het begin van je script hebt staan en de output pas aan het einde. Als je in PHP output genereert sla je die tijdelijk op in een variabele of array. Pas als alle logica afgehandeld is, ga je die output naar de browser sturen...Zorg dat je de logica (php) en output (html) gescheiden houdt!
ps. De functie session_register() stamt nog uit de middeleeuwen. Deze syntax is meer van deze tijd:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Maar als ik de php code in het begin doe, dan komt die ook helemaal bovenaan te staan, en dat wil ik dus niet!
Hoe ziet je script er nu uit dan?
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?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>
<title>Humor 4 Life |:| LedenGedeelte |:| Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
<meta name="Title" content="Humor 4 Life">
<meta name="Author" content="Kees Kluskens">
<meta name="Description" content="Want een dag niet gelachen, is een dag niet geleefd!">
<meta name="Keywords" content="humor, humorplaatjes, humorsite, humorwebsite, humorafbeeldingen, humorpictures, fun, funplaatjes, funsite, funwebsite, funafbeeldingen, funpictures, grappig, humorloos, lolbroek, lol, website, site, moppen, video's, funvideo, humorvideo, mop, mopjes, geld, leuk, fun">
<meta name="Language" content="Nederlands">
<meta name="Copyright" content="� Copyright 2007-2008 Humor 4 Life">
<meta name="Designer" content="Kees Kluskens">
<meta name="Publisher" content="Kees Kluskens">
<meta name="Revisit-After" content="3 Days">
<meta name="Robots" content="index, follow">
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<div class="fdsafsdfasd">
<div class="adf">
<div class="askdjfladsf">
</div>
<div class="ffdasf"> <img src="http://www.humor4life.nl/layout/images/newheader.png" style="border: none;">
</div>
<div class="naasttitel">
</div>
<div class="misluktesmile">
</div>
<div class="slogan"><img src="http://www.humor4life.nl/layout/images/newheader_slogan_.png" style="border: none;"></div>
<div class="titelbar">
(hier zou normaal het topmenu komen, maar dan wordt het te lang...)
</div>
</div>
<div class="content">
<div class="content_up">
</div>
<div class="content_middle">
VANAF HIER BEGINT HET SCRIPT
<?
require("config.php");
if($submit){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "Je gebruikersnaam en/of je wachtwoord zijn INcorrect.<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
VANAF HIER BEVINDT (DENK IK) HET PROBLEEM
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
if(!$login){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
<p><br />
<a href="#"><img src="http://www.humor4life.nl/layout/images/top.png" alt="Naar de top van deze pagina" style="border: none;"></a>
</p>
</div>
<div class="content_down"></div>
<div align="center"><p>© 2007 Copyright Humor 4 Life | <a href="http://blueprojects.humor4life.nl/" class='footer'>Blue Projects</a> <a href="http://dutch-113781953969.spampoison.com"><img src="http://pics3.inxhost.com/images/sticker.gif" border="0" width="80" height="15"/></a> Sliced by <a href="http://mrfix.gohosted.nl" class='footer' title='De layout van Humor 4 Life is gesliced door Mr. Fix'>Mr.Fix</a>
</p>
<br />
</div></div>
<div class="menu">
<div class="menutitel">Humor</div>
<div class="menucontent">
(hier zou dan de menu content komen)
</div>
<div class="menutitel">Algemeen
</div>
<div class="menucontent">
(hier zou nog wat menu content komen..)
</div>
</div>
</div>
</body>
</html>
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>
<title>Humor 4 Life |:| LedenGedeelte |:| Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
<meta name="Title" content="Humor 4 Life">
<meta name="Author" content="Kees Kluskens">
<meta name="Description" content="Want een dag niet gelachen, is een dag niet geleefd!">
<meta name="Keywords" content="humor, humorplaatjes, humorsite, humorwebsite, humorafbeeldingen, humorpictures, fun, funplaatjes, funsite, funwebsite, funafbeeldingen, funpictures, grappig, humorloos, lolbroek, lol, website, site, moppen, video's, funvideo, humorvideo, mop, mopjes, geld, leuk, fun">
<meta name="Language" content="Nederlands">
<meta name="Copyright" content="� Copyright 2007-2008 Humor 4 Life">
<meta name="Designer" content="Kees Kluskens">
<meta name="Publisher" content="Kees Kluskens">
<meta name="Revisit-After" content="3 Days">
<meta name="Robots" content="index, follow">
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<div class="fdsafsdfasd">
<div class="adf">
<div class="askdjfladsf">
</div>
<div class="ffdasf"> <img src="http://www.humor4life.nl/layout/images/newheader.png" style="border: none;">
</div>
<div class="naasttitel">
</div>
<div class="misluktesmile">
</div>
<div class="slogan"><img src="http://www.humor4life.nl/layout/images/newheader_slogan_.png" style="border: none;"></div>
<div class="titelbar">
(hier zou normaal het topmenu komen, maar dan wordt het te lang...)
</div>
</div>
<div class="content">
<div class="content_up">
</div>
<div class="content_middle">
VANAF HIER BEGINT HET SCRIPT
<?
require("config.php");
if($submit){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "Je gebruikersnaam en/of je wachtwoord zijn INcorrect.<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
VANAF HIER BEVINDT (DENK IK) HET PROBLEEM
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
if(!$login){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
<p><br />
<a href="#"><img src="http://www.humor4life.nl/layout/images/top.png" alt="Naar de top van deze pagina" style="border: none;"></a>
</p>
</div>
<div class="content_down"></div>
<div align="center"><p>© 2007 Copyright Humor 4 Life | <a href="http://blueprojects.humor4life.nl/" class='footer'>Blue Projects</a> <a href="http://dutch-113781953969.spampoison.com"><img src="http://pics3.inxhost.com/images/sticker.gif" border="0" width="80" height="15"/></a> Sliced by <a href="http://mrfix.gohosted.nl" class='footer' title='De layout van Humor 4 Life is gesliced door Mr. Fix'>Mr.Fix</a>
</p>
<br />
</div></div>
<div class="menu">
<div class="menutitel">Humor</div>
<div class="menucontent">
(hier zou dan de menu content komen)
</div>
<div class="menutitel">Algemeen
</div>
<div class="menucontent">
(hier zou nog wat menu content komen..)
</div>
</div>
</div>
</body>
</html>