Header already sent oplossing
Pagina: « vorige 1 2 3 4 volgende »
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.";
}
?>
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.";
}
?>
Dit zou moeten werken.
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
Vergeet trouwens niet dat sessies gewoon kunnen worden veranderd door een beetje hacker.
Eddy Bisschops op 09/11/2011 12:14:30:
Vergeet trouwens niet dat sessies gewoon kunnen worden veranderd door een beetje hacker.
Voorbeeldje?
Waarvan? Met Javascript kunnen gebruikers sessies wijzigen, als ik het goed heb kunnen je mede shared-hosting gebruikers ook bij je sessies.
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.
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.
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.
Sessies zijn verder veilig, als je je maar goed beschermt tegen XSS.
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
Welke error precies? Daar wordt namelijk ook in verwezen op welke regel de output gestart wordt (Bijv. index.php:35, lijn 35).
in deze code:
Code (php)
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
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
}
?>
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
Je hebt een spatie tussen je twee blokken PHP, maak ze gewoon aan elkaar vast, dan moet 'ie het doen.
zelfde resultaat. Je bedoelde toch bij de session daarboven?
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.
In de header zelf doe ik niets fout, anders zou hij de melding niet geven. Wat bedoel je met verborgen karakters?
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)
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
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');
}
}
?>
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