ďťż

Sesje [php]

       

Podstrony


telcocafe

Otóż chce zrobić logowanie oparte na sesjach w php. (Wiem że było, ale to co znalazłem NIE DZIAŁAŁO!)

Mam plik w którym się logujemy w formularzu:
(pass.php)

Zaloguj się do panelu administracyjnego: <form action="pass1.php" method="post"> Login: <input type="text" name="login"> <br><br> Hasło: <input type="password" name="password"> <br><br> <input type="submit" value="Zaloguj"> </form>

Do tego pliku są wysłane dane:
(pass1.php)
<? if (isset($login) && isset($password)){ if ($login == 'admin' && $password == 'pass'){  session_start();  session_register("login");  header('Location: admin.php?'.SID);  exit(); } } ?>

Oraz plik z tajnymi danymi dostępnymi dopiero po zalogowaniu:
(admin.php)
<? session_start(); if (!isset($_SESSION["login"])){ header("Location: pass.php"); exit(); } ?> Tu są moje tajne dane...

Po podaniu prawidłowego hasła nie pojawia się nic na stronie i nie jest wysyłana reszta strony w tym np. footer. Gdy hasło jest nieprawidłowe wyświela się cała strona razem z kodem html za tym skryptem w przeciwieństwie do poprawnego hasła.

Jak się zapewne domyślacie to wszystko nie działa. Nie mam pojęcia co może być błędne w tym kodzie gdyż sesji to ja się dopiero uczę. Możecie pomóc? Proszę baaaardzo o pomoc.

//KOD JEST BAARDZO OKROJONY... RESZTĘ USUNĄŁEM W PEWNOŚCI ŻE NIE W NIEJ JEST BŁĄD.



try zamiast session_register("login"); dać $_SESSION['login'] = $login

Eeee... Teraz jest zupełnie inaczej. Jak wpisze poprane hasło to jest pusta strona (Ale z footerem i z wszystkim - nie tak jak wcześniej) pass1.php, a nie admin.php. Tak samo jest jak wpisze niepoprawny login lub hasło... Kończy się na pustej pass1.php (Z wszystkim j.w.)

Pomóżcie!

a try zamiast
if (isset($login) && isset($password))
to:
if (isset($_POST[login]) && isset($_POST[password]))



Nie działa... ;(

a moze zamiast header('Location: admin.php?'.SID);
daj:
header('Location: admin.php?'.$SID);
lub
header('Location: admin.php?'.$PHPSESSID);

Nie działa... (Oczywiście wszystkie sugerowane poprawki stosuje do pierwowzoru, więc jeżeli uważacie że wasza rada z poprzednią będzie działać to piszcie.)


Nie działa... ;(

udostępnij gdzieś skrypt

zastosuj wszystkie rady:)

Do obsługiwania sesji daj taki skrypt:

if (isset($_COOKIE['session_id'])) session_id($_COOKIE['session_id']); session_start(); setcookie('session_id', session_id(), time()+86400*30);

I zrób cuś takiego :

pass.php
Zaloguj się do panelu administracyjnego: <form action="admin.php" method="post"> Login: <input type="text" name="login"> <br><br> Hasło: <input type="password" name="password"> <br><br> <input type="submit" value="Zaloguj"> </form>

admin.php
<? if (isset($_COOKIE['session_id'])) session_id($_COOKIE['session_id']); session_start(); setcookie('session_id', session_id(), time()+86400*30); $_POST[login] = $login; $_POST[password] = $pass'; if( $login ==  'admin' && $pass == 'pass') {$_SESSION[zalogowany] = TRUE;} else {$_SESSION[zalogowany] = FALSE;} if ($_SESSION[zalogowany] == TRUE) { ?> Tu są moje tajne dane... <? } else{ echo "Zły login lub hasło!";} ?>

Powinno działać. Zmiennej $_SESSION[zalogowany] możesz teraz używać na wszystkich stronach gdzie masz to:

if (isset($_COOKIE['session_id'])) session_id($_COOKIE['session_id']); session_start(); setcookie('session_id', session_id(), time()+86400*30);

To może spróbuj w taki sposób:
<input type="hidden" name="action" value="zalogowany">
i "zapamiętaj" to przez:
$_SESSION['action'];
ew.
session_register('action');

Musi dzialać :)


MIalem dokladnie taki sam problem kiedys.
Tutaj (haslo i login to slowo "test") http://ghostftp.info/tmp/pss.php jest twoj kod po pewnych przerobkach i dziala bez problemu.
A stad  http://ghostftp.info/sesje.zip mozesz go sobie sciangac i przeanalizowac miany (ograniczaja sie w zasadzie dododania jednej dodatkowej zmiennej)

1. daj kod
2. napisz jakiś bardziej zrozumiale

Eeee... Już naprawiłem. Zamiast umieszczać w formularzu index razem z docelową stroną to na docelowej stronie umieściłem albo header do nieprawidłowej, albo header do prawidłowej... :)

DZIAŁA. DZIĘKUJE WSZYSTKIM. TEMAT MOŻNA ZAMKNĄĆ.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.