Uitlog script
Ik heb wat problemen met een uitlog script, die ik nog niet vaak heb gehad.
Dit is m'n script:
Code (php)
En hierbij krijg ik de error:
Warning: Cannot modify header information - headers already sent by (output started at /home/dekoni1q/public_html/example.com/ingelogd.php:53) in /home/dekoni1q/public_html/example.com/pages/uitloggen.php on line 8
Warning: Cannot modify header information - headers already sent by (output started at /home/dekoni1q/public_html/example.com/ingelogd.php:53) in /home/dekoni1q/public_html/example.com/pages/uitloggen.php on line 9
Warning: Cannot modify header information - headers already sent by (output started at /home/dekoni1q/public_html/example.com/ingelogd.php:53) in /home/dekoni1q/public_html/example.com/pages/uitloggen.php on line 10
Warning: Cannot modify header information - headers already sent by (output started at /home/dekoni1q/public_html/example.com/ingelogd.php:53) in /home/dekoni1q/public_html/example.com/pages/uitloggen.php on line 1
Kijk eens op lijn 53 van ingelogd.php, daar staat output wat niet mag.
Uit nieuwsgierigheid: MultiSess toevallig ;-) ?
Gewijzigd op 29/07/2013 19:47:31 door - Ariën -
-cookies? gebruik sessions
-geen exit(), als je uitlogt moet niet alles doodvallen maar moet je nog steeds de site kunnen bezoeken.
@Jeroen, kijk eens wat er voor de exit() staat ;-)?
@-diov-: wel exit()! haha
Ik gebruik inderdaad jouw MultiSess, ben druk bezig met OOP te leren (en daarna micro framework)...
Maar vandaag werd me account geblokkeerd (na 7 maanden) bij 000Webhost.
Dit was hun antwoord:
Quote:
Hello,
Only premium members are allowed to host online gaming scripts. You can upgrade your account at http://www.000webhost.com/upgrade
Many Thanks,
Helpdesk Staff
www.000webhost.com
Only premium members are allowed to host online gaming scripts. You can upgrade your account at http://www.000webhost.com/upgrade
Many Thanks,
Helpdesk Staff
www.000webhost.com
Ten eerste, het was een forum voor een bepaalde game ...
Dusja, ik kan alleen mijn bestanden terugkrijen, als ik upgrade ...
Intussen heb ik ergens anders een domein + host gekocht want 000webhost is niet echt goed vind ik ...
Dus, ik had nog een backup van 04/07/2013
En daar zaten nog enkele bugs in ..
Zoals het uitloggen..
Dat terzeide.
Op regel 53 bevindt zich:
Wat kan ik hieraan doen? :)
Alvast bedankt,
Diov
Die hele regel ligt in de weg. Het is output. Kan je wat meer relevente code tonen uit dit gebied?
Dit is heel m'n head:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<head>
<title><?php echo $get_userdata['web_kort']; ?> | Ingelogd </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style_new.php">
<script type="text/javascript" src="/js/userinfo.inc.js"></script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-42004019-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
</head>
<title><?php echo $get_userdata['web_kort']; ?> | Ingelogd </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style_new.php">
<script type="text/javascript" src="/js/userinfo.inc.js"></script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-42004019-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
</head>
Helemaal bovenaan (boven me html) staat ook nog een script die de ongelezen mededelingen ophaalt.
Dat staan dan blijkbaar voor je setcookie() en dat kan natuurlijk niet ;-)
Config.php
Functions.php // Inlogprodecure -> maakt cookies aan..
Of hoe bedoel je?
Tevens is dit wel een van het meest gestelde vraagstuk op forums ;-)
Kan je anders ff beschrijven wat je met 'Output' bedoelt.
Hier de volledige code van 'Ingelogd.php'.
Edit:
Code verwijderd -> Zie reacties hieronder.
Gewijzigd op 29/07/2013 21:58:25 door - Diov -
En ene goede tip, spring je accolades van je if-statements eens beter in, zo kan je misschien zien wat er fout gaat.
In me editor heeft hij geen fouten aan.
Hier me code opnieuw (heb de andere van hierboven verwijderd)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<?php
session_start();
include "../config.php";
include "../functions.php";
if (checklogin()) {
if($get_userdata['web_on'] == "1") {
$onderhoud = True;
}
if ($_SERVER['REMOTE_ADDR'] == $iponderhoud) {
$onderhoud = False;
}
if(!$onderhoud) {
$sql_select_ongelezen = mysql_query("SELECT m.id, m.onderwerp, m.plaatser, m.bericht, m.datum,
IF(g.id IS NULL, 0, 1) As gelezen
FROM mededelingen As m
LEFT JOIN
(SELECT topic_id, id
FROM mededelingen_gelezen
WHERE user_id='".mysql_real_escape_string($get_userdata['id'])."'
) As g
ON m.id=g.topic_id
WHERE m.web = '".mysql_real_escape_string($get_userdata['web_id'])."'
");
while($row_select_ongelezen= mysql_fetch_assoc($sql_select_ongelezen)) {
if($row_select_ongelezen['gelezen'] == 0)
$ongelezen_aantal++;
}
if(isset($ongelezen_aantal) AND $ongelezen_aantal > 0) {
$style_mededelingen = 'style="color:#FA5858;"';
}
else {
$style_mededelingen = '';
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $get_userdata['web_kort']; ?> | Ingelogd </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style_new.php">
<script type="text/javascript" src="/js/userinfo.inc.js"></script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-42004019-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
</head>
<body>
<div id="header">
<div class="inHeader">
<div class="mosAdmin">
Hallo, <?php echo $get_userdata['username']; ?><br>
<a href="ingelogd.php?p=uitloggen">Uitloggen</a> | <a href="ingelogd.php?p=instellingen">Instellingen</a>
</div>
<div class="clear"></div>
</div>
</div>
<div id="wrapper">
<div id="leftBar">
<ul>
<li><a href="ingelogd.php?p=home">Home</a></li>
<!---<li><a href="ingelogd.php?p=nieuws">Nieuws</a></li> -->
<li><a href="ingelogd.php?p=promogeven">Promo | Degra</a></li>
<li><a href="ingelogd.php?p=mededelingen" <?php echo $style_mededelingen; ?>>Mededelingen</a></li>
<?php
if($get_userdata['trainer'] == 1) {
echo '<li><a href="ingelogd.php?p=getraind">Getraind</a></li>';
}
?>
<?php
#if($get_userdata['zoek'] == 1) {
echo '<li><a href="ingelogd.php?p=zoek">Zoek</a></li>';
#}
?>
<?php
if($get_userdata['leden_edit'] == 1) {
echo '<li><a href="ingelogd.php?p=leden">Leden</a></li>';
}
?>
<li><a href="ingelogd.php?p=contact">Contact</a></li>
</ul>
</div>
<div id="rightContent">
<?php
define('ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
$pages = glob(ROOT.'pages'.DIRECTORY_SEPARATOR.'*.php');
$pageNames = array_map('basename', $pages);
if (!isset($_GET['p'])) {
$_GET['p'] = 'home';
}
if (in_array($_GET['p'].'.php', $pageNames)) {
require ROOT.'pages'.DIRECTORY_SEPARATOR.$_GET['p'].'.php';
} else {
require ROOT.'pages'.DIRECTORY_SEPARATOR.'404.php';
}
?>
</div>
<div class="clear"></div>
<div id="footer">
© 2013 <?php echo $get_userdata['web_lang']; ?> | Design & Ontwikkeling - Diov | Beheerder - <a href="http://www.habbo.nl/home/<?php echo $get_userdata['web_beheerder']; ?>"><?php echo $get_userdata['web_beheerder']; ?></a><br>
</div>
</div>
<div id="toTop">^ Ga omhoog</div>
<script type="text/javascript">
$(function() {
$(window).scroll(function() {
if($(this).scrollTop() != 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});
$('#toTop').click(function() {
$('body,html').animate({scrollTop:0},800);
});
});
</script>
</body>
</html>
<?php
}
else
{
echo $verandering;
}
}
else
{
header('Location: index.php');
}
?>
session_start();
include "../config.php";
include "../functions.php";
if (checklogin()) {
if($get_userdata['web_on'] == "1") {
$onderhoud = True;
}
if ($_SERVER['REMOTE_ADDR'] == $iponderhoud) {
$onderhoud = False;
}
if(!$onderhoud) {
$sql_select_ongelezen = mysql_query("SELECT m.id, m.onderwerp, m.plaatser, m.bericht, m.datum,
IF(g.id IS NULL, 0, 1) As gelezen
FROM mededelingen As m
LEFT JOIN
(SELECT topic_id, id
FROM mededelingen_gelezen
WHERE user_id='".mysql_real_escape_string($get_userdata['id'])."'
) As g
ON m.id=g.topic_id
WHERE m.web = '".mysql_real_escape_string($get_userdata['web_id'])."'
");
while($row_select_ongelezen= mysql_fetch_assoc($sql_select_ongelezen)) {
if($row_select_ongelezen['gelezen'] == 0)
$ongelezen_aantal++;
}
if(isset($ongelezen_aantal) AND $ongelezen_aantal > 0) {
$style_mededelingen = 'style="color:#FA5858;"';
}
else {
$style_mededelingen = '';
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $get_userdata['web_kort']; ?> | Ingelogd </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/style_new.php">
<script type="text/javascript" src="/js/userinfo.inc.js"></script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-42004019-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
</head>
<body>
<div id="header">
<div class="inHeader">
<div class="mosAdmin">
Hallo, <?php echo $get_userdata['username']; ?><br>
<a href="ingelogd.php?p=uitloggen">Uitloggen</a> | <a href="ingelogd.php?p=instellingen">Instellingen</a>
</div>
<div class="clear"></div>
</div>
</div>
<div id="wrapper">
<div id="leftBar">
<ul>
<li><a href="ingelogd.php?p=home">Home</a></li>
<!---<li><a href="ingelogd.php?p=nieuws">Nieuws</a></li> -->
<li><a href="ingelogd.php?p=promogeven">Promo | Degra</a></li>
<li><a href="ingelogd.php?p=mededelingen" <?php echo $style_mededelingen; ?>>Mededelingen</a></li>
<?php
if($get_userdata['trainer'] == 1) {
echo '<li><a href="ingelogd.php?p=getraind">Getraind</a></li>';
}
?>
<?php
#if($get_userdata['zoek'] == 1) {
echo '<li><a href="ingelogd.php?p=zoek">Zoek</a></li>';
#}
?>
<?php
if($get_userdata['leden_edit'] == 1) {
echo '<li><a href="ingelogd.php?p=leden">Leden</a></li>';
}
?>
<li><a href="ingelogd.php?p=contact">Contact</a></li>
</ul>
</div>
<div id="rightContent">
<?php
define('ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
$pages = glob(ROOT.'pages'.DIRECTORY_SEPARATOR.'*.php');
$pageNames = array_map('basename', $pages);
if (!isset($_GET['p'])) {
$_GET['p'] = 'home';
}
if (in_array($_GET['p'].'.php', $pageNames)) {
require ROOT.'pages'.DIRECTORY_SEPARATOR.$_GET['p'].'.php';
} else {
require ROOT.'pages'.DIRECTORY_SEPARATOR.'404.php';
}
?>
</div>
<div class="clear"></div>
<div id="footer">
© 2013 <?php echo $get_userdata['web_lang']; ?> | Design & Ontwikkeling - Diov | Beheerder - <a href="http://www.habbo.nl/home/<?php echo $get_userdata['web_beheerder']; ?>"><?php echo $get_userdata['web_beheerder']; ?></a><br>
</div>
</div>
<div id="toTop">^ Ga omhoog</div>
<script type="text/javascript">
$(function() {
$(window).scroll(function() {
if($(this).scrollTop() != 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});
$('#toTop').click(function() {
$('body,html').animate({scrollTop:0},800);
});
});
</script>
</body>
</html>
<?php
}
else
{
echo $verandering;
}
}
else
{
header('Location: index.php');
}
?>
Toevoeging op 29/07/2013 22:04:25:
Ff toevoeging:
-> Dus, er is output omdat de cookies niet worden verwijderd.
Als de cookies verwijderd zouden zijn, zou Checklogin false zijn, en is er geen output?
Gewijzigd op 29/07/2013 21:58:01 door - Diov -
In de code in je eerste post staat een witregel tussen de php sluiten en php openen tags (regel 4-6).
Ik heb nu dit staan in uitloggen.php
Code (php)
1
2
3
4
5
2
3
4
5
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
setcookie("id", "", time()-3600000000);
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
setcookie("id", "", time()-3600000000);
?>
Steeds dezelfde error
Toevoeging op 29/07/2013 22:58:59:
Heb het opgelost.
Zal morgen uitleggen hoe.
(Gewoon een nieuwe pagina uitloggen.php zonder html erboven)
-op regel 172 staat een header(), maar in de body en alles staat al output. als er al iets op het scherm staat waarna je een header() doet, krijg je de headers already sent error. dus, je moet alle logica voor de header() doen, en wil je iets weergeven sla je dat op in een variabele, die je later echot.
-het is alleen maar goed dat je php logica helemaal als eerste komt. maar, onder de <html> tag is not done, die zou in de <body> moeten (alle output moet in de <body> staan)
-haal die hele <meta> tag weg, vervang deze door <meta charset=utf-8>, dat is de html5 standaard.
-verder wil ik even zeggen dat het er semantisch op deze puntjes na erg netjes uitziet!
p.s. ik had het eerst over output voor de <body> tag. dat is natuurlijk fout, maar in het kader van dit topic moest dat natuurlijk voor header() zijn.