PHP error met ledenscript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Kluskens

Kees Kluskens

11/12/2007 15:54:00
Quote Anchor link
Hallo,
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!
 
PHP hulp

PHP hulp

17/05/2024 02:49:43
 
Joren de Wit

Joren de Wit

11/12/2007 15:58:00
Quote Anchor link
Voor een functie als header() mag er nog 0.0 output naar de browser verstuurd zijn. Dus geen echo, geen html, zelfs geen loze spatie...

Daar zit het probleem en dat zul je moeten aanpakken.
 
Kees Kluskens

Kees Kluskens

11/12/2007 16:00:00
Quote Anchor link
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?
 
- wes  -

- wes -

11/12/2007 16:06:00
Quote Anchor link
wat is het toch met die pakjeboter-programmeurs hier tegenwoordig.

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!
 
Kees Kluskens

Kees Kluskens

11/12/2007 16:09:00
Quote Anchor link
Moet ik hier antwoord op geven?
Dit is eigenlijk bedoelt om een beetje te oefenen, zien hoe het werkt.
ik ben al bij het begin begonnen...
 
Joren de Wit

Joren de Wit

11/12/2007 16:11:00
Quote Anchor link
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...
 
- wes  -

- wes -

11/12/2007 16:12:00
Quote Anchor link
Onzin dat je al bij het begin begonnen bent, dit is zinnen proberen te maken terwijl je je naam nog niet eens kan schrijven.
 
Kees Kluskens

Kees Kluskens

11/12/2007 16:17:00
Quote Anchor link
Maar op regel 11 staat dít:
<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!
 
Terence Hersbach

Terence Hersbach

11/12/2007 16:22:00
 

11/12/2007 16:22:00
Quote Anchor link
Ja maar ik geloof met Wes ook niet dat jij met gewoon proberen opeens een ledensysteem gemaakt hebt, dus die zal wel van elders komen.

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.
 
Kees Kluskens

Kees Kluskens

11/12/2007 16:24:00
Quote Anchor link
Ik ZEG ook niet dat ik dat helemaal zelf heb gemaakt!! Ik zei dit:
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!!
 
Joren de Wit

Joren de Wit

11/12/2007 16:28:00
Quote Anchor link
Quote:
<script language="JavaScript" type="text/javascript">
Dit is toch output verzenden naar de browser?!?

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<html>
<head>
</head>

<body>
<?php header('blaat'); ?>
</body>
</html>


Zorg dat je de logica (php) en output (html) gescheiden houdt! Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php header('blaat'); ?>
<html>
<head>
</head>

<body>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Kees Kluskens

Kees Kluskens

11/12/2007 16:34:00
Quote Anchor link
Maar... Nou is het dat die output niet meteen moet worden ''verzonden''. Want het is de bedoeling dat als ik inlog, dat ik dan naar index.php wordt gestuurd. Dus niet dat ik meteen naar de index.php wordt gestuurd! Dit is dat stukje...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$login = 1;
header("Location: index.php");
session_register("login");
session_register("memberid");
 
Joren de Wit

Joren de Wit

11/12/2007 17:47:00
Quote Anchor link
Blanche schreef op 11.12.2007 16:28:
Zorg dat je de logica (php) en output (html) gescheiden houdt!
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...

ps. De functie session_register() stamt nog uit de middeleeuwen. Deze syntax is meer van deze tijd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['var'] = 'waarde';
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Kees Kluskens

Kees Kluskens

11/12/2007 17:50:00
Quote Anchor link
Maar als ik de php code in het begin doe, dan komt die ook helemaal bovenaan te staan, en dat wil ik dus niet!
 
Joren de Wit

Joren de Wit

11/12/2007 17:52:00
Quote Anchor link
Je zult waarschijnlijk inderdaad wat aan de opbouw van je script moeten veranderen om het op die manier werkend te krijgen. Het is echter wel de enige juiste manier...

Hoe ziet je script er nu uit dan?
 
Kees Kluskens

Kees Kluskens

11/12/2007 17:57:00
Quote Anchor link
Een beetje lang maar ik post het wel met de layout erbij... (met de css eruit gehaald)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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="&#65533; 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>&copy; 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>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.