Toon posts:

[PHP] Headers already sent

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi ;)
Ik ben bezig met een inlogscriptje op een admin te zetten om hem te beveiligen, alleen ik krijg de melding: ''headers already sent''.

Het gaat om de volgende pagina's:
De pagina die ik wil beveiligen
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
172
173
174
175
176
<STYLE type=text/css>
    A:link      { FONT-SIZE: 8pt; COLOR: #FFOOOO; FONT-FAMILY: Verdana }
    A:visited   { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    A:hover     { FONT-SIZE: 8pt; COLOR: #669933; FONT-FAMILY: Verdana }
    A:active    { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    BODY        { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    code        { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    TABLE       { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    TD          { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    PRE         { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    input, option, textarea, select { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana }
    </STYLE>
       
<?php
//sql connectie includen
include ("connect.php");
include("login.php");
admin("gebruikersnaam", "wachtwoord", "naam");

//inkortfunctie
function getfirstwords($text, $length) {
if(strlen($text) > $length) {
$text = substr($text, 0, $length)."...";
}
return $text;
}
  
//Categorie aanmaken
if (isset($maakcataan2))     {     if ($catnaam !="" AND $catsort !="") {
                                  $insert = "INSERT INTO links_cat (id, naam, sort) VALUES ('', '$catnaam', '$catsort')";
                                  mysql_query ($insert) or die(mysql_error());
                                echo "<b>Categorie succesvol toegevoegd!</b><br><br>"; }
                                else { echo "<b>U heeft 1 van de benodigde velden niet ingevuld!</b><br><br>";}
                            }
                            
//Link toevoegen
if (isset($voegtoe))     {        mysql_query("UPDATE links_url SET status = '1' WHERE id = '$voegtoe'") or die(mysql_error());
                                echo "<b>Link succesvol toegevoegd!</b><br><br>";
                        }

//Categorie wijzigen
if (isset($wijzigcat))    {        $wcat_query = "SELECT * FROM links_cat WHERE id='$wijzigcat'";
                                $wcat_exec = mysql_query($wcat_query);
                                $wcat_result = mysql_fetch_array($wcat_exec);
                                $wcat_id = $wcat_result["id"];
                                $wcat_naam = $wcat_result["naam"];
                                $wcat_sort = $wcat_result["sort"];
                            echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0><tr><td>&nbsp;<b>Wijzig categorie</b></td></tr></table>";
                            echo "<table width=\"450\" cellpadding=0 cellspacing=0><tr><form action=\"$PHP_SELF\" method=post><td width=\"325\"><input name=\"catnaam\" type=\"text\" size=\"60\" maxlength=\"200\" value=\"".$wcat_naam."\"></td>
                            <td width=\"25\" valign=\"top\"><input name=\"catsort\" type=\"text\" size=\"5\" maxlength=\"60\" value=\"".$wcat_sort."\"></td>
                            <td width=\"100\" align=right><input type=hidden value=".$wijzigcat." name=wijzid><input name=\"wijzigcat2\" type=\"submit\" value=\"Wijzig\"></td></form></tr></table><br>";
                        }

//Categorie echt wijzigen
if (isset($wijzigcat2))     {     if ($catnaam !="" AND $catsort !="") {
                                  mysql_query("UPDATE links_cat SET naam='$catnaam', sort='$catsort' WHERE id='$wijzid'") or die(mysql_error());
                                echo "<b>Categorie succesvol gewijzigd!</b><br><br>"; }
                                else { echo "<b>U heeft 1 van de benodigde velden niet ingevuld!</b><br><br>";}
                            }

//Link wijzigen
if (isset($wijzig))        {        $gbu_query = "SELECT * FROM links_url WHERE id='$wijzig'";
                                $gbu_exec = mysql_query($gbu_query);
                                $gbu_result = mysql_fetch_array($gbu_exec);
                                $gbu_naam = $gbu_result["naam"];
                                $gbu_url = $gbu_result["url"];
                                $gbu_email = $gbu_result["email"];
                                $gbu_cat = $gbu_result["cat"];
                        $gbc_query = "SELECT naam FROM links_cat WHERE id='$gbu_cat'";
                        $gbc_exec = mysql_query($gbc_query);
                        $gbc_result = mysql_fetch_array($gbc_exec);
                        $gbc_naam = $gbc_result["naam"];
                                echo "<table width=\"450\"><tr><td width=\"125\" valign=\"top\"><b>Naam website</b> *</td><form action=\"$PHP_SELF\" method=post><td width=\"325\"><input name=\"wijznaam\" type=\"text\" size=\"60\" maxlength=\"200\" value=\"".$gbu_naam."\"></td></tr>
                                <tr><td width=\"125\" valign=\"top\"><b>Url website</b> *</td><td width=\"325\"><input name=\"wijzurl\" type=\"text\" size=\"60\" maxlength=\"200\" value=\"".$gbu_url."\"></td></tr>
                                <tr><td width=\"125\" valign=\"top\"><b>Email-adres</b> *</td><td width=\"325\"><input name=\"wijzemail\" type=\"text\" size=\"60\" maxlength=\"200\" value=\"".$gbu_email."\"></td></tr>
                                <tr><td width=\"125\" valign=\"top\"><b>Categorie</b> *</td><td width=\"325\"><select name='wijzcat'><option>".$gbc_naam."</option>";
                        $gbc_query = "SELECT * FROM links_cat ORDER BY sort";
                        $gbc_exec = mysql_query($gbc_query);
                        while ($gbc_result = mysql_fetch_array($gbc_exec)) {
                        $gbc_naam = $gbc_result["naam"];
                                echo "<option>".$gbc_naam."</option>"; }
                                echo "</select></td></tr><tr><td width=\"125\"></td><td width=\"325\"><input type=hidden value=".$wijzig." name=wijzid><input name=\"wijzig2\" type=\"submit\" value=\"Wijzig\"></td></form></tr></table><br>";
                        }

//Link echtwijzigen
if (isset($wijzig2))     {     if ($wijznaam !="" AND $wijzurl !="" AND $wijzemail !="" AND $wijzcat !="") {
                        $wijzgbc_query = "SELECT id FROM links_cat WHERE naam='$wijzcat'";
                        $wijzgbc_exec = mysql_query($wijzgbc_query);
                        $wijzgbc_result = mysql_fetch_array($wijzgbc_exec);
                        $wijzgbc_id = $wijzgbc_result["id"];
                                mysql_query("UPDATE links_url SET naam = '$wijznaam', url = '$wijzurl', cat = '$wijzgbc_id', email = '$wijzemail' WHERE id = '$wijzid'") or die(mysql_error());
                                echo "<b>Link succesvol gewijzigd!</b><br><br>"; }
                                else { echo "<b>U heeft 1 van de benodigde velden niet ingevuld!</b><br><br>";}}

//Categorie verwijderen
if (isset($verwijdercat))     {    echo "<b>Weet je zeker dat je deze categorie wilt verwijderen?</b><br>
                                <a href=$PHP_SELF?verwijdercat2=".$verwijdercat.">Ja, ik weet het zeker.</a><br>
                                <a href=$PHP_SELF>Nee, ga terug.</a><br><br>";
                            }

//echt verwijderen categorie
if     (isset($verwijdercat2)) {     $scat_query = "SELECT id FROM links_url WHERE cat='$verwijdercat2'";
                                $scat_exec = mysql_query ($scat_query);
                                $scat_count = mysql_num_rows ($scat_exec);
                                if ($scat_count == 0) {
                                mysql_query("DELETE FROM links_cat WHERE id='$verwijdercat2'") or die(mysql_error());
                                echo "<b>Categorie succesvol verwijderd!</b><br><br>"; }
                                else { echo "<b>Categorie kon niet worden verwijderd, omdat er zich nog links in bevinden!</b><br><br>";}
                            }
                            
//Link verwijderen
if (isset($verwijder))     {        echo "<b>Weet je zeker dat je deze link wilt verwijderen?</b><br>
                                <a href=$PHP_SELF?verwijder2=".$verwijder.">Ja, ik weet het zeker.</a><br>
                                <a href=$PHP_SELF>Nee, ga terug.</a><br><br>";
                        }

//echt verwijderen categorie
if     (isset($verwijder2))     {     mysql_query("DELETE FROM links_url WHERE id='$verwijder2'") or die(mysql_error());
                                echo "<b>Link succesvol verwijderd!</b><br><br>";
                            }
                            
//categorieen tonen
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0><tr><td width=325>&nbsp;<b>Categorieën</b></td><td>Sorteergetal</td></tr></table><br>";
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0>";
                    $gbc1_query = "SELECT * FROM links_cat ORDER BY sort";
                    $gbc1_exec = mysql_query($gbc1_query);
                    while ($gbc1_result = mysql_fetch_array($gbc1_exec)) {
                    $gbc1_id = $gbc1_result["id"];
                    $gbc1_naam = $gbc1_result["naam"];
                    $gbc1_sort = $gbc1_result["sort"];
                    echo "<tr><td width=325>".$gbc1_naam."</td><td width=55>".$gbc1_sort."</td><td width=35 align=right><a href=$PHP_SELF?wijzigcat=$gbc1_id>Edit</a></td><td width=35 align=right><a href=$PHP_SELF?verwijdercat=$gbc1_id>Del</a></td></tr>"; }
echo "</table><br>";
                    
//Categorie schrijven
                                $cscat_query = "SELECT id FROM links_cat";
                                $cscat_exec = mysql_query ($cscat_query);
                                $cscat_count = mysql_num_rows ($cscat_exec);
                                $volgendesort = $cscat_count + 1;
        echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0><tr><td>&nbsp;<b>Maak nieuwe categorie aan</b></td></tr></table>";
        echo "<table width=\"450\" cellpadding=0 cellspacing=0><tr><form action=\"$PHP_SELF\" method=post><td width=\"325\"><input name=\"catnaam\" type=\"text\" size=\"60\" maxlength=\"200\"></td>
        <td width=\"25\" valign=\"top\"><input name=\"catsort\" type=\"text\" size=\"5\" maxlength=\"60\" value=\"".$volgendesort."\"></td>
        <td width=\"100\" align=right><input name=\"maakcataan2\" type=\"submit\" value=\"Maak aan\"></td></form></tr></table><br>";
                                            
//wachtrij tonen
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0><tr><td>&nbsp;<b>Wachtlijst</b></td></tr></table><br>";
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0>";
                    $gbu_query = "SELECT * FROM links_url WHERE status='wachtrij' ORDER BY cat, naam";
                    $gbu_exec = mysql_query($gbu_query);
                    while ($gbu_result = mysql_fetch_array($gbu_exec)) {
                    $gbu_id = $gbu_result["id"];
                    $gbu_naam = $gbu_result["naam"];
                    $gbu_url = $gbu_result["url"];
                    $gbu_cat = $gbu_result["cat"];
                        $gbc_query = "SELECT naam FROM links_cat WHERE id='$gbu_cat'";
                        $gbc_exec = mysql_query($gbc_query);
                        $gbc_result = mysql_fetch_array($gbc_exec);
                        $gbc_naam = $gbc_result["naam"];
                    echo "<tr><td valign=top width=155>&nbsp;".getfirstwords("$gbu_naam",20)."</td><td valign=top width=150>".getfirstwords("$gbu_url",19)."</td><td valign=top width=75>".getfirstwords("$gbc_naam",9)."</td><td valign=top width=35 align=right><a href=$PHP_SELF?voegtoe=$gbu_id>Add</a></td><td valign=top width=35 align=right><a href=$PHP_SELF?verwijder=$gbu_id>Del</a>&nbsp;</td></tr>"; }
echo "</table><br>";
//huidige links tonen
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0><tr><td>&nbsp;<b>Huidige links</b></td></tr></table><br>";
echo "<table width=450  style='border-style: solid; border-color: #CCCCCC; border-width: 1;' cellpadding=0 cellspacing=0>";
                    $gbu_query = "SELECT * FROM links_url WHERE status!='wachtrij' ORDER BY cat, naam";
                    $gbu_exec = mysql_query($gbu_query);
                    while ($gbu_result = mysql_fetch_array($gbu_exec)) {
                    $gbu_id = $gbu_result["id"];
                    $gbu_naam = $gbu_result["naam"];
                    $gbu_url = $gbu_result["url"];
                    $gbu_cat = $gbu_result["cat"];
                        $gbc_query = "SELECT naam FROM links_cat WHERE id='$gbu_cat'";
                        $gbc_exec = mysql_query($gbc_query);
                        $gbc_result = mysql_fetch_array($gbc_exec);
                        $gbc_naam = $gbc_result["naam"];
                    echo "<tr><td valign=top width=155>&nbsp;".getfirstwords("$gbu_naam",20)."</td><td valign=top width=150>".getfirstwords("$gbu_url",19)."</td><td valign=top width=75>".getfirstwords("$gbc_naam",9)."</td><td valign=top width=35 align=right><a href=$PHP_SELF?wijzig=$gbu_id>Edit</a></td><td valign=top width=35 align=right><a href=$PHP_SELF?verwijder=$gbu_id>Del</a>&nbsp;</td></tr>"; }
echo "</table><br>";
?>

Met dit login script
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
<?
function admin($gebr, $ww, $naam){
    if($_COOKIE["gebrcsa".$naam] != $gebr || $_COOKIE["wwcsa".$naam] != $ww){
        if(!isset($_POST["gebruikersnaam"]) || !isset($_POST["wachtwoord"]) ){
?>
<form name="form" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="3">
  <tr>
      <td>Gebruikersnaam:</td>
    <td><input type="text" name="gebruikersnaam"></td>
  </tr>
  <tr>
      <td>Wachtwoord:</td>
    <td><input type="text" name="wachtwoord"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="inloggen" value="Inloggen"></td>
  </tr>
</table>
</form>
<?
        }
        else{
            if($_POST["gebruikersnaam"] != $gebr || $_POST["wachtwoord"] != $ww){
                echo"Je bebruikersnaam en/of wachtwoord klopt niet, <a href=\"".$_SERVER['REQUEST_URI']."\">ga terug</a>.";
            }
            else{
                setcookie("gebrcsa".$naam,$_POST["gebruikersnaam"],time()+60*60*24*7*54, "/");
                setcookie("wwcsa".$naam,$_POST["wachtwoord"],time()+60*60*24*7*54, "/");
                header("Location: ".$_SERVER['REQUEST_URI']);
            }
        }
    }
    if($_COOKIE["gebrcsa".$naam] != $gebr || $_COOKIE["wwcsa".$naam] != $ww){
        exit();
    }
}
?>


Alleen ik snap niet echt hoe ik 't moet oplossen :)

Graag hulp van een van jullie ;)

  • elmer25
  • Registratie: Februari 2002
  • Laatst online: 01-12-2021

elmer25

ooit was ik 25

Je mag de header niet meer aanpassen als er al content naar de pagina geschreven is, omdat de header dan al verzonden is. Dat betekend dat je deze regel:
code:
1
header("Location: ".$_SERVER['REQUEST_URI']);

moet doen voordat je iets naar het scherm stuurt. Je zult je code dus anders op moeten zetten.

Succes!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Hoi jan_42, en welkom op GoT. :)

Wat elmer25 zegt klopt, je kan maar één keer headers versturen, en dat kan niet meer nadat je al content verstuurd hebt naar de browser. Daar had je overigens ook prima zelf achter kunnen komen als je je foutmelding even in Google had gestopt, vandaar ook dat ik je topic dicht doe. :)

Verder is het niet echt de bedoeling dat wij hier je code gaan debuggen. Je dumpt je code en je foutmelding, en zegt feitelijk "dit heb ik, dit wil ik, los het maar op". Ik ben bang dat we hier iets meer eigen inzet verwachten dan dat. Daarnaast hoef je niet al je code te posten bij je problemen, alleen die code die relevant is. In dit geval had je bijvoorbeeld de regel waarop het foutliep kunnen posten, met eventueel ook de omliggende regels. ;)

Als laatste wil ik je nog even wijzen op onze quickstart, waarin nog eens beschreven staat hoe we graag topics zien hier in Programming & Webscripting. Het zou fijn zijn als je die even doorleest. :) P&W FAQ - De "quickstart"

Succes verder! :)

'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.


Dit topic is gesloten.