Warning: Cannot modify header information - headers already sent by

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Paul Lambrechts

Paul Lambrechts

30/12/2010 08:38:45
Quote Anchor link
ik had een inlog formulier dit werkte maar na het te plaatsen binnen html site kreeg ik diverse fout meldingen.
De volgende fout weet ik geen raad mee
Warning: Cannot modify header information - headers already sent by (output started at /homez.99/smartinv/www/loginnl/login.php:13) in /homez.99/smartinv/www/loginnl/login.php on line 115
$actie = $_POST['actie']; // Uit te voeren actie bepalen
if ($actie === "Inloggen" ) {

// SQL-query definiëren:
if ($actie == "Inloggen") {
$sql = "SELECT * FROM intresse WHERE email='" . $_POST["e"] ."' AND wachtwoord='". $_POST["w"]. "'"; }



// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');
// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
// Database 'test' selecteren:
mysql_select_db("smartinvpol") or die("Kon de database niet openen: " . mysql_error());
// Query zonder resultaatset uitvoeren:
$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
$row=mysql_fetch_array($result);
if(!empty($row)){
$email = $_POST["e"];
$wachtwoord = $_POST["w"];
session_register("email");
session_register("wachtwoord");



// Doorsturen naar beveiligde pagina
header("Location: beveiligd.php");
exit(); }




} if(empty($row)){
$melding = "U hebt geen geldige combinatie van e-mailadres en
wachtwoord opgegeven.<br> Indien u nog niet geregistreerd bent:<br>
<a href=\"registreer.php\">Hier registreren</a><br>";
}
// Databaseverbinding sluiten:
mysql_close($verbinding);


} else {
$emailadres = htmlentities($emailadres, ENT_QUOTES);
// Foutmelding afhankelijk van de lengte van het e-mailadres:
if (strlen($emailadres) < 1) {
$melding = "U moet een <strong>e-mailadres</strong> invoeren. ";
} else {
$melding = "<strong>$emailadres</strong> is geen geldig e-mailadres. ";
$melding .= "Verbeter het e-mailadres of voer een ander e-mailadres in. ";
}
}
}
} else {
$emailadres = "";
// Algemene instructies weergeven:
$melding = "Voer een geldig e-mailadres en paswoord in<br> ";

}


?>
dank bij voorbaat
 
PHP hulp

PHP hulp

24/11/2024 18:18:52
 
- Mark -

- Mark -

30/12/2010 08:41:45
Quote Anchor link
dat komt omdat je dit boven je html moet zetten. session_start() en header() vinden output naar de browser niet leuk.

Dit is tevens zeer verouderd. Ik zou een ander script zoeken / zelf maken.
 
Paul Lambrechts

Paul Lambrechts

30/12/2010 08:43:13
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
<?php
$actie
= $_POST['actie'];          // Uit te voeren actie bepalen
            if ($actie === "Inloggen" ) {

                // SQL-query definiëren:
                if ($actie == "Inloggen") {
                    $sql         = "SELECT * FROM intresse WHERE email='" . $_POST["e"] ."' AND wachtwoord='". $_POST["w"]. "'";  }
                
                

                // Constanten voor mysql_connect() insluiten:
                require_once('mysql_connect.inc.php');
                // Databaseverbinding openen:
                $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
                // Database 'test' selecteren:
                mysql_select_db("smartinvpol") or die("Kon de database niet openen: " . mysql_error());
                // Query zonder resultaatset uitvoeren:
                $result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
                $row=mysql_fetch_array($result);
                if(!empty($row)){
                $email = $_POST["e"];
                $wachtwoord = $_POST["w"];
                session_register("email");
                session_register("wachtwoord");


            
        // Doorsturen naar beveiligde pagina
        header("Location: beveiligd.php");
        exit(); }
          

      

            }
if(empty($row)){
            $melding = "U hebt geen geldige combinatie van e-mailadres en
                wachtwoord opgegeven.<br> Indien u nog niet geregistreerd bent:<br>
                <a href=\"registreer.php\">Hier registreren</a><br>"
;
            }

             // Databaseverbinding sluiten:
                mysql_close($verbinding);

            
        }
else {
            $emailadres = htmlentities($emailadres, ENT_QUOTES);
            // Foutmelding afhankelijk van de lengte van het e-mailadres:
            if (strlen($emailadres) < 1) {
                $melding = "U moet een <strong>e-mailadres</strong> invoeren. ";
            }
else {
                $melding  = "<strong>$emailadres</strong> is geen geldig e-mailadres. ";
                $melding .= "Verbeter het e-mailadres of voer een ander e-mailadres in. ";
            }
        }
    }
}
else {
    $emailadres = "";
    // Algemene instructies weergeven:
    $melding  = "Voer een geldig e-mailadres en  paswoord in<br> ";
    
}


 
?>
 
Jasper DS

Jasper DS

30/12/2010 08:45:33
Quote Anchor link
TIPS

gebruik $_SESSION[''] idpv session_register

bou een nette foutafhandeling, dus niet 'or die'.
Gewijzigd op 30/12/2010 08:47:23 door Jasper DS
 
Kris Peeters

Kris Peeters

30/12/2010 09:00:58
Quote Anchor link
Doet het probleem zich nog voor?

In login.php stuur je html naar de gebruiker. Lijn 13 wordt vermeld.

Toon eens het begin van login.php


EDIT
Pas ook heel goed op met includes.
Includes met functies, configuratiegegevens, ...
Daar mag niets van html los lopen.
Er mag niets staan vóór <?php .
Er mag niets staan na ?> .

Zelfs geen spatie.
Gewijzigd op 30/12/2010 09:16:03 door Kris Peeters
 
Paul Lambrechts

Paul Lambrechts

30/12/2010 09:11:49
Quote Anchor link
hier de volledige login.php

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">


<head>
<title>-</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../css/1.css" type="text/css" media="screen,projection" />
 <style type="text/css">
<!--
body {
    background-image: url(../images/backgrounds/body1a.jpg);
}
.stijl4 {
    color: #FF6600;
    font-size: 18px;
}
.stijl5 {
    color: #0066FF;
    font-weight: bold;
    font-size: 18px;
}
.stijl7 {font-size: 18px}
.stijl8 {color: #FF6600}
-->
</style></head>
 
<body>


<div id="container">
          <div id="header">
            <h1></h1>
            <h3 </h3>
          </div>
          <ul id="nav">
            <li></li>
          </ul>
          <br class="clear" />
          <div id="sidebar">
            <h1>  Welkom<br />
            </h1>
            <br />

            <div class="sidebarfooter">              
              <div align="justify"> </div>
            </div>
            <div id="sidebar_bottom"><label></label></div>
          </div>
<div id="content"></div>
            <h2 align="center"></h2>
            </div></body></html>
          

<?php
/* MySQL-query voor het maken van de databasetabel:
CREATE TABLE `nieuwsbrief` (
    `email` TINYTEXT NOT NULL
);
*/

// Het formulier alleen verwerken als er op een knop met de naam 'actie' is geklikt:


if (isset($_POST['actie'])) {
    $emailadres = $_POST['e'];             // E-mailadres lezen uit formulierveld 'e'
    $paswoord = $_POST['w'];               // Paswoord lezen uit formulierveld 'w'
    $emailadres = strip_tags($emailadres); // HTML-tags en PHP-code verwijderen
    $paswoord = strip_tags($paswoord);       //HTML-tags en PHP-code verwijderen
    $paswoord = trim($paswoord);           // Witruimte aan het begin en einde verwijderen
    $emailadres = trim($emailadres);       // Witruimte aan het begin en einde verwijderen
    $melding = "Voer een geldig e-mail adres en paswoord in";
    
    

    if (strlen($emailadres) > 50) {
        $melding  = "Fout e-mail adres ";
        
    }
else {
        require_once('../loginnl/is_email.inc.php');      // Functie is_email() insluiten
        if (is_email($emailadres)) {           // E-mailadres controleren met de functie is_email()
            $actie = $_POST['actie'];          // Uit te voeren actie bepalen
            if ($actie === "Inloggen" ) {

                // SQL-query definiëren:
                if ($actie == "Inloggen") {
                    $sql         = "SELECT * FROM intresse WHERE email='" . $_POST["e"] ."' AND wachtwoord='". $_POST["w"]. "'";  }
                
                

                // Constanten voor mysql_connect() insluiten:
                require_once('mysql_connect.inc.php');
                // Databaseverbinding openen:
                $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
                // Database 'test' selecteren:
                mysql_select_db("smartinvpol") or die("Kon de database niet openen: " . mysql_error());
                // Query zonder resultaatset uitvoeren:
                $result = mysql_query($sql) or die("Query mislukt: " . mysql_error());
                $row=mysql_fetch_array($result);
                if(!empty($row)){
                $email = $_POST["e"];
                $wachtwoord = $_POST["w"];
                session_register("email");
                session_register("wachtwoord");


            
        // Doorsturen naar beveiligde pagina
        header("Location: beveiligd.php");
        exit(); }
          

      

            }
if(empty($row)){
            $melding = "U hebt geen geldige combinatie van e-mailadres en
                wachtwoord opgegeven.<br> Indien u nog niet geregistreerd bent:<br>
                <a href=\"registreer.php\">Hier registreren</a><br>"
;
            }

             // Databaseverbinding sluiten:
                mysql_close($verbinding);

            
        }
else {
            $emailadres = htmlentities($emailadres, ENT_QUOTES);
            // Foutmelding afhankelijk van de lengte van het e-mailadres:
            if (strlen($emailadres) < 1) {
                $melding = "U moet een <strong>e-mailadres</strong> invoeren. ";
            }
else {
                $melding  = "<strong>$emailadres</strong> is geen geldig e-mailadres. ";
                $melding .= "Verbeter het e-mailadres of voer een ander e-mailadres in. ";
            }
        }
    }
}
else {
    $emailadres = "";
    // Algemene instructies weergeven:
    $melding  = "Voer een geldig e-mailadres en  paswoord in<br> ";
    
}


 
?>

<h2>Inloggen</h2>
<p><?php echo $melding; ?></p>
<form action="login.php" method="post">
  <table border="0" cellpadding="0" cellspacing="2">
    <tr>
      <td nowrap><label for="e"><span style="text-decoration: underline">E</span>-mailadres:</label></td>
    </tr>
    <tr>
      <td><input accesskey="e" id="e" name="e" maxlength="255" size="30" type="text" value="<?php echo $emailadres; ?>"><br /></td>
    </tr>
     <tr>
      <td nowrap><label for="w"><span style="text-decoration: underline">W</span>achtwoord:</label></td>
    </tr>
    <tr>
      <td><input accesskey="w" id="w" name="w" maxlength="255" size="30" type="password" value="<?php echo $paswoord; ?>"><br /><br /></td>
    </tr>
    <tr>
      <td align="center" nowrap>
        <input class="knop" name="actie" type="submit" value="Inloggen">
        <input class="knop" name="actie" type="submit" value="Wissen">
      </td>
    </tr>
  </table>
</form>
Paswoord vergeten? Klik <a href="vergeten.php" target="_blank">hier</a>


Toevoeging op 30/12/2010 09:16:39:

heb het op gelost header mee bovenaan gezet bedankt
Plaats in het vervolg [code] [/code]-tags rond je code.
[/modedit]
Gewijzigd op 30/12/2010 11:01:07 door Jens V
 
- Mark -

- Mark -

30/12/2010 09:22:21
Quote Anchor link
Mark Coenen op 30/12/2010 08:41:45:
dat komt omdat je dit boven je html moet zetten. session_start() en header() vinden output naar de browser niet leuk.

Dit is tevens zeer verouderd. Ik zou een ander script zoeken / zelf maken.
 
Kris Peeters

Kris Peeters

30/12/2010 09:30:50
Quote Anchor link
Zeg
Houd jij de mensen hun paswoord zomaar bij op je database, zonder enige encryptie?

Herinner me er aan om nooit te registreren op een site waar je aan werkt.

Er is inderdaad van alles mis met dit script.

Zoek een ander!


Sorry hoor, no offence, maar hoe meer ik kijk ...
Dit is precies Fawlty Towers. Alles wat fout kan lopen, wordt hier fout gedaan.
Ik hou dit script bij als voorbeeld van alles wat men niet hoort te doen.
Gewijzigd op 30/12/2010 10:07:19 door Kris Peeters
 
Jordi Kroon

Jordi Kroon

30/12/2010 10:28:11
Quote Anchor link
* mysql injection mogelijk
* gebruik geen * dit is een wildcard selecteer wat je wilt
* controleren of er op submit is gedrukt doe je met $_SERVER['REQUEST_METHOD'] == 'POST'
* waarom mysql_close($verbinding); ?

* zoals hierboven gebruik $_SESSION['']
 
Bart V B

Bart V B

30/12/2010 10:51:14
Quote Anchor link
Eigenlijk is het heel simpel, je moet je gehele php code bovenin zetten.
Die variabele die een foutmelding moet geven die zet je alleen in het stukje html.
Daar mis je een controlle op.

dus:
bovenin je pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

  // hier alle dingen die gecontroleerd moeten worden, database e.d.
  header('Location: beveiligd.php');
  exit();
}

?>

<html>
//de rest
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php if(isset($melding) && melding != '')
      {

         echo $melding;
      }

?>

Verder moet er zoals andere zeggen nog veel gepoetst worden in de code.
 



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.