Uitlog script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

 - Diov  -

- Diov -

29/07/2013 19:45:07
Quote Anchor link
Hi,

Ik heb wat problemen met een uitlog script, die ik nog niet vaak heb gehad.
Dit is m'n script:
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>


<?php

setcookie("id", "", time()-36000000);
setcookie("hash", "", time()-36000000);
setcookie("web", "", time()-36000000);

header('Location: login.php');
exit;


?>


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
 
PHP hulp

PHP hulp

23/02/2024 21:21:00
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 19:46:16
Quote Anchor link
headers already sent by (output started at /home/dekoni1q/public_html/example.com/ingelogd.php:53

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 -
 
Jeroen VD

Jeroen VD

29/07/2013 19:46:53
Quote Anchor link
dan heb je enige output staan voor de <body> tag. deze code, en dan vooral header(), staat zeker voor de <body>?

-cookies? gebruik sessions
-geen exit(), als je uitlogt moet niet alles doodvallen maar moet je nog steeds de site kunnen bezoeken.
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 19:48:05
Quote Anchor link
@Jeroen, kijk eens wat er voor de exit() staat ;-)?
 
Jeroen VD

Jeroen VD

29/07/2013 19:49:36
Quote Anchor link
ah. niet gezien, I'm sorry, dat klopt inderdaad

@-diov-: wel exit()! haha
 
 - Diov  -

- Diov -

29/07/2013 20:22:13
Quote Anchor link
Hi Aar,

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


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<title><?php echo $get_userdata['web_kort']; ?> | Ingelogd </title>


Wat kan ik hieraan doen? :)
Alvast bedankt,
Diov
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 20:35:57
Quote Anchor link
Die hele regel ligt in de weg. Het is output. Kan je wat meer relevente code tonen uit dit gebied?
 
 - Diov  -

- Diov -

29/07/2013 21:19:35
Quote Anchor link
Tuurlijk kan ik dat.
Dit is heel m'n head:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


Helemaal bovenaan (boven me html) staat ook nog een script die de ongelezen mededelingen ophaalt.
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 21:27:17
Quote Anchor link
Dat staan dan blijkbaar voor je setcookie() en dat kan natuurlijk niet ;-)
 
 - Diov  -

- Diov -

29/07/2013 21:34:47
Quote Anchor link
Helemaal bovenaan include ik 2 files?
Config.php
Functions.php // Inlogprodecure -> maakt cookies aan..


Of hoe bedoel je?
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 21:43:08
Quote Anchor link
Tja, toch is er ergens dus output, en de error zegt dat het op lijn 54 van ingelogd.php gebeurt.
Tevens is dit wel een van het meest gestelde vraagstuk op forums ;-)
 
 - Diov  -

- Diov -

29/07/2013 21:45:47
Quote Anchor link
Hi,

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 -
 
- Ariën  -
Beheerder

- Ariën -

29/07/2013 21:52:32
Quote Anchor link
Output is alles wat je op je scherm ziet, zoals HTML en witregels.
En ene goede tip, spring je accolades van je if-statements eens beter in, zo kan je misschien zien wat er fout gaat.
 
 - Diov  -

- Diov -

29/07/2013 21:57:35
Quote Anchor link
@ Aar,

In me editor heeft hij geen fouten aan.
Hier me code opnieuw (heb de andere van hierboven verwijderd)
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
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">
            &copy; 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 -
 
Koen Vlaswinkel

Koen Vlaswinkel

29/07/2013 22:14:32
Quote Anchor link
In de code in je eerste post staat een witregel tussen de php sluiten en php openen tags (regel 4-6).
 
 - Diov  -

- Diov -

29/07/2013 22:40:50
Quote Anchor link
@Koen

Ik heb nu dit staan in uitloggen.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
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)
 
Jeroen VD

Jeroen VD

30/07/2013 11:01:12
Quote Anchor link
en niet te vergeten:
-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.
 



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.