» »

PHP cookie problem

PHP cookie problem

ROK1a ::

Lotil sem se pisanja enostavnega login sistema. Algoritem: V primeru, da obstaja cookie prikaži vsebino sicer zaporosi za geslo, ter ustavi cookie.

Problem je v tem, da ko vpišem geslo mi izpiše:
Uspesno prijavljeni. Zacnite tukaj.
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\webpage\index.php:21) in C:\AppServ\www\webpage\admin.php on line 21

Moral bi se ustvariti cookie. Poizkusil sem napisati <? setcookie ("geslo", $_POST['geslo'], time()+604800); ?> v drug file in ko sem ga zagnal je nastal cookie. V čem je težava v spodnjem primeru?


<?
include('admin/login.php');
if(isset($_COOKIE['geslo']))
{
$_SESSION['geslo'] = $_COOKIE['geslo'];
// skrita vsebina
echo "Prijavljen.";
}
else
{
echo('
<form name="login" method="post" action="index.php?page=admin&act=login">
geslo: <input type="password" name="geslo" size="25">
<input type="submit" name="submit" value="vstopi"></form>
');
}

if(($act=="login") && $_POST['geslo'] == "rok")
{
echo ('Uspesno prijavljeni. Zacnite <a href="index.php?page=admin">tukaj.</a>');
setcookie ("geslo", $_POST['geslo'], time()+604800);
}
?>
  • spremenil: ROK1a ()

trnvpeti ::

pred include delaj z cookie

ROK1a ::

Če sem te prav razumel naj pred include delam z cookie-ji ?

Brez includa:
<?
$act = $_GET['act'];

if(isset($_COOKIE['geslo']))
{
$_SESSION['geslo'] = $_COOKIE['geslo'];
echo "a";
}
else
{
echo('
<form name="login" method="post" action="index.php?page=admin&act=login">
geslo: <input type="password" name="geslo" size="25">
<input type="submit" name="submit" value="vstopi"></form>
');
}

if(($act=="login") && $_POST['geslo'] == "rok")
{
$geslo = $_POST['geslo'];
echo ('Uspesno prijavljeni. Zacnite <a href="index.php?page=admin">tukaj.</a>');
setcookie ("geslo", $_POST['geslo'], time()+604800);
}
?>

Ista težava

Ziga Dolhar ::

Ko bi vsaj poskusil poguglat tale zelo zelo znan "Cannot modify header information - headers already sent by (output started at ... on line ..." error, bemomast!

Headerje moraš pošiljat PRED kakršnokoli [prikazno] vsebino.

Narobe:

echo ('Uspesno prijavljeni. Zacnite tukaj.');
setcookie ("geslo", $_POST['geslo'], time()+604800);

Bolje:

setcookie ("geslo", $_POST['geslo'], time()+604800);
echo ('Uspesno prijavljeni. Zacnite tukaj.');

Če imaš pred tem kakšen "echo" oz. drug izpis vsebine, zadostuje že "presledek", ga skenslaj.
https://dolhar.si/

mavricek ::

Problem boš rešil tako, da boš v php.ini nastavil output_buffering na neko številko npr = 10000;
Lp

Ziga Dolhar ::

We'll party like it's 2006...
https://dolhar.si/

DC- ::

mavricek boš problem "rešil".

Naredi tako kot je rekle Ziga. Vedno manipuliraj cookije pred kakšno koli vsebino.

krho ::

Pa popravi <? v <?php
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

Ziga Dolhar ::

Še enkrat.

Ta tema je svoj namen dosegla 2006.
https://dolhar.si/


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Raziskava o ranljivosti spletnih strani z SQL bazami podatkov

Oddelek: Novice / Varnost
204777 (4113) sverde21
»

problem z phpjem

Oddelek: Izdelava spletišč
304047 (3460) snow
»

unset cookie

Oddelek: Izdelava spletišč
221776 (1583) tomitza
»

sessions

Oddelek: Izdelava spletišč
151408 (1270) multiplayer
»

php začetnik

Oddelek: Izdelava spletišč
7910 (817) bradek

Več podobnih tem