Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z cookies
Forum PHP.pl > Forum > PHP
Ive
Mam na serverze host.sk stronę i na niej skrypty, które opierają się na cookies. Wszystko działało dobrze do dzisiaj kiedy po próbie zalogowania wyświetla się komunikat:
Kod
Warning: Cannot add header information - headers already sent by (output started at /mnt/host-users/e/v/i/evildb/lay/txt/menu.emu:48) in /mnt/host-users/e/v/i/evildb/lay/txt/login.php on line 19



Warning: Cannot add header information - headers already sent by (output started at /mnt/host-users/e/v/i/evildb/lay/txt/menu.emu:48) in /mnt/host-users/e/v/i/evildb/lay/txt/login.php on line 20

Wiem że to znaczy że nie można wysłać cookies, ale czy nie znacie sposobu na aktywowanie cookies.

Jaśniej wyrażę to tak:
Dwa tygodnie temu wrzuciłem stronę na której wykorzystywałem cookies i wszystko działało aż do dzisiaj (żeby było jasno i wyraźnie napisane ;] )

Proszę o szybką odpowiedź bo zależy mi na czasie.
mhs
sprawdz, czy przypadkiem przed wyslaniem ciasteczka nie wyslales cos do przegladarki czyli czy nie pojawil Ci sie kod html wczesniej niz wysylasz ciasteczko
Al
Cytat
czy nie pojawil Ci sie kod html wczesniej

To może być nawet zbędna spacja...
Ive
dam wam zawartość plików w których jest logowanie:
index.php:
Kod
<html>

<head>

<title>Emulation</title>

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Expires" CONTENT="-1">

<META NAME="DESCRIPTION" CONTENT="Opis strony">

<META NAME="KEYWORDS" CONTENT="slowa, kluczowe">

<link rel="StyleSheet" type="text/css" href="style.css">

</head>

<body bgcolor="#ffffff" background=gfx/bg.jpg  topmargin="25" leftmargin="24" bottommargin="0">

<center>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="688" HEIGHT="338"><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="112" background=gfx/up_1x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="112" background=gfx/up_1x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="112" background=gfx/up_1x3.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="112" background=gfx/up_1x4.jpg></TD>

</TR><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_2x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_2x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_2x3.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_2x4.jpg></TD>

</TR><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_3x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_3x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_3x3.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="172" HEIGHT="113" background=gfx/up_3x4.jpg></TD>

</TR></TABLE>

<table border=0 cellspacing=0 cellpadding=0 width=688 height=101>

<tr valign=top>

<td width=154 height=50 background=gfx/lgb.jpg></td>

<td width=400 height=50 background=gfx/b.jpg>

<center>

<?



if((isset($login)) && (isset($haslo))) {

    

    $plik = file("txt/users.txt");

    $licz = count($plik);

    for($i=0; $i<=$licz; $i++) {

  $xhaslo = md5($haslo);

  $user = explode("|XxX/|", $plik[$i]);

  if(($login==$user[0]) && ($xhaslo==$user[1])) {



     print("Login: $login<br>Multimedia: Aktiwejt;]<br>Komentarze: Aktiwejt;]<br>"); // wiadomość jeśli user jest zalogowany

    

  }



    }



} else {



    print("<form action="index.php?x=login" method=post>

    Login: <input type=text name=login>&nbsp;&nbsp;

    Hasło: <input type=text name=haslo>&nbsp;&nbsp;

    <input type=submit value=OK><BR>

    Nie masz konta?! <a href="index.php?x=add">Zarejestruj się!</a>

    </form>"); //tutaj forma wyświetlam



}



?></center>

</td>

<td width=134 height=50 background=gfx/pgb.jpg></td>

</tr><tr valign=top>

<td width=154 height=51 background=gfx/ldb.jpg></td>

<td width=400 height=51 background=gfx/db.jpg></td>

<td width=134 height=51 background=gfx/pdb.jpg></td>

</tr><tr valign=top>

<td width=154 height=64 background=gfx/lpm.jpg></td>

<td width=400 height=64 background=gfx/spm.jpg></td>

<td width=134 height=64 background=gfx/ppm.jpg></td>

</tr></table>

<table border=0 cellspacing=0 cellpadding=0 width=688 background=gfx/bg1.jpg>

<tr valign=top><td width=35></td>

<td width=209>

<? require("txt/menu.emu"); ?>

</td>

<td width=7></td>

<td width=410>

<?



if($x==""){

    

    $x = "news/pokaz";

    

}

if(file_exists("txt/$x.php")) {



    include("txt/$x.php");

    

} else {

    

    print("Brak strony do wyświetlenia");



}



?>

</td>

<td width=27></td>

</tr></table>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="688" HEIGHT="144"><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_1x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="230" HEIGHT="48" background=gfx/down_1x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_1x3.jpg></TD>

</TR><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_2x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="230" HEIGHT="48" background=gfx/down_2x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_2x3.jpg></TD>

</TR><TR>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_3x1.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="230" HEIGHT="48" background=gfx/down_3x2.jpg></TD>

<TD ROWSPAN="1" COLSPAN="1" WIDTH="229" HEIGHT="48" background=gfx/down_3x3.jpg></TD>

</TR></TABLE>

</center>

</body>

</html>

login.php (w adresie jest to odniesione index.php?x=login):
Kod
<?



if(($login=="") && ($haslo=="")) {

    

    print("Niepodałeś loginu lub/i hasła!");

    exit();

    

}



if((isset($login)) && (isset($haslo))) {

    

    $licz = count(file("txt/users.txt"));

    $plik = file("txt/users.txt");

    for($i=0; $i<=$licz; $i++) {

  $xhaslo = md5($haslo);

  $user = explode("|XxX/|", $plik[$i]);

  if(($login==$user[0]) && ($xhaslo==$user[1])) {

    

     setcookie("haslo", $haslo, time()+3600);

     setcookie("login", $login, time()+3600);

     $loged = TRUE;

    

  }

  

    }

    

}

if ($loged) {

    

    print("Zalogowałeś się!");  

    

} else {

    

    print("Złe haslo/login");

    

}



?>

to wszystko
mam nadzieje że znajdziecie gdzie zrobiłem błąd (jeśli owy zrobiłem) i mi pomożecie
zastosowanie mozecie znaleźć na stronie www.emunation.glt.pl
adwol
Cytat
Kod
Warning: Cannot add header information - headers already sent by (output started at /mnt/host-users/e/v/i/evildb/lay/txt/menu.emu:48) in /mnt/host-users/e/v/i/evildb/lay/txt/login.php on line 19



Warning: Cannot add header information - headers already sent by (output started at /mnt/host-users/e/v/i/evildb/lay/txt/menu.emu:48) in /mnt/host-users/e/v/i/evildb/lay/txt/login.php on line 20

Zajrzyj do pliku /mnt/host-users/e/v/i/evildb/lay/txt/menu.emu i zobacz co robisz w linii 48. Tam zostało po raz pierwszy coś posłane na wyjście.

Zobacz czy takie coś z index.php:
Cytat
Kod
<? require("txt/menu.emu"); ?>

jest w odpowiednim miejscu.
Al
Cytat
Wiem że to znaczy że nie można wysłać cookies, ale czy nie znacie sposobu na aktywowanie cookies.

Jaśniej wyrażę to tak:
Dwa tygodnie temu wrzuciłem stronę na której wykorzystywałem cookies i wszystko działało (...)

W kodzie masz:
Cytat
[php:1:98126edc74]<?php
setcookie("haslo", $haslo, time()+3600);setcookie("login", $login, time()+3600);
?>[/php:1:98126edc74]

Spróbuj dodać parametr domena do cookie. Co prawda w razie braku domeny wartością domyślną jest nazwa hosta serwera, który generuje cookie, ale się kiedyś na tym naciąłem i wolę wpisywać ręcznie.
Ive
a domena to będzie 'localhost' czy 'http://host.sk' ? bo w życiu nie stosowałem tego parametru
kwiateek
Cytat
Spróbuj dodać parametr domena do cookie. Co prawda w razie braku domeny wartością domyślną jest nazwa hosta serwera, który generuje cookie, ale się kiedyś na tym naciąłem i wolę wpisywać ręcznie.

Domena nie ma nic wspólnego z rozwiązaniem poruszaonego problemu.

Rozwiązaniem problemu jest usunięcie require('login.php'); ze środka indexu (nie możesz się odwoływać do loginu tak jak do normalnych stron index.php?x=login).
Zrób osobny warunek dla logowania na poczatku index.php. Np:
[php:1:067893e951]<?php
if($_GET['x'] == 'login') {
require('login.php');
}
?>[/php:1:067893e951]

Temat nadaje się na forum początkujący. Na przyszłość proszę korzystać z wyszukiwaki i uważnie czytać manuala.

Pozdrawiam.
Ive
Cytat
Rozwiązaniem problemu jest usunięcie require('login.php'); ze środka indexu (nie możesz się odwoływać do loginu tak jak do normalnych stron index.php?x=login).
Zrób osobny warunek dla logowania na poczatku index.php. Np:
[php:1:b4e317e781]<?php
if($_GET['x'] == 'login') {
require('login.php');
}
?>[/php:1:b4e317e781]

dzięki kwiatek biggrin.gif zrobilem nie tak jak ty mi poradziełś ale to ty mnie zainspirowałeś smile.gif nie zrobiłęm tego w zmiennej index.php?x=login tylko bezpośrednio przeszedł do pliku login.php biggrin.gif Dzięki kwaiteek jeszcze raz ;]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.