headers already sent error bij inlog script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart Crum

Bart Crum

13/05/2009 22:39:00
Quote Anchor link
Op een website maak ik gebruik van inlogscript, Phpmylogon, en het werkt allemaal goed alleen als ik inlog krijg ik de volgende error.


Warning: Cannot modify header information - headers already sent by (output started at /storage/mijndomein/users/078940/public/sites/www.scdapollo.nl/NEW/index.php:10) in /storage/mijndomein/users/078940/public/sites/www.scdapollo.nl/NEW/login.php on line 18

Dit maakt verder echter weinig uit, volgens mij, want het functioneert wel. Echter, wil ik dit natuurlijk wel wegwerken. Kan iemand mij vertellen hoe? Ik begrijp dat de headers al ergens verzonden worden. Alleen welke moet ik dan weghalen? ik zal beide genoemde lijnen even weergeven

eerste 10 regels van index.php zijn als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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>SCD Apollo</title>
<script src="scripts2.js" type="text/javascript"></script>


De eerste 20 regels van login.php als volgt:
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
<?php
###################################
##   PHPMYLOGON: A LOGIN SYSTEM  ##
##    (c) 2006 Jorik Berkepas    ##
##   Under the GNU GPL license   ##
##     [email protected]      ##
###################################

// Page for log-in


include_once("config.php");
include_once("lang/lang_".$lang.".php");
$pml_title = $site_name;
include("htmltop.php");
include_once("connect.php");

if(isset($_SESSION['user_id'])) {
 header("Location: ".$afterlogin);
}
else{
 if(isset($_COOKIE['user_id'])) {[/code]
Gewijzigd op 01/01/1970 01:00:00 door Bart Crum
 
PHP hulp

PHP hulp

27/11/2024 08:12:29
 
- SanThe -

- SanThe -

13/05/2009 22:41:00
Quote Anchor link
http://www.phphulp.nl/php/faq/#2

Edit: Er mag dus helemaal géén output zijn vóór een header.

Je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php en ?>
Gebruik je Afbeelding knop om dit te doen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Bart Crum

Bart Crum

13/05/2009 23:27:00
Quote Anchor link
Ok maar hoe haal ik die header uit login.php dan naar voren? Want ik include login.php pas ergens rond regel 140 in index.php. Hij zit namelijk verwerkt in een tabel ergens linksonderaan mijn pagina.

Die session_start() is het probleem lijkt me, maar als ik die weghaal werkt het script niet meer.
Gewijzigd op 01/01/1970 01:00:00 door Bart Crum
 
- SanThe -

- SanThe -

13/05/2009 23:35:00
Quote Anchor link
Session_start() is niet het probleem. Je html op regel 4 t/m 10 is het probleem. Dat moet je gewoon pas outputten na de if()'s.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Bart Crum

Bart Crum

13/05/2009 23:43:00
Quote Anchor link
Ok. Maar hoe doe ik dat als ik de login.php pas veel later include. Want de html output op de regels 4 t/m 10 heb ik toch ook nodig en die kan ik niet pas later plaatsen. Dan werkt het niet meer. Ik zal even de include laten zien in code.

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?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>SCD Apollo</title>
<script src="scripts2.js" type="text/javascript"></script>
<style type="text/css">
<!--
body,td,th {
    color: #000000;
}
.style1 {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
.agendatekst {
    color: #FFFFFF;
    font-weight: bold;
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
.agenda {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
}
a.menu:link {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
}
a.menu:visited {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
}
a.menu:active {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
}
a.menu:hover {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 28px;
    text-decoration: underline;
}
a:link {
    color: #000000;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000000;
}
a:hover {
    text-decoration: underline;
    color: #000000;
}
a:active {
    text-decoration: none;
    color: #000000;
}
a.lichaam:link {
    color: #000000;
    text-decoration: none;
}
a.lichaam:visited {
    text-decoration: none;
    color: #000000;
}
a.lichaam:hover {
    text-decoration: underline;
    color: #000000;
}
a.lichaam:active {
    text-decoration: none;
    color: #000000;
}
body {
    background-image: url(img/bg.jpg);
    background-repeat: repeat;
}

-->
</style></head>

<body>
<table width="1020" border="0" align="center" cellspacing="5">
  <tr>
    <td height="255" background="img/indexheader.jpg">&nbsp;</td>
  </tr>
  <tr>
    <td height="869"><table width="100%" border="0" cellspacing="5" bgcolor="#FFFFFF">
      <tr>
        <td width="25%" height="809" valign="top"><table width="100%" border="0" cellspacing="5">
          <tr>
            <td height="312" background="img/logo.jpg">&nbsp;</td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="index.php?p=home">Home</a></span></div></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="index.php?p=apollo">Apollo</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="index.php?p=comitas">Comitas</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="javascript:popup22('fotoalbum.php')">Foto's</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="#">Feesten</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="javascript:popup('gastenboek/gastenboek.php')">Gastenboek</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="index.php?p=ledenlijst">Ledenlijst</a></td>
          </tr>
          <tr>
            <td height="40" background="img/menu.jpg" class="style1">&nbsp;<a class="menu" href="index.php?p=contact">Contact</a></td>
          </tr>
          <tr>
            <td height="120">
                    <?php
                        include('login.php');
                    ?>

             </td>
          </tr>
        </table>
 
- SanThe -

- SanThe -

13/05/2009 23:53:00
Quote Anchor link
Je opbouw is verkeerd.
Eerst alle logica afhandelen en dan pas de output geven.
 
Bart Crum

Bart Crum

13/05/2009 23:55:00
Quote Anchor link
Huh wat bedoel je? Sorry ik begrijp php nog niet zo goed. Wat moet ik precies veranderen?
 
- SanThe -

- SanThe -

14/05/2009 00:03:00
Quote Anchor link
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
<?php
session_start();
// en soortgenoten

include('......');
// en soortgenoten

if(...)
{

   header('.....');
}

// en nog meer van dat soort dingen

// en dan hier pas de html output

?>
 
Bart Crum

Bart Crum

14/05/2009 00:13:00
Quote Anchor link
Ok maar als ik dat op die manier doet, dan komt toch alles op de verkeerde plek te staan. Dan wordt login.php op een hele andere plek included en dus weergegeven enzo?
 
Afra ca

Afra ca

14/05/2009 07:34:00
Quote Anchor link
SanThe heeft gelijk. Je verwerkt eerst alle informatie in kant en klare brokken, om ze uiteindelijk pas te laten zien. Kijk wat de output is van login.php , en probeer in plaats van dat te laten echo-en in login.php, op te slaan in een variabele, en later pas apart te echo-en.......

(/me moet duidelijker leren uitleggen)
 
Bart Crum

Bart Crum

14/05/2009 13:01:00
Quote Anchor link
Sorry, dit gaat mijn pet te boven helaas.
Ik durf het bijna niet te vragen, maar kan iemand me dit niet voorkouwen?
Ik moet dus zorgen dat de header uit login.php eerder naar de browser wordt gestuurd dan de headers uit index.php, toch?
Maar hoe verander ik die volgorde zonder de output de veranderen? Of eigenlijk zonder dat het er anders uit gaat zien?
 
Bart Crum

Bart Crum

14/05/2009 13:49:00
Quote Anchor link
Is het bijvoorbeeld niet gewoon mogelijk die header location te vervangen en op een andere manier op de $afterlogin te komen?

Gelieve Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Bart Crum
 



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.