Header already sent oplossing

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

Jerry php

Jerry php

09/11/2011 12:10:29
Quote Anchor link
Maar stel voor ik doe dit, is dat correct?:

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
<?php
if($_SESSION['username'] == 'admin')
        {

            echo "U kunt de volgende opties uitvoeren:<br />";
            echo "<a href='makeuser.php'>-Voeg een gebruiker toe.</a><br />";
            echo "<a href='deleteuser.php'>-Verwijder een gebruiker.</a><br />";
            echo "<a href='edituser.php'>-Wijzig een gebruiker.</a>";
        }

        
        else
        {
            header('refresh: 2; url=home.php');
            echo "U hebt geen rechten voor deze site, u wordt teruggestuurd naar het beginscherm.";
        }

?>
 
PHP hulp

PHP hulp

26/11/2020 11:15:26
 
- Ariën -
Beheerder

- Ariën -

09/11/2011 12:12:05
Quote Anchor link
Dit zou moeten werken.
 
Jerry php

Jerry php

09/11/2011 12:13:02
Quote Anchor link
Dus het gaat er eigenlijk om of de header boven de output staat in een 'kader'? Aangezien er nu ook output staat boven de else, maar het geld alleen voor in dat 'kader' van de else
 
Eddy B

Eddy B

09/11/2011 12:14:30
Quote Anchor link
Vergeet trouwens niet dat sessies gewoon kunnen worden veranderd door een beetje hacker.
 
- SanThe -

- SanThe -

09/11/2011 12:16:19
Quote Anchor link
Eddy Bisschops op 09/11/2011 12:14:30:
Vergeet trouwens niet dat sessies gewoon kunnen worden veranderd door een beetje hacker.


Voorbeeldje?
 
Eddy B

Eddy B

09/11/2011 12:18:02
Quote Anchor link
Waarvan? Met Javascript kunnen gebruikers sessies wijzigen, als ik het goed heb kunnen je mede shared-hosting gebruikers ook bij je sessies.
 
- Ariën -
Beheerder

- Ariën -

09/11/2011 12:19:39
Quote Anchor link
Eddy Bisschops op 09/11/2011 12:18:02:
Waarvan? Met Javascript kunnen gebruikers sessies wijzigen, als ik het goed heb kunnen je mede shared-hosting gebruikers ook bij je sessies.

Met Javascript? Dat is nieuw voor mij?
Ik weet wel dat je met XSS een hoop uit kan vreten, waar o.a JS voor nodig is, maar direct met JS... dit is nieuw voor mij.
 
- SanThe -

- SanThe -

09/11/2011 12:21:51
Quote Anchor link
Eddy Bisschops op 09/11/2011 12:18:02:
Waarvan? Met Javascript kunnen gebruikers sessies wijzigen, als ik het goed heb kunnen je mede shared-hosting gebruikers ook bij je sessies.


De session staat op de server dus met javascript lijkt mij onmogelijk. En de mede gebruikers van de server kunnen dat ook niet zomaar indien de server een beetje fatsoenlijk is ingesteld. Ik zeg niet dat het niet kan, echter heb ik nog geen duidelijke uitleg gevonden hoe dat gedaan zou worden.
 
Eddy B

Eddy B

09/11/2011 12:25:26
Quote Anchor link
Ik kan het zo even niet vinden nee, maar ik heb er laatst een stuk over gelezen op een of ander blog. Hoe dan ook, ondanks dat het op de server staat kan Javascript er op een of andere manier toch bij dacht ik.

Ik weet wel zeker dat sessions vaak kunnen worden aangepast in de /tmp folder op shared hosting.

Ik ga Chris even op een reactie vragen, die weet dat een stuk beter dan ons.
 
- Ariën -
Beheerder

- Ariën -

09/11/2011 12:27:15
Quote Anchor link
Ik geloof er weinig van, of je hebt het artikel niet goed gelezen, of het artikel zelf klopt totaal niet.

Sessies zijn verder veilig, als je je maar goed beschermt tegen XSS.
 
Eddy B

Eddy B

09/11/2011 12:29:50
Quote Anchor link
Wat jij zegt over XSS klopt inderdaad, dat gebeurd ook meestal met Javascript.. volgens mij heb ik dat inderdaad verkeerd gelezen.

Deze man had er ook een zegje over: http://www.sitepoint.com/notes-on-php-session-security/
 
Jerry php

Jerry php

09/11/2011 12:31:02
Quote Anchor link
Even erop terug te komen, wat jij zegt aar, als ik de style naar beneden verplaats, doet hij het nog steeds niet.. Hij wil niet verder, header already sent.. Ik weet nog steeds geen oplossing
 
- Ariën -
Beheerder

- Ariën -

09/11/2011 12:32:35
Quote Anchor link
Welke error precies? Daar wordt namelijk ook in verwezen op welke regel de output gestart wordt (Bijv. index.php:35, lijn 35).
 
Jerry php

Jerry php

09/11/2011 12:33:19
Quote Anchor link
Warning: Cannot modify header information - headers already sent by (output started at /webspaces/jevers/extra/login.php:5) in /webspaces/jevers/extra/login.php on line 24

in deze code:

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


<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $username = $_POST['username'];
    $password = $_POST['password'];
    
    include 'dbconfig.php';
    
    $query = "SELECT *
              FROM users
              WHERE user='$username'
              AND password='$password'"
;
    
    $result = mysql_query($query)
              or die(mysql_error());
    
    if(mysql_num_rows($result))
    {

       header("refresh: 2; url=home.php");
        
       echo "Welkom terug <b>" .$username. "</b>, u word automatisch doorgestuurd.";
      
       $_SESSION['ingelogd'] = true;
       $_SESSION['username'] = $username;      
    }

    
    else
    {
        echo "Er is iets fout gegaan";
    }
}


else
{
?>

<style type="text/css">
    
    input[type="text"]
    {
        margin-left:15px;
    }
    
    input[type="password"]
    {
        margin-left: 34px;
    }
    
    input[type="submit"]
    {
        margin-left: 213px;
    }
</style>

<form action="login.php" method="post">
    Gebruikersnaam: <input type="text" name="username"/>
    <br />
    Wachtwoord: <input type="password" name="password"/>
    <br />
    <input type="submit" value="Inloggen" name="submit"/>
</form>

<?php
}

?>
Gewijzigd op 09/11/2011 12:34:53 door Jerry php
 
Eddy B

Eddy B

09/11/2011 12:35:12
Quote Anchor link
Je hebt een spatie tussen je twee blokken PHP, maak ze gewoon aan elkaar vast, dan moet 'ie het doen.
 
Jerry php

Jerry php

09/11/2011 12:36:44
Quote Anchor link
zelfde resultaat. Je bedoelde toch bij de session daarboven?
 
Eddy B

Eddy B

09/11/2011 12:38:23
Quote Anchor link
Ja, dat bedoelde ik ja. Ik ben het spoor bijster, ik werk nooit met PHP refresh en ik weet niet of je iets fout doet in de header(); zelf? Hoe dan ook, je kan proberen het bestand te openen in een plain editor om te kijken of er verborgen karakters voor staan.
 
Jerry php

Jerry php

09/11/2011 12:39:31
Quote Anchor link
In de header zelf doe ik niets fout, anders zou hij de melding niet geven. Wat bedoel je met verborgen karakters?
 
- SanThe -

- SanThe -

09/11/2011 12:40:37
Quote Anchor link
Niet dit (regel 4 is namelijk output naar de browser):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
?>


<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
....

?>


Maar dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
session_start();

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
....

?>
Gewijzigd op 09/11/2011 12:42:02 door - SanThe -
 
Jerry php

Jerry php

09/11/2011 12:41:20
Quote Anchor link
EDIT:
inderdaad het heeft geholpen. maar hoe doe ik het dan hier??
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /webspaces/jevers/extra/users.php:1) in /webspaces/jevers/extra/users.php on line 11
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
<style type="text/css">
    
a
{
    text-decoration: none;
}
    
</style>

<?php
session_start();

    if(isset($_SESSION['ingelogd']))
    {

        if($_SESSION['username'] == 'admin')
        {

            echo "U kunt de volgende opties uitvoeren:<br />";
            echo "<a href='makeuser.php'>-Voeg een gebruiker toe.</a><br />";
            echo "<a href='deleteuser.php'>-Verwijder een gebruiker.</a><br />";
            echo "<a href='edituser.php'>-Wijzig een gebruiker.</a>";
        }

        
        else
        {
            echo "U hebt geen rechten voor deze site, u wordt teruggestuurd naar het beginscherm.";
            
            if(true)
            {

                header('refresh: 2; url=home.php');
            }
        }
    }

    
    else
    {
        echo "U ben niet ingelogd, u wordt doorgestuurd naar de loginpagina.";
        
        if(true)
        {

            header('refresh: 3; url=login.php');
        }
    }


?>
Gewijzigd op 09/11/2011 12:42:42 door Jerry php
 

Pagina: « vorige 1 2 3 4 volgende »



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.