Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

setcookie() radi u lokalu, na mrezi nece?

[es] :: PHP :: setcookie() radi u lokalu, na mrezi nece?

[ Pregleda: 2660 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.180.*



Profil

icon setcookie() radi u lokalu, na mrezi nece?12.02.2007. u 15:19 - pre 209 meseci

Poz!
U pitanju je login skripta koja podatke za pass i user cuva u cookie. Nije presudna bezbednost u ovom slucaju tako da sam se odlucio za cookie umesto session da korisnici nebi morali stalno da se registruju.

U lokalu isprobano (php 4.3.4.) sve radi kako treba, cookie pronadjem u Temporary Internet Files i login radi ok...
Kada sam hteo da isprobam skriptu na free hostingu (awardspace.com) ne mogu da se ulogujem i stalno dobijam poruku da je headers vec poslat kada stigne do linije gde treba da setuje cookie. Cookie se ne naprave i tu dolazi do pucanja.
Jasno mi je da se cookie salju sa headerom i da nece raditi ako je header vec poslat, kako u lokalu sve radi dobro..?

Pogledao sam slicne slucajeve na forumu. Uglavnom je greska kod koriscenja register globals ili je header vec poslat, ali to nije slucak kod mene.
Koristio sam setcookie(ID_my_site, $_POST['username'], $hour) i kasnije $username = $_COOKIE['ID_my_site'] , ali cookie se ne naprave.
Ako sve to radi u lokalu kako headers moze drugacije da se posalje na mrezi?
Gledao sam php info servera i nisam primetio neke bitne razlike..? Odakle da pocnem?
 
Odgovor na temu

1r0nM4n
Nenad Vasić
Web Developer
Beograd

Član broj: 55970
Poruke: 441
*.opera-mini.net.

ICQ: 303614173
Sajt: www.nenadvasic.com


+1 Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?12.02.2007. u 16:18 - pre 209 meseci
Da li mozda taj free hosting stavlja neke banere na tvoj sajt?
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.179.*



Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?12.02.2007. u 18:58 - pre 209 meseci
Nema banera ni iskacucih prozara.. nikakve reklame.
 
Odgovor na temu

milannQchevo
milan ilic
.. .. ..
Beograd

Član broj: 63681
Poruke: 86
195.252.90.*

ICQ: 235832252


Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 07:15 - pre 209 meseci
meni se cini da je potrebno da ti postavljanje cookie bude pre kompletnog koda na stranicama. znaci pre svakog koda, ukljucuju html. mozda ti je to problem? ili taj free host nije kako treba..

probaj phpnet.us ja sam se sa takvim loginom igrao na tom hostu
 
Odgovor na temu

Jezdimir Lončar
Aka Blazeme
PHP/jQuery Dev, BildStudio
Crna Gora / Pljevlja

Član broj: 74833
Poruke: 674
*.opera-mini.net.

Jabber: jezdonet@gmail.com


+4 Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 10:13 - pre 209 meseci
Vidi da li ti se nalazi neki html prije setcookie i da li nesto ispisuje prije iste.
Takođe vidi ob_ funkcije na php.net -u.
“I never think of the future - it comes soon enough.” - Albert Anštajn (Albert Einstein)
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
212.200.145.*

Sajt: https://avramovic.info


+46 Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 10:40 - pre 209 meseci
Proveri sa funkcijom headers_sent da li je heder već poslat. Ako jeste, imaš definitivno nešto pre slanja cookie-a
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.180.*



Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 16:28 - pre 209 meseci
Stvarno ne mogu da pronadjem sta se salje u header pre nego sto bi trebalo... najvise me buni to sto u lokalu sve radi dobro.
login.php radi prosto.. proveri da li postoje cookie, ako postoje i ako su odgovarajuci salje na members.php stranicu. Ako cookie ne postoje prikazuje se login forma. Kada se pritisne submit podaci se preko posta proveravaju u bazi i ako odgovaraju naprave se cookie i preko header saljem na members stranu. Evo koda:
Code:

<?php
// Konekcija na bazu
include ("konekcija.inc.php");

// Provera da li postoje cookie
if(isset($_COOKIE['ID_my_site']))

// ako postoje redirekt na members stranu

    $username = $_COOKIE['ID_my_site']; 
    $pass = $_COOKIE['Key_my_site'];
    
    $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

    while($info = mysql_fetch_array( $check ))     
        {

        if ($pass != $info['password']) 
            {
                        
            }
        else
            {
            header("Location: login/members.php");

            }

        }

}

// Ako je login forma submitovana
if (isset($_POST['submit'])) {


// Da li su popunjena oba polja
    if(!$_POST['username'] | !$_POST['pass']) {
        die('Nisu popunjena odgovarajuca polja.');
    }

    // provera da li username postoji
    if (!get_magic_quotes_gpc()) {
        $_POST['username'] = addslashes($_POST['username']);
    }

    $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

// greska ako ne postoji username
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
        die('Korisnicko ime ne postoji u bazi. <a href=add.php>Kliknite ovde za registraciju</a>');
                }


while($info = mysql_fetch_array( $check ))     
{

// md5 password
$_POST['pass'] = stripslashes($_POST['pass']);
    $info['password'] = stripslashes($info['password']);
    $_POST['pass'] = md5($_POST['pass']);

// greska ako password nije dobar
    if ($_POST['pass'] != $info['password']) {
        die('Neispravna lozinka. Molim pokusajte ponovo.');
    }

else
{
// ako je login ok napravi cookie
    
$_POST['username'] = stripslashes($_POST['username']);
    

$hour = time() + 3600; 
setcookie(ID_my_site, $_POST['username'], $hour );
setcookie(Key_my_site, $_POST['pass'], $hour, );    

// redirekt na members stranu
header("Location: login/members.php");
}

}

} else {    

// ako nema cookie
?>

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">

<tr><td>Korisnicko ime:</td><td>
<input type="text" name="username" maxlength="10">
</td></tr>
<tr><td>Lozinka:</td><td>
<input type="password" name="pass" maxlength="10">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value=" Uloguj se ">
</td></tr>
<tr><td  colspan="2">&nbsp;</td></tr>
<tr><td  colspan="2" align="right"><a href="#"><font size="2">Zaboravljena lozinka?</font></a> </td></tr>
</table>
</form>
<?php
}
?>


Zatim na members strani proveram cookie i ako je sve ok prikazuje se stranica za registrovane. evo kod za members.php

Code:

// Provera da li postoje cookie
if(isset($_COOKIE['ID_my_site'])) 

$username = $_COOKIE['ID_my_site']; 
$pass = $_COOKIE['Key_my_site']; 
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error()); 
while($info = mysql_fetch_array( $check )) 


// ako cookie ima pogresan password, poslati na index stranu
if ($pass != $info['password']) 
{ header("Location: index.php"); 


// ako je sve ok prikaz member strane...
else 

// ovde sada ide ostatak stranice...


Kada ovo postavim na mrezu dobijam gresku:

Warning: Cannot modify header information - headers already sent by (output started at url do fajla... .awardspace.com/login/konekcija.inc.php:2) in url... /login.php on line 76
Isto to dobijam za linije 76 , 77 i 80 a to je:

Code:

76: setcookie(ID_my_site, $_POST['username'], $hour);
77: setcookie(Key_my_site, $_POST['pass'], $hour);    
78:
79: // redirekt na members stranu
80: header("Location: login/members.php");


Pokusao sam da ubacim parametre za subdomen prilikom setovanja cookie, ali isto dobijam
setcookie(ID_my_site, $_POST['username'], $hour, '/', ".awardspace.com" );
Probao sam u action formi da upisem umeseto php_self ime strane i url strane.., medjutim nema razlike.

Eto, ako neko vidi neku gresku u kodu... mada pokazalo bi se to i na localhostu.
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 19:40 - pre 209 meseci
Prvo probaj prvo da postavis cookie bez drugih podataka.

if(!isset($_COOKIE['test'])) {
setcookie('test, 'test', time()+60);
} else {
ima cookija
}


Drugo proveri dali ti je konekcija.inc.php fajl zacuvan kao Unicode. Moguce je da postoji BOM. Probaj da taj fajl zacuvas kao ASCII.
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.179.*



Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 22:58 - pre 209 meseci
@glavnice, stvarno ne mogu da verujem... BOM signature u 4 fajla...
Citao sam o tome na ovom forumu, ali nikad mi nebi palo na pamet da to pogledam!

Mada i prethodno mi je Nemanja savetovao headers_sent () funkciju koju sam probao i video sam da je header poslat, ali u citavoj guzvi sam odlepio i mislio da ne kontam dobro headers_sent() posto mi je na nekoliko strana pokazivao da je header poslat, iako nije... ludilo, ovakve gluposti bas znaju da me izbace iz takta.

Hvala ljudi, stvarno ste najjaca ekipa!
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.179.*



Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?13.02.2007. u 23:01 - pre 209 meseci
Jos samo jedno potpitanje.. ako BOM salje browseru te znakove u header kako je onda radilo na mom kompu?
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?14.02.2007. u 01:01 - pre 209 meseci
Sigurno ti je localhost na win. Windows razlicno tretira te 3 bajte od Linux-a.
 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
212.200.179.*



Profil

icon Re: setcookie() radi u lokalu, na mrezi nece?14.02.2007. u 01:59 - pre 209 meseci
Upravo tako... taj host je na linuxu.

 
Odgovor na temu

[es] :: PHP :: setcookie() radi u lokalu, na mrezi nece?

[ Pregleda: 2660 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.