robal94
17.07.2009, 14:57:26
Oto fragment skryptu który ma rejestrować zmienną:
Kod
$login = $uzytkownik;
session_register("login");
?>
Jednak co sie później okazuje zmienna nie została zarejestrowana... co może być przyczyną?
erix
17.07.2009, 15:10:42
- a wiesz, że z session_register" title="Zobacz w manualu PHP" target="_manual się już nie powinno korzystać?

- zacząłeś gdzieś sesję?
planet
17.07.2009, 15:16:44
zmień kod na:
Kod
<?php
#jakby co, to ta linijka ma być na samym początku pliku
session_start();
#i gdzieś tam dalej w kodzie
$_SESSION['login'] = $uzytkownik;
?>
robal94
17.07.2009, 15:17:15
<?php
$uzytkownik = $_POST['login'];
$haslo = md5($_POST['haslo']);
$rezultat=mysql_query("select * FROM logowanie WHERE uzytkownik='$uzytkownik' AND haslo='$haslo'"); {
$_session['login'] = $uzytkownik;
$q = "SELECT rodzaj FROM logowanie WHERE uzytkownik = '$login'";
{
$_session['rodzaj'] = $row['rodzaj'];
}
echo '<center><div id="logowanie">Witaj ', $login, '!!!</div> <a class="rej" traget="_top" href=edit.php>edytuj profil</a><br></center>'; }
else{
echo '<center><table border="0"><tr><td><span class="blad">Bledne dane!</span></td></tr><tr><td><form action="logowanie.php" method="post"> <center>Logowanie</center></td></tr><tr><td><input type="text" name="login" size="25" maxlength="16" value="login..." onclick="this.value=''" /></td></tr><tr><td><input type="password" name="haslo" size="25" maxlength="32" value="hasԯ" onclick="this.value=''" /> </td></tr><tr><td><button type="sumbit">zaloguj</button></td></tr><tr><td><a class="rej" target="_top" href="rejestracja.php">Zarejestruj sie!</a></table></center><br>';
}
?>
to jest cały skrypt z użyciem tego nowego sposobu ale i tak nie działa!
planet
17.07.2009, 15:25:17
"później jest niezarejestrowana" tzn. w innym pliku? (przypominam, że fragment session_start(); trzeba zamieszczać na górze każdego nieincludowanego pliku)
a tak swoją drogą to proponuje użyć addslashes na login i hasło.
robal94
17.07.2009, 15:26:41
tak w innym pliku a session_start(); daje wszędzie na początku, i jakoś nie działa...
erix
17.07.2009, 15:30:30
A masz wszędzie ten sam identyfikator?
planet
17.07.2009, 15:32:23
A może problem jest związany ze złą konfiguracją w php.ini? Tutaj ktoś miał podobny problem, zajrzyj:
http://forum.idg.pl/tworzenie_i_utrzymywan...php-t71817.html
robal94
17.07.2009, 15:39:26
identyfikator sesji? nie patrzałem.. sprawdze..
identyfikatory są inne... jak zmienić by były takie same?
planet
17.07.2009, 15:45:24
możesz go przesyłać getem i potem robić:
Kod
session_start();
session_id($_GET['sid']);
nie wiem, czy dobrze kombinuje, ale to, że masz różne identyfikatory może być spowodowane krótką żywotnością sesji i dlatego generuje Ci nowe ID.
robal94
17.07.2009, 15:46:05
nie rozumiem...
erix
17.07.2009, 15:47:37
Ok, w jakim katalogu startujesz sesję, a z jakiego odczytujesz?
Bo prawdopodobnie ciastko "nie sięga" z podkatalogu do skryptu wyżej. Vide:
session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual.
robal94
17.07.2009, 15:48:24
wszystko jest w jednym katalogu
planet
17.07.2009, 15:48:28
sprawdź też, czy masz session.use_cookies = 1 w php.ini
robal94
17.07.2009, 15:50:10
a gdzie znajde php.ini
planet
17.07.2009, 15:51:11
w folderze, gdzie masz zainstalowane PHP.
robal94
17.07.2009, 15:53:41
ale na serwerze?
planet
17.07.2009, 15:56:28
daj przed startem sesji ini_set('session.use_cookies', 1); jak nie masz dostępu do pliku
robal94
17.07.2009, 17:18:18
i tak nie działa

chyba się poddam...
teraz zauważyłem taki blad:Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\epamiec\menu.php:9) in c:\usr\krasnal\www\epamiec\menu.php on line 20
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\epamiec\menu.php:9) in c:\usr\krasnal\www\epamiec\menu.php on line 20
erix
17.07.2009, 17:28:12
Ludzie, ile razy to było... O.o
Rusz wyszukiwarką...
robal94
17.07.2009, 20:50:33
ale robie wszystko co mówią i tak to nie znika!
erix
17.07.2009, 20:55:37
To przeczytaj jeszcze raz - tematy z tym błędem zwykle od razu zamykamy.
Przeczytaj tyle razy, aż wreszcie zrozumiesz, o co chodzi. Bo co do tego błędu, to wszystko zostało powiedziane.
robal94
17.07.2009, 20:59:25
mam dobre kodowanie UTF-8, pisze na początku ob_start(); ale i tak to sie pokazuje
erix
17.07.2009, 21:04:40
To nie wszystko szukaj i czytaj, do skutku.
robal94
17.07.2009, 23:01:31
dzieki szukałem i okazało się że w tym tkwił błąd! wszystko gra!
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.