[PHP & MYSQL] Headers already send.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Hallo,

Ik heb hier proberen om een script te maken. Maar het is een beetje mislukt |:( .

Ik krijg steeds de melding op http://share.iamotor.nl/post.php Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/deb165/domains/iamotor.nl/public_html/share/post.php:1) in /home/deb165/domains/iamotor.nl/public_html/share/_include-config.php on line 40.

Op line 40 en omliggende licht dit.

code:
1
2
3
4
5
6
7
8
9
</html>
ENDHTML;
    exit;
  }


  session_start(); /* Dit is lijn 40.*/
  include("_include-funcs.php");
  if(isset($_SESSION['login'])) {


En de eerste 3 regels van post.php zijn dit.
code:
1
2
3
<?php 
include("_include-config.php");
?>


Wat doe ik fout? Want ik ben al een half uur bezig maar ik kom er maar niet uit.

Alvast bedankt,
Wouter.

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
session_start() moet voor alle output gebeuren. Dus verplaats hem naar boven, of gebruik output buffering (ob_start/ob_flush).

Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik doe nu dit.

code:
1
2
3
4
<?php
session_start();
include("_include-config.php");
?>


En dan krijg ik nog steeds die error.
Maar bij de _include-config.php heb ik al die session_start() weggehaald.

Acties:
  • 0 Henk 'm!

  • Scheeve
  • Registratie: Maart 2006
  • Laatst online: 09-05 18:16
De error is veranderd ;) Dit betekent een ander probleem dat opgelost moet worden :X

Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ja, maar dan hoef ik daar toch niet een nieuw topic voor te openen? Wordt dit dan niet gezien als spam?

Acties:
  • 0 Henk 'm!

  • Scheeve
  • Registratie: Maart 2006
  • Laatst online: 09-05 18:16
Anoniem: 242041 schreef op donderdag 22 januari 2009 @ 20:46:
Ja, maar dan hoef ik daar toch niet een nieuw topic voor te openen? Wordt dit dan niet gezien als spam?
Je kunt wel de nieuwe error geven? ;) Waarschijnlijk ben je al met uitvoer begonnen op een plek waar dat nog niet mag. Vandaar de Headers already sent.

edit: Je hebt toch toevallig geen lege regels aan het begin van je document?

[ Voor 9% gewijzigd door Scheeve op 22-01-2009 20:49 ]


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik heb geen lege regels aan het begin van mijn document.

Dit is nu de error.

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/deb165/domains/iamotor.nl/public_html/share/post.php:1) in /home/deb165/domains/iamotor.nl/public_html/share/post.php on line 2.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
De 'headers already sent' error vermeld ten alle tijde duidelijk waar je output begonnen is en moet altijd eenvoudig zelf op te lossen zijn. Let op dat whitespace voor de <?php tag ook al output kan zijn.

{signature}


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik heb niks ervoor.

Ik heb alleen tussen die session_start() de php tags staan. Maar dat moet toch wel?

Acties:
  • 0 Henk 'm!

  • Scheeve
  • Registratie: Maart 2006
  • Laatst online: 09-05 18:16
Anoniem: 242041 schreef op donderdag 22 januari 2009 @ 20:59:
Ik heb niks ervoor.

Ik heb alleen tussen die session_start() de php tags staan. Maar dat moet toch wel?
Ik neem aan dat je bedoelt dat je alleen de session_start() tussen de php tags hebt staan.
Voor de duidelijkheid, dit werkt niet?
PHP:
1
2
3
<?php
    session_start();
?>

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Er zitten gekke tekens voor de output: 

Dit kan te maken hebben met de encoding van de pagina. B.v. verschillen in encoding van de server en die van de php pagina. Zie b.v. http://forum.joomla.org/viewtopic.php?f=309&t=275353

Overigens is hierover op Got ook wel e.e.a. te vinden. Gebruik even de search zou ik zeggen.

[edit]
Hier b.v. een topic op Got:
[PHP] Vreemde encoding output

[ Voor 17% gewijzigd door Noork op 22-01-2009 21:07 ]


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik heb er nog iets anders tussen staan :|.

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 09-05 20:00

krvabo

MATERIALISE!

Het is heel simpel. Ergens in al je scripts die worden uitgevoerd op die pagina wordt er eerst iets verzonden voordat de session_start() of header() wordt uitgevoerd.
Dit kan dus ook dmv een print / echo '<html>' het geval zijn.

Zoals eerder vermeld in dit topic kun je ook gebruik maken van ob_start() en ob_end_flush(). Die plaats je respectievelijk op de tweede (na session_start()) en de laatste regel van je script.
Let wel: dit is een overkill-methode voor de fout die je krijgt, maar het werkt.

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Noork schreef op donderdag 22 januari 2009 @ 21:05:
Er zitten gekke tekens voor de output: 
Dat zijn geen gekke tekens: dat is de utf-8 BOM (byte order mark, zie wikipedia). De ts heeft zijn bestanden waarschijnlijk als utf-8-met-BOM opgeslagen, maar php is te suf om dat te begrijpen. Gooi die BOM eruit (even goed instellen in je editor) en het werkt...

[ Voor 10% gewijzigd door ValHallASW op 23-01-2009 01:03 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

krvabo schreef op donderdag 22 januari 2009 @ 21:08:
Het is heel simpel. Ergens in al je scripts die worden uitgevoerd op die pagina wordt er eerst iets verzonden voordat de session_start() of header() wordt uitgevoerd.
Dit kan dus ook dmv een print / echo '<html>' het geval zijn.

Zoals eerder vermeld in dit topic kun je ook gebruik maken van ob_start() en ob_end_flush(). Die plaats je respectievelijk op de tweede (na session_start()) en de laatste regel van je script.
Let wel: dit is een overkill-methode voor de fout die je krijgt, maar het werkt.
Als je session_start() al op de eerste regel hebt staan en tóch die fout krijgt, dan heeft ob_start() erachter zetten daar geen enkel effect op. Sowieso is het gebruiken van output buffering hier niet meer dan symptoombestrijding, terwijl de fout zelf wel héél erg makkelijk op te lossen is: gewoon zorgen dat er niks voor je uitvoer staat. En helaas zijn onzichtbare tekens ook nog steeds tekens. ;)
ValHallASW schreef op vrijdag 23 januari 2009 @ 01:02:
[...]

Dat zijn geen gekke tekens: dat is de utf-8 BOM (byte order mark, zie wikipedia). De ts heeft zijn bestanden waarschijnlijk als utf-8-met-BOM opgeslagen, maar php is te suf om dat te begrijpen. Gooi die BOM eruit (even goed instellen in je editor) en het werkt...
Hij linkt naar twee topics waarvan één op een ander forum waar precies datzelfde uitgelegd staat. Ik denk dat hij dat dus al weet. ;)

[ Voor 22% gewijzigd door NMe op 23-01-2009 02:02 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 09-05 20:00

krvabo

MATERIALISE!

NMe schreef op vrijdag 23 januari 2009 @ 02:01:
[...]

Als je session_start() al op de eerste regel hebt staan en tóch die fout krijgt, dan heeft ob_start() erachter zetten daar geen enkel effect op. Sowieso is het gebruiken van output buffering hier niet meer dan symptoombestrijding, terwijl de fout zelf wel héél erg makkelijk op te lossen is: gewoon zorgen dat er niks voor je uitvoer staat. En helaas zijn onzichtbare tekens ook nog steeds tekens. ;)

[...]
Ik was bezig met het typen van mijn reply, maar deed er te lang over. Ondertussen waren er dus al andere posts gekomen over de encoding. Ik had verwacht dat hij in zijn script nog output had, ná de session_start() en dat het regelnummer 'bugged' was. Maargoed, het probleem is in ieder geval achterhaald nu :)

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 06-05 12:56

Saven

Administrator

code:
1
2
3
4
</html>
ENDHTML;
    exit;
  }


Hm je beseft wel dat dit erg slordig is?.. Mijn tip, ga een cursus PHP volgen.

Oja, je oplosing:
ob_start(); helemaal bovenaan alles

en ob_end_flus(); onder alles.

Modbreak: even vriendelijk blijven asjeblieft, dankjewel.

[ Voor 30% gewijzigd door NMe op 23-01-2009 10:21 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10-05 00:23

Janoz

Moderator Devschuur®

!litemod

@Saven: In het topic is eerder al aangegeven dat die oplossing geen oplossing, maar symptoombestrijding is. Ik ben echter wel benieuwd waarom je het gequote stukje code zo slordig vind.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

krvabo schreef op vrijdag 23 januari 2009 @ 08:10:
[...]

Ik was bezig met het typen van mijn reply, maar deed er te lang over. Ondertussen waren er dus al andere posts gekomen over de encoding. Ik had verwacht dat hij in zijn script nog output had, ná de session_start() en dat het regelnummer 'bugged' was. Maargoed, het probleem is in ieder geval achterhaald nu :)
Output ná session_start() is toch helemaal niet erg? Dat is juist de bedoeling zelfs. ;)
Saven schreef op vrijdag 23 januari 2009 @ 10:02:
Oja, je oplosing:
ob_start(); helemaal bovenaan alles

en ob_end_flus(); onder alles.
Symptoombestrijding, én het lost in dit geval niks op. Voor iemand die zo graag erop wijst dat iemand te weinig moeite doet heb je wel érg weinig moeite gedaan om dit topic te lezen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 26-09-2024

disjfa

be

Heb je geen windows file op een linusserver geplaatst? Dan kunnen er soms wel wat rare tekens voor een bestand komen te staan.

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

Anoniem: 274606

Waar je even naar moet kijken is of je in je config.php geen output naar de browser stuurt. Regel twee van je bestand is waar je config.php include. Daar zit dus je fout. Misschien kun je de code ervan hier pasten?

In het algemeen. Een headers already sent krijg je als je nadat de headers verstuurd zijn er nog eens informatie aan wil toevoegen. Dit komt in PHP vaak voor bij setCookie(), header() en session_start(). Wat ook kan is dat er aan het einde van je config.php nog spaties staan, na de afsluitende "?>"

Acties:
  • 0 Henk 'm!

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 10-05 00:38

TommyGun

Stik er maar in!

disjfa schreef op vrijdag 23 januari 2009 @ 10:26:
Heb je geen windows file op een linusserver geplaatst? Dan kunnen er soms wel wat rare tekens voor een bestand komen te staan.
Of binary files als niet-binary overpompen, maar dat lijkt me niet van toepassing hier.

“In a world without walls and fences, who needs Windows and Gates".


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 09-05 17:45

MBV

Anoniem: 274606 schreef op vrijdag 23 januari 2009 @ 14:06:
Waar je even naar moet kijken is of je in je config.php geen output naar de browser stuurt. Regel twee van je bestand is waar je config.php include. Daar zit dus je fout. Misschien kun je de code ervan hier pasten?
Ik denk het niet:
Anoniem: 242041 schreef op donderdag 22 januari 2009 @ 20:51:
Ik heb geen lege regels aan het begin van mijn document.

Dit is nu de error.

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/deb165/domains/iamotor.nl/public_html/share/post.php:1) in /home/deb165/domains/iamotor.nl/public_html/share/post.php on line 2.
regel 1 van post.php dus, en waarschijnlijk inderdaad de BOM :)

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik snap eigenlijk niet dat jullie hier nog over doorgaan. Na mijn post, die van ValHallASW en van NMe is het toch wel duidelijk wat er aan de hand is? Laat de TS maar eens feedback geven.

Acties:
  • 0 Henk 'm!

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 10-05 00:38

TommyGun

Stik er maar in!

Noork schreef op vrijdag 23 januari 2009 @ 14:33:
Ik snap eigenlijk niet dat jullie hier nog over doorgaan. Na mijn post, die van ValHallASW en van NMe is het toch wel duidelijk wat er aan de hand is? Laat de TS maar eens feedback geven.
Speculatie haha. Maar idd, probleem zal waarschijnlijk al wel opgelost zijn

“In a world without walls and fences, who needs Windows and Gates".


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

disjfa schreef op vrijdag 23 januari 2009 @ 10:26:
Heb je geen windows file op een linusserver geplaatst? Dan kunnen er soms wel wat rare tekens voor een bestand komen te staan.
Mag je mij even uitleggen hoe een file in UNIX-formaat opslaan (wat alleen effect heeft op regelnummers die worden opgeslagen als \n in plaats van \r\n) effect heeft op het toevoegen van gekke tekens vooraan de tekst. ;) Dat krijg je alleen bij het opslaan van de file in Unicode terwijl je webserver niet geconfigureerd is om daarmee overweg te kunnen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 274606

Noork schreef op vrijdag 23 januari 2009 @ 14:33:
Ik snap eigenlijk niet dat jullie hier nog over doorgaan. Na mijn post, die van ValHallASW en van NMe is het toch wel duidelijk wat er aan de hand is? Laat de TS maar eens feedback geven.
waar zie jij de gekke tekens dan eigenlijk staan?

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Anoniem: 274606 schreef op vrijdag 23 januari 2009 @ 14:45:
waar zie jij de gekke tekens dan eigenlijk staan?
Hier bovenaan, http://share.iamotor.nl/post.php

Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik ben nu weer op het Forum aanwezig en ik heb even alles doorgelezen. Ik ga nu even wat aanpassen en kijken of het werkt.

En blijkbaar krijg ik kritiek dat ik niet heel erg goed ben in php. En dat ik dus blijkbaar een php cursus moet volgen. Ik doe dit gewoon voor mijn plezier. En ik wil gewoon kijken of het lukt. Ik wil heus wel een php-cursus volgen. Maar je hoeft me niet meteen af te kraken. Iedereen wilt wel ergens is een keer mee beginnen. Al lukt het wel of niet. Maar je kan het toch altijd proberen en om hulp vragen. En als je dan zulke reactie's al meteen krijgt. Dan is het plezierige er al snel vanaf. Ok, als het nou voor een super groot bedrijf was dan zat er nog wel een logische reden achter. Maar om nou meteen iemand af te kraken die het gewoon voor zijn lol doet is ook wel een beetje vreemd.

Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Het is een beetje vreemd maar ik zie geen gekke tekens staan. Ik zie alleen de foutmelding staan.

En de foutmelding is dit.

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/deb165/domains/iamotor.nl/public_html/share/post.php:1) in /home/deb165/domains/iamotor.nl/public_html/share/post.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/deb165/domains/iamotor.nl/public_html/share/post.php:1) in /home/deb165/domains/iamotor.nl/public_html/share/post.php on line 2.

En hier heb ik de code van post.php staan.

code:
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
<?php 
session_start();
?>

<?php

include("_include-config.php");

?>
<html>


<head>
<title>Share Iamotor.nl.</title>
<link rel="stylesheet" type="text/css" href="<?php echo ($_COOKIE['v'] == 2)  ?>">

</head>


<body style="background: #AA3C3C; margin: 0px;">
<table align="center" width=100%>
<?php /* ------------------------- */

  if(isset($_GET['id'], $_GET['id2'], $_GET['code'])) {
    print "  <tr><td class=\"subTitle\"><b>Activatie</b></td></tr>\n";

    $id                     = $_GET['id'];
    $id2                    = $_GET['id2'];
    $code                   = $_GET['code'];
    $dbres                  = mysql_query("SELECT `login` FROM `[temp]` WHERE `area`='signup' AND `id`='$id' AND `code`='$code'");
    $dbres2                 = mysql_query("SELECT `login` FROM `[post]` WHERE `code`='$code'");
    

    if($data = mysql_fetch_object($dbres) AND ($dbres2)) {
      mysql_query("UPDATE `[post]` SET `activated`=1 WHERE `code`='$code'");
      mysql_query("DELETE FROM `[temp]` WHERE `id`='$id'");
      print "  <tr><td class=\"mainTxt\">Activatie voltooid, je kunt nu inloggen</td></tr>\n";
    }
    else
      print "  <tr><td class=\"mainTxt\">Incorrecte activatie-code...</td></tr>\n";
  }
  else {
    if($msgnum != -1) {
      print "  <tr><td class=\"subTitle\"><b>Share:</b></td></tr>\n";
      if(isset($msgnum) && $msgnum != -1)
        print "  <tr><td class=\"mainTxt\">\n   {$message[$msgnum]}\n  </td></tr>\n";

      print <<<ENDHTML
  <tr><td class="mainTxt">
    <form method="post"><table align="center">
      <tr><td width=100>Titel:</td>     <td><input type="text" name="title" maxlength=16 style="width: 150;"></td></tr>
      <tr><td width=100>Info:</td>  <td><input type="text" name="info" maxlength=16 style="width: 150;"></td></tr>
      <tr><td width=100>E-mail:</td>    <td><input type="text" name="email" maxlength=64 style="width: 150;" value="$email"></td></tr>
      <tr><td width=100>Herhaling:</td> <td><input type="text" name="emailconfirm" maxlength=64 style="width: 150;"></td></tr>
      <tr><td width=100>Link:</td>  <td><input type="text" name="link" maxlength=64 style="width: 150;"></td></tr>
      <tr><td width=100>Land:</td>  <td><select name="type" style="width: 150;">
                            <option value="1" $select1>Nederlands</option>
                            <option value="2" $select2>Vlaams</option>
                            <option value="3" $select3>Luxemburgs</option>
                        </select>
                         </td></tr>
      <tr><td></td><td align="right"><input type="submit" name="submit" style="width: 100;" value="Share."></td></tr>
    </table></form>
  </td></tr>
ENDHTML;
    }
    else
      print "  <tr><td class=\"mainTxt\">Je bent geregistreerd, er is een e-mail gestuurd naar $email met een activatie-code.</td></tr>\n";
  }

/* ------------------------- */ ?>
</table>

</body>


</html>


En dit is de code van _include-config.php en dit is dan ook echt alles.

code:
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
<?php /* ------------------------- */
function quote_smart($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if(version_compare(phpversion(),"4.3.0") == "-1") {
return mysql_escape_string($value);
} else {
return mysql_real_escape_string($value);
}
}

  if(!(@mysql_pconnect("*","*","*") && @mysql_select_db("deb165_share"))) {
    print <<<ENDHTML
<html>


<head>
<title>Iamotor.nl Share.</title>
<link rel="stylesheet" type="text/css" href="css-v1.css">

</head>


<body style="background: #AA3C3C; margin: 0px;">
  <table width=100%>
    <tr><td class="subTitle"><b>Database Error</b></td></tr>
    <tr><td class="mainTxt">
    Er is een fout opgetreden in de database
    </td></tr>
  </table>
</body>

</html>
ENDHTML;
    exit;
  }


  
  include("_include-funcs.php");
  if(isset($_SESSION['login'])) {
    $dbres              = mysql_query("SELECT *,UNIX_TIMESTAMP(`signup`) AS `signup`,UNIX_TIMESTAMP(`online`) AS `online` FROM `[users]` WHERE `login`='{$_SESSION['login']}'");
    $data               = mysql_fetch_object($dbres);
  }

  if(((count($_POST) > 0 && !isset($_POST['omnilog'])) || ($_POST['omnilog'] == 1 && count($_GET) > 1)) && isset($OMNILOG)) {
    $forwardedFor           = ($_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['HTTP_CLIENT_IP'];
    $forwardedFor           = preg_replace('/, .+/','',$forwardedFor);
    $postVars               = addslashes(var_export($_POST,TRUE));
    if($postVars == "array (\n)" || (count($_POST) == 1 && isset($_POST['omnilog'])))
      $postVars             = "";
    $getVars                = addslashes(var_export($_GET,TRUE));
    if($getVars == "array (\n)")
      $getVars              = "";
    mysql_query("INSERT INTO `[omnilog]` VALUES(NOW(),'{$_COOKIE['login']}','{$_SERVER['REMOTE_ADDR']}','$forwardedFor','{$_SERVER['PHP_SELF']}','$postVars','$getVars')");
  }

  foreach($_POST as $key => $value) {
    if(gettype($_POST[$key]) == "array")
      foreach($_POST[$key] as $key2 => $value2)
        $_POST[$key][$key2]     = addslashes($_POST[$key][$key2]);
    else
      $_POST[$key]          = addslashes($_POST[$key]);
  }
  foreach($_GET as $key => $value) {
    if(gettype($_GET[$key]) == "array")
      foreach($_GET[$key] as $key2 => $value2)
        $_GET[$key][$key2]      = addslashes($_GET[$key][$key2]);
    else
      $_GET[$key]           = addslashes($_GET[$key]);
  }
  foreach($_COOKIE as $key => $value) {
    if(gettype($_COOKIE[$key]) == "array")
      foreach($_COOKIE[$key] as $key2 => $value2)
        $_COOKIE[$key][$key2]       = addslashes($_COOKIE[$key][$key2]);
    else
      $_COOKIE[$key]            = addslashes($_COOKIE[$key]);
  }



  $clientIP             = $_SERVER['REMOTE_ADDR'];
  $forwardedFor             = ($_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['HTTP_CLIENT_IP'];
  $forwardedFor             = preg_replace('/, .+/','',$forwardedFor);
  $dbres                = mysql_query("SELECT `id` FROM `[users]` WHERE `level`='-1' AND (`IP`='$clientIP' OR `IP`='$forwardedFor')");
  if(mysql_num_rows($dbres) != 0) {
    print <<<ENDHTML
<html>


<head>
<title>Iamotor.nl Share.</title>
<link rel="stylesheet" type="text/css" >

</head>


<body style="background: #AA3C3C; margin: 0px;">
  <table width=100% height=100%>
    <tr><td class="subTitle"><b>Ban</b></td></tr>
    <tr><td class="mainTxt">
    Het IP waarmee je http://share.iamotor.nl/ bekijkt is gebanned
    </td></tr>
  </table>
</body>

</html>
ENDHTML;
    exit;
  }



  if(isset($UPDATE_DB)) {
    $dbres              = mysql_query("SELECT UNIX_TIMESTAMP(`time`) AS `time`,`name` FROM `[cron]`");
    while($x = mysql_fetch_object($dbres))
      $update[$x->name]     = $x->time;

    if(floor($update['hour']/3600) != floor(time()/3600)) {
      $dbres                = mysql_query("SELECT GET_LOCK('hour_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass          = "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='hour'");
        include("_cron_hour.php");
        mysql_query("SELECT RELEASE_LOCK('hour_update')");
      }
    }

    if(floor($update['day']/86400) != floor(time()/86400)) {
      $dbres                = mysql_query("SELECT GET_LOCK('day_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass          = "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='day'");
        include("_cron_day.php");
        mysql_query("SELECT RELEASE_LOCK('day_update')");
      }
    }

    if(floor($update['week']/604800) != floor(time()/604800)) {
      $dbres                = mysql_query("SELECT GET_LOCK('week_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass          = "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='week'");
        include("_cron_week.php");
        mysql_query("SELECT RELEASE_LOCK('week_update')");
      }
    }

    if(date('n',$update['month']) != date('n',time())) {
      $dbres                = mysql_query("SELECT GET_LOCK('month_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass          = "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='month'");
        include("_cron_month.php");
        mysql_query("SELECT RELEASE_LOCK('month_update')");
      }
    }

    if((date('G',time()) >= 16 && date('z',time()) != date('z',$update['horserace'])) || (date('G',time()) >= 21 && date('G',$update['horserace']) < 21)) {
      $dbres                = mysql_query("SELECT GET_LOCK('horserace_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass          = "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='horserace'");
        include("_cron_horserace.php");
        mysql_query("SELECT RELEASE_LOCK('horserace_update')");
      }
    }
  }

/* ------------------------- */ ?>


Zou het dan liggen aan dat ik in de include al iets zend voordat ik de sessie start?

[ Voor 87% gewijzigd door Anoniem: 242041 op 23-01-2009 15:16 . Reden: Code is er nu bijgevoegd. ]


Acties:
  • 0 Henk 'm!

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 10-05 00:38

TommyGun

Stik er maar in!

Regel 2? Wat staat er op regel 1? Ook geen spaties / lege regel ervoor?

Edit; ahzo, zie net pas de edit met files

[ Voor 24% gewijzigd door TommyGun op 23-01-2009 14:56 ]

“In a world without walls and fences, who needs Windows and Gates".


Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Als jij een editor gebruikt die UTF-8 ondersteund zie je die tekens ook meestal niet. Om het zeker te weten kun je de bestanden openen in een hex editor.

Acties:
  • 0 Henk 'm!

Anoniem: 188713

Er moet toch echt iets zijn wat voor die session_start staat, kan niet anders.

Hoi TommyGun, ken je me nog? :D

[ Voor 6% gewijzigd door Anoniem: 188713 op 23-01-2009 14:58 ]


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Anoniem: 242041 schreef op vrijdag 23 januari 2009 @ 14:52:
Het is een beetje vreemd maar ik zie geen gekke tekens staan. Ik zie alleen de foutmelding staan.
Dude, lees nou eens de eerdere opmerkingen over waardoor deze fout wordt veroorzaakt.

zie ook dit, voor als het je nog niet opvalt:
Afbeeldingslocatie: http://i41.tinypic.com/17si8g.png

Acties:
  • 0 Henk 'm!

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 10-05 00:38

TommyGun

Stik er maar in!

RAJH schreef op vrijdag 23 januari 2009 @ 14:57:
Als jij een editor gebruikt die UTF-8 ondersteund zie je die tekens ook meestal niet. Om het zeker te weten kun je de bestanden openen in een hex editor.
EditPad Pro bijvoorbeeld.
Anoniem: 188713 schreef op vrijdag 23 januari 2009 @ 14:58:
Er moet toch echt iets zijn wat voor die session_start staat, kan niet anders.

Hoi TommyGun, ken je me nog? :D
Je nick en naam komen me vaag bekend voor, maar that's it :D DM me anders eens ;)

“In a world without walls and fences, who needs Windows and Gates".


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ja, maar ik heb dat dus niet. Ik kan je ook wel een image showen. Maar ik heb dat niet.

En ik kijk via verschillende programma's en alles. En ik kijk ook via DirectAdmin heb ook alles al veranderd hoe ik het ook wil lezen met Unicode of iets anders. Maar ik zie dat helemaal nergens staan. Terwijl ik het wel is een keer bij een ander script had. En toen zag ik het wel in DirectAdmin staan.

Ik heb het nu anders opgelost. Het is als het goed nu is weg. Nog bedankt voor het helpen iedereen.

[ Voor 26% gewijzigd door Anoniem: 242041 op 23-01-2009 15:06 ]


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 08-05 17:49
Anoniem: 242041 schreef op vrijdag 23 januari 2009 @ 15:01:
Ik heb het nu anders opgelost. Het is als het goed nu is weg. Nog bedankt voor het helpen iedereen.
Vertel je dan ook even wat je hebt gedaan?

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Anoniem: 242041 schreef op vrijdag 23 januari 2009 @ 15:01:
Ja, maar ik heb dat dus niet. Ik kan je ook wel een image showen. Maar ik heb dat niet.

En ik kijk via verschillende programma's en alles. En ik kijk ook via DirectAdmin heb ook alles al veranderd hoe ik het ook wil lezen met Unicode of iets anders. Maar ik zie dat helemaal nergens staan. Terwijl ik het wel is een keer bij een ander script had. En toen zag ik het wel in DirectAdmin staan.
Vreemd, ik neem aan dat je de pagina wel op dezelfde server opent? Met Firefox zie ik dat de pagina is geencodeerd in ISO-8859-1. Wanneer je in Firefox handmatig de encoding op UTF-8 instelt dan zie ik de tekens ook niet. Maar nogmaals zie de eerdere posts over UTF-8 BOM.

p.s. Ik zie nu geen foutmelding meer, maar error reporting uitschakelen is ook alleen symptoonbestrijding. Ik zie hier nog steeds vreemde tekens als ik de pagina bekijk met ISO-8859-1.

[ Voor 4% gewijzigd door Noork op 23-01-2009 15:08 ]


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ow, dan ga ik er nog even kijken.

En ik heb het gewoon opgelsot met DirectAdmin inderdaad die tekens weg te halen. Alleen DirectAdmin was nog niet refreshed omdat ik nog was aangemeld op de Ftp.

Acties:
  • 0 Henk 'm!

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 10-05 00:38

TommyGun

Stik er maar in!

Noork schreef op vrijdag 23 januari 2009 @ 15:07:
[...]
p.s. Ik zie nu geen foutmelding meer, maar error reporting uitschakelen is ook alleen symptoonbestrijding. Ik zie hier nog steeds vreemde tekens als ik de pagina bekijk met ISO-8859-1.
Idem hier.

Zie http://forum.joomla.org/viewtopic.php?f=309&t=275353 voor iets soortgelijks. Staat zowel een work around als een fix.

“In a world without walls and fences, who needs Windows and Gates".


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 08-05 17:49
Anoniem: 242041 schreef op vrijdag 23 januari 2009 @ 15:10:
En ik heb het gewoon opgelsot met DirectAdmin inderdaad die tekens weg te halen.
:? Directadmin is een webinterface voor je hosting met instellingen e.d. Stond die utf-8 BOM in een config in de zin van 'prepend on every HTTP output', ofzo? :P

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10-05 13:36

MueR

Admin Tweakers Discord

is niet lief

DirectAdmin heeft ook gewoon een file manager met edit functie.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 08-05 17:49
MueR schreef op vrijdag 23 januari 2009 @ 15:21:
DirectAdmin heeft ook gewoon een file manager met edit functie.
Oh. Dan moet TS gewoon een fatsoenlijke editor gebruiken voortaan. :+

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10-05 13:36

MueR

Admin Tweakers Discord

is niet lief

Hopelijk heeft ie ondertussen zn vingers uit zijn oren gehaald en loopt hij niet meer 'lalalalalalala' te schreeuwen terwijl iedereen hier hem dat heeft geprobeerd te vertellen.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
MueR schreef op vrijdag 23 januari 2009 @ 15:26:
Hopelijk heeft ie ondertussen zn vingers uit zijn oren gehaald en loopt hij niet meer 'lalalalalalala' te schreeuwen terwijl iedereen hier hem dat heeft geprobeerd te vertellen.
haha, ik zie het helemaal voor me hoe hij achter z'n pc'tje zit :D

vv, jaja okay, maar ik moest het echt even kwijt.

[ Voor 6% gewijzigd door Noork op 23-01-2009 15:42 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Zullen we het verder maar even beschaafd en niet in de beledigende hoek zoeken? :P Als begrijp ik ook dat het een beetje frustrerend is om te zien hoe het antwoord al een paar keer is gegeven zonder dat daar iets mee gedaan wordt. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 242041

Topicstarter
Ik heb net al gezegd dat ik het via de DirectAdmin file manager het probleem heb opgelost ;). Maar doordat ik nog met de Ftp was verbonden via een omweg kreeg ik niet die tekens te zien :D. Maar ik heb het al gezegd een paar posts daarvoor dat ik het al heb verbeterd :/.

En ik zit niet met mijn vingers in mijn oren (volgens mij) en zit ook niet lalala te schreeuwen :|.

Maar nog bedankt voor oplossing. En de vele discussie's.

En ik gebruik nu momenteel Microsoft Expression Web.

[ Voor 13% gewijzigd door Anoniem: 242041 op 23-01-2009 17:34 ]


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik zie de tekens anders nog steeds. Inclusief headers sent error.

Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 06-05 12:56

Saven

Administrator

Janoz schreef op vrijdag 23 januari 2009 @ 10:20:
@Saven: In het topic is eerder al aangegeven dat die oplossing geen oplossing, maar symptoombestrijding is. Ik ben echter wel benieuwd waarom je het gequote stukje code zo slordig vind.
Hm, sorry dan heb ik er overheen gelezen :$
Maar de meeste mensen die op een minder hoog niveau scripten, gebruiken meestal geen template engine oid. Ze echo'en alles enzo overal tussendoor. Dus dan hebben ze niet veel keus :P Of ze moeten alles gaan herschrijven. Maar op zo'n hoog niveau zitten ze meestal dusdanig niet :P

Maar dat endhtml enzo doet mij altijd aan criminals denken enzo :')
NMe schreef op vrijdag 23 januari 2009 @ 10:24:
[...]

Output ná session_start() is toch helemaal niet erg? Dat is juist de bedoeling zelfs. ;)

[...]

Symptoombestrijding, én het lost in dit geval niks op. Voor iemand die zo graag erop wijst dat iemand te weinig moeite doet heb je wel érg weinig moeite gedaan om dit topic te lezen. ;)
Hehe ja :P Excuzé O+

[ Voor 3% gewijzigd door Saven op 23-01-2009 21:22 ]


Acties:
  • 0 Henk 'm!

Anoniem: 274606

Noork schreef op vrijdag 23 januari 2009 @ 19:39:
Ik zie de tekens anders nog steeds. Inclusief headers sent error.
Tja de errors zijn weer terug, maar die ' vreemde tekens' zag en zie ik niet.

Acties:
  • 0 Henk 'm!

Anoniem: 145810

Je moet beginnen met
<?
session_start();

dan je PHP

En als je de PHP sluit dan sluit je af met ?> en daar verder niks meer achteraan zetten! Dus geen lege regel op het eind gebruiken na de php afsluiting!


<?
session_start();

include('database.php' );

je site.... enz..

?>

En na de ?> geen spaties of enters meer.. anders gaat hij ook die foutmelding geven..

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Anoniem: 145810 schreef op zaterdag 24 januari 2009 @ 20:04:
En als je de PHP sluit dan sluit je af met ?> en daar verder niks meer achteraan zetten! Dus geen lege regel op het eind gebruiken na de php afsluiting!
Nee, sluittags laat je gewoon achterwege. Ze zijn niet nodig en leveren alleen maar problemen op.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Lezen jullie t topic niet? Het probleem is allang bekend, er zit een UTF8 BOM voor zn code maar zn editor is ruk dus die ziet ie niet. Pak dus een goede editor of stel in je huidige editor in dat ie die BOM niet moet plaatsen, zo simpel is t.

En ?> is inderdaad overbodig in files met puur PHP, lekker weglaten :)

[ Voor 3% gewijzigd door Cartman! op 25-01-2009 12:56 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

En wat is precies het probleem aan consequent zijn en ze wél opnemen dan? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 10-05 14:07

Sebazzz

3dp

NMe schreef op zondag 25 januari 2009 @ 13:05:
En wat is precies het probleem aan consequent zijn en ze wél opnemen dan? :?
Dat er ***mogelijk*** een whitespace erachter kan zitten ;) :')

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 08-05 17:49
Sebazzz schreef op zondag 25 januari 2009 @ 13:18:
Dat er ***mogelijk*** een whitespace erachter kan zitten ;) :')
Als je een goede editor pakt zie je dat. (Of stel je editor in dat je zoiets ziet). Ik gebruik ViM met syntax highlighting en dan zie je duidelijk afwijkende newlines en waar de file ophoudt.

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Nu online
Sebazzz schreef op zondag 25 januari 2009 @ 13:18:
[...]

Dat er ***mogelijk*** een whitespace erachter kan zitten ;) :')
Als je een nette editor gebruikt met linenumbering, dan kan je heel goed zien of er nog lege regels na je ?> zitten..

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Waarom zou je het erin zetten als het toch geen nut heeft? Net zoals je wel altijd mysql_close oid kunt aanroepen maar dat gebeurt ook automatisch.

Acties:
  • 0 Henk 'm!

  • MsG
  • Registratie: November 2007
  • Laatst online: 10:22

MsG

Forumzwerver

Ik zie dat je na je <?php een spatie na de P hebt.

Dus dit:

<?php<SPATIE>

ipv:

<?php<NIKS>

Kan dat het zijn?

[ Voor 6% gewijzigd door MsG op 25-01-2009 15:02 ]

Denk om uw spatiegebruik. Dit scheelt Tweakers.net kostbare databaseruimte! | Groninger en geïnteresseerd in Domotica? Kom naar DomoticaGrunn


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
NMe schreef op zondag 25 januari 2009 @ 13:05:
En wat is precies het probleem aan consequent zijn en ze wél opnemen dan? :?
De ?> stamt uit de tijd dat het normaal was om php en html te mixen: dan is 'ie wél zinvol. Wat er 'consequent' aan is snap ik alleen niet - het is niet alsof het nuttig is om je php-blok als 'html-tag' te zien...
MsG schreef op zondag 25 januari 2009 @ 15:02:
(...)
<?php<SPATIE>
ipv:
<?php<NIKS>
Kan dat het zijn?
Nee. Spaties binnen een codeblok boeien natuurlijk niet. Als je het topic zou hebben gelezen dan wist je dat dát probleem allang gevonden is...

Wanneer gaat PHP eindelijk die UTF-8-bom gewoon negeren? :(

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 09-05 17:45

MBV

ValHallASW schreef op zondag 25 januari 2009 @ 15:30:
[...]

De ?> stamt uit de tijd dat het normaal was om php en html te mixen: dan is 'ie wél zinvol. Wat er 'consequent' aan is snap ik alleen niet - het is niet alsof het nuttig is om je php-blok als 'html-tag' te zien...


[...]

Nee. Spaties binnen een codeblok boeien natuurlijk niet. Als je het topic zou hebben gelezen dan wist je dat dát probleem allang gevonden is...

Wanneer gaat PHP eindelijk die UTF-8-bom gewoon negeren? :(
Omdat dat niks met PHP te maken heeft, maar met Apache. Apache roept PHP pas aan zodra hij <?php tegenkomt, tot die tijd is het gewoon alsof er een html file stond.

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
MBV schreef op zondag 25 januari 2009 @ 15:40:
[...]

Omdat dat niks met PHP te maken heeft, maar met Apache. Apache roept PHP pas aan zodra hij <?php tegenkomt, tot die tijd is het gewoon alsof er een html file stond.
Ik weet niet hoe ik het subtiel moet zeggen, dus dat doe ik maar niet: bullshit. Het enige wat apache doet is naar de naam van het bestand kijken. Is het een php-bestand, dan wordt php aangeroepen (via php5_module, cgi, of wat dan ook, maar dat boeit niet). PHP doet vervolgens de gehele verwerking...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

ValHallASW schreef op zondag 25 januari 2009 @ 16:19:
[...]

Ik weet niet hoe ik het subtiel moet zeggen, dus dat doe ik maar niet: bullshit. Het enige wat apache doet is naar de naam van het bestand kijken. Is het een php-bestand, dan wordt php aangeroepen (via php5_module, cgi, of wat dan ook, maar dat boeit niet). PHP doet vervolgens de gehele verwerking...
En toch wordt HTML en PHP nog steeds gemixt door heel veel programmeurs (niet iedereen gebruikt Smarty of een andere templating engine!) en dan vind ik het wel zo consequent om gewoon overal de sluittag ook maar te gebruiken. Verder is dat hier wel héél erg offtopic overigens, maar ga nu niet mensen die een sluittag gebruiken stom noemen, want zo stom is dat niet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
NMe schreef op zondag 25 januari 2009 @ 17:34:
[...]
Verder is dat hier wel héél erg offtopic overigens, maar ga nu niet mensen die een sluittag gebruiken stom noemen, want zo stom is dat niet.
Ik heb volgens mij niemand stom genoemd vanwege een sluittag, dus leg liever dat soort woorden niet in mn mond. De grap bij dit soort dingen is dat, áls je php en html mixt, een lege regel output aan het einde van je bestand eigenlijk nooit een probleem is. Waar het problemen opleveren is in bijvoorbeeld database-include-files, en daar mix je toch geen php en html.

Kijk, als jij graag consequent wilt zijn en een ?> in alle files zetten: prima, maar het is geen toeval dat ze bij grote php-projecten géén endtags gebruiken (behalve natuurlijk weer bij phpBB, maar die code is uberhaupt vrij pijnlijk om te zien) - het heeft geen voordelen (boven 'consequentie') en het levert wél grote nadelen op, zeker voor projecten die veel contributors hebben.
Ohja, en Zend adviseert zelf om geen endtag te gebruiken.

[ Voor 4% gewijzigd door ValHallASW op 25-01-2009 20:40 ]


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 06-05 12:56

Saven

Administrator

Waarom levert een endtag gebruiken nadelen op? Welke nadelen dan?

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10-05 20:32

Matis

Rubber Rocket

Wat het probleem is met je Header Already send is het volgende;

je roept een header aan binnen je html/php troep NADAT er al grafische onderdelen (zoals tekst en plaatjes) naar de browser gestuurd zijn.

Apache krijgt dan pas een call om het anders te doen en dat vindt hij niet zo fijn.

Regel is dus;

HEADER
html/php troep
eventueel de header weer sluiten; ligt aan je call!

Hopenlijk is dit wat je zoekt!

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • jories
  • Registratie: April 2006
  • Laatst online: 21-07-2024
code:
1
2
3
4
5
    $id= $_GET['id'];
    $id2= $_GET['id2'];
    $code= $_GET['code'];
    $dbres= mysql_query("SELECT `login` FROM `[temp]` WHERE `area`='signup' AND `id`='$id' AND `code`='$code'");
    $dbres2 = mysql_query("SELECT `login` FROM `[post]` WHERE `code`='$code'");


Je input variabelen controleer je best altijd vooraleer je deze in een query stopt; zo voorkom je sql injecties of andere troep :-)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Saven schreef op zondag 25 januari 2009 @ 21:36:
Waarom levert een endtag gebruiken nadelen op? Welke nadelen dan?
Iemand die "per ongeluk" een whitespace achter zijn project aan zet is sowieso niet goed bezig dus wel of geen sluittag maakt helemaal niets uit IMO. Daarmee is het (wederom IMO) onzinnig om iemand af te raden een endtag te gebruiken.

Wat Zend daarover te zeggen heeft boeit me trouwens ook vrij weinig, aangezien ze bij Zend niet eens consequent zijn met hun naamgevingen. ;) (Respectievelijk: _ tussen woorden, alle woorden aan elkaar en camelcasing; willekeurige voorbeelden.)
toaomatis schreef op zondag 25 januari 2009 @ 23:01:
Wat het probleem is met je Header Already send is het volgende;

je roept een header aan binnen je html/php troep NADAT er al grafische onderdelen (zoals tekst en plaatjes) naar de browser gestuurd zijn.

Apache krijgt dan pas een call om het anders te doen en dat vindt hij niet zo fijn.

Regel is dus;

HEADER
html/php troep
eventueel de header weer sluiten; ligt aan je call!

Hopenlijk is dit wat je zoekt!
Je bent nou al de zoveelste die domweg op de startpost/titel reageert in dit topic. De oorzaak van het probleem is allang achterhaald en uitgelegd. ;)

[ Voor 15% gewijzigd door NMe op 26-01-2009 02:13 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • kw4h
  • Registratie: Februari 2008
  • Laatst online: 04-05 10:29
Afbeeldingslocatie: http://img529.imageshack.us/img529/7346/debomkc1.jpg

Kunnen we dit nu eindelijk afsluiten? :P
Het is nu iets te overduidelijk geworden wat het probleem is.

Met een hex-editor (HxD of zo) je php bestand openen, en de BOM verwijderen. Dit is een veelvoorkomend probleem, voornamelijk ook bij xml-bestanden en parsers. Been there, done that, removed the BOM ;)

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 10-05 14:07

Sebazzz

3dp

Of gewoon je editor dat laten aanpassen. Dit kan bijvoorbeeld in NP++ makkelijk.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]

Pagina: 1