ďťż

Ładny brzuch

Czy ktoś może mi pomóc. Męcze się juz kilka dni, robie wszystko według książki i nie moge dojść dlaczego nie dzialają mi cookie. Sesje tez mi nie działają. Gdzie robie bład niech mi ktoś powie. Zadnego błedu mi nie wyswietla poprostu nie zapamietuje danych. o to kawalek mojego skryptu.

if (isset($_POST['submit']))

{
require_once ('mysql_connect.php');

function odwrocony_ukosnik ($data)
{
global $dbc;
if (ini_get('magic_quotes_gpc'))
{
$data = stripslashes($data);
}
return mysql_real_escape_string ($data, $dbc);
} // Koniec funkcji

$wiadomosc = NULL;

// Sprawdź nazwę uzytkownika
if (empty($_POST['uzytkownik']))
{
$uzytkownik = FALSE;
$wiadomosc .= '<p>Zapomniałeś podać nazwy użytkownika !!!</p>';
}
else
{
$uzytkownik = odwrocony_ukosnik($_POST['uzytkownik']);
}

// Sprawdź haslo uzytkownika
if (empty($_POST['haslo']))
{
$haslo = FALSE;
$wiadomosc .= '<p>Zapomniałeś podać hasła !!!</p>';
}
else
{
$haslo = odwrocony_ukosnik($_POST['haslo']);
}

// Jeżeli wszystkie dane zostały wprowadzone
if ($uzytkownik && $haslo)
{
$query = "SELECT uzytkownik_id, imie FROM test WHERE uzytkownik='$uzytkownik' AND haslo=PASSWORD('$haslo')";

$result = @mysql_query ($query);
$row = mysql_fetch_array ($result, MYSQL_NUM);

if ($row)
{
// Ustaw cooki i przekeieruj uzytkownika
setcookie ('imie', $row[1], time()+3600, '/', '', 0);
setcookie ('uzytkownik_id', $row[0], time()+3600, '/', '', 0);
header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/zalogowany.php");

exit(); // Opuść skrypt
}
else
{
$wiadomosc = '<p>Wprowadzona przez Ciebie nazwa użytkownika i hasło nie zgadzają się z naszymi danymi</p>';
}
mysql_close(); // Zamknij połączenie z bazą
}
else
{
$wiadomosc .= '<p>Spróbuj jeszcze raz</p>';
}

} // Koniec głownego wyrażenia

// Ustaw tytuł strony i dostaw nagłowek
$tytul_strony = 'Logowanie';
include ('szablony/naglowek.inc');

// Jeżeli były jakieś komunikaty błedu
if (isset($wiadomosc))
{
echo '<font color="red">'.$wiadomosc.'</font>';
}

?>

Dalej jest tylko formularz i dołączona stopka. Nic niewysylam do przegladarki przed wywolaniem cooki wiec gdzie jest bład ??? :cry:

POCZŚTKUJŚCY PROGRAMISTA !!! KRYTYKA MIŁO WIDZIANA ALE NIE DO PRZESADY



najlatwiej przetestowac czy ci dzialaja cookies obcinajac troche twoj skrypt na przyklad do takiego:
test.php3<? $row[0] = 1; $row[1] = "elou"; setcookie ('imie', $row[1], time()+3600, '/', '', 0); setcookie ('uzytkownik_id', $row[0], time()+3600, '/', '', 0); echo $uzytkownik_id." ".$imie; ?>pierwsze wejscie wysle cookie po odswiezeniu strony cookie zostana wyslane do serwera i powinny sie wyswietlic.
cookie moga nie dzialac jesli masz w przegladarce ustawione, zeby ich nie wysylac albo moze ci proxy w firewallu blokuje, ale prawdopodobnie wina lezy w twoim skrypcie.
zeby cookies sie wyslaly to skrypt musi dojsc do linii setcookie i prawdopodobnie nie dochodzi, bo po drodze jest duzo if'ow.
zeby doszlo do wyslania cookie w twoim skrypcie musi byc wyslana z formularza [przesylanie przez method=post]:
zmienna submit [nacisniecie przycisku]
niepusta zmienna uzytkownik
niepusta zmienna haslo
zapytanie do mysqla musi zwrocic wynik //obstawiam ze tu jest problem na pewno twoj skrypt laczy sie do bazy mysql i w tabeli test sa wpisane dane jakie podajesz w formularzu?
mozesz sprawdzic w ktorym miejscu jest problem wrzucajac do twojego skryptu kilka linii:
po if (isset($_POST['submit'])) {  echo "111"; po if (empty($_POST['uzytkownik'])) { echo "222"; po if (empty($_POST['haslo'])) {  echo "333"; po if ($uzytkownik && $haslo) {  echo "444"; po if ($row) {  echo "555"; i zakomentuj linie header ("Location:... zeby nie przeszedl do nowej strony i zobacz co sie wyswietli.jesli dostaniesz 111222333444555 to znaczy ze cookie sie wyslaly i problem lezy w dalszej czesci skryptu gdzie te cookies powinny byc odbierane albo po stronie konfiguracji przegladarki/firewalla. jesli dostaniesz cos krotszego niz 111222333444555 to znaczy ze skrypt nie dochodzi do miejsca wysylania cookie i musisz szukac bledu wczesniej...

pozdrawiam
pepsi^no1

Sprawdziłem to. Wstawiłem kilka funckji echo i wszystkie działają. A mimo wszystko nie wysyla mi cookie. Mam tak skonfigurowaną przeglądarke ze mi wysyła cookie. Ustawiłem nawet bym mogł monitorować wszystkie wysyłane cookie. A jednak nadal nie chce mnie zalogować. Nie wiem w czym jest juz problem.

Pozdrawiam patlysy !!!!

POCZŚTKUJŚCY PROGRAMISTA !!! KRYTYKA MIŁO WIDZIANA ALE NIE DO PRZESADY

Acha. Moze mi ktoś jeszcze cośą wytłumaczyć ???? Pewien programista powiedział mi że to może być problem z domeną cookie. O co chodzi. Czy setcookie nie ma podanych wystarczających danych ???

POCZŚTKUJŚCY PROGRAMISTA !!! KRYTYKA MIŁO WIDZIANA ALE NIE DO PRZESADY



A czy w ustawieniach PHP (zob. PHP.ini) ciasteczka są włączone:?

Kodie

Tak w ustawieniach cookie mają wartość 1 czyli wnioskuje z tego że są właczone. Chyba że jest coś o czym ja niewiem :P

POCZŚTKUJŚCY PROGRAMISTA !!! KRYTYKA MIŁO WIDZIANA ALE NIE DO PRZESADY

A czy użytkowik został dodany do bazy (jeśli tak to czy ma polskie litery i dodany ze strony PHP czy przez mysql:?)

Kodie

Ale ja tu przecicerz nie dodaje nikogo do bazy. Tylko wyciagam d uzytkownika i imie. A przecerz nikt do bazy przy tym nie jest zapisywany !!!

POCZŚTKUJŚCY PROGRAMISTA !!! KRYTYKA MIŁO WIDZIANA ALE NIE DO PRZESADY

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •