![]() |
![]() |
-Sethergal- |
![]()
Post
#1
|
Goście ![]() |
Mam pewien problem. Tworze formularz i przesylam dane przez $_POST do $_SESSION. Ale mam dostep tylko do pierwszej strony jakbym wogole nie uzywal $_SESSION. Wiem, ze robie gdzies blad (bledy) w kodzie, ale nie wiem gdzie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Oto kod INDEX.php Kod <? session_name('sid'); session_start(); session_register($user); session_register($passw); ?> ... <? if(file_exists("login.php")) { include("login.php"); } ?> LOGIN.php Kod <? session_name('sid'); session_start(); print "<p>"; $form=" <form action=\"login.php\" method=\"POST\"> <input type=\"hidden\" name=\"wyswietlony\" value=\"y\"> login<br> <input class=edit type=\"text\" name=\"name\" size=\"15\" maxlength=\"25\" value=\"\"><br> password<br> <input class=edit type=\"password\" name=\"haslo\" size=\"15\" maxlength=\"25\" value=\"\"><br> <input class=button type=\"submit\" value=\"Login\"> </form>"; $login=$_POST['name'];$password=$_POST['haslo']; $_SESSION['user']=$_POST['name'];$_SESSION['passw']=$_POST['haslo']; if($_POST['wyswietlony'] != "y") { print "$form"; print "</p>"; } else { //czy istnieje plik if(file_exists("loginy.txt")) { $dane =fopen("loginy.txt","r"); while (!feof($dane)) { //wczytuj wiersze $event= fgets($dane,4096); //podziel informacje na elementy tablicy $dane_adm = explode("|", $event); if(($login==$dane_adm[0])&&($dane_adm[0]!="")) { if(($password==$dane_adm[1])&&($dane_adm[1]!="")) {$name=$dane_adm[2]; if(file_exists("admin.php")){include("admin.php");}else{print "chwilowo nieczynne :(";}} else{print "złe hasło!";} } else {print"nieprawidłowy login!";} } fclose($dane); } else {print " zły login";} } ?> dane_adm - w pliku mam 3 dane: login, haslo i opis ADMIN.php Kod <? session_name('sid'); session_start(); ?> ... <? print"<center><h2>Witaj $name</h2></center><br>"; include ("menu.php"); print"<TABLE RULES=none valign=top cellSpacing=0 cellPadding=8 align=center border=1 width=96%><tr><td>"; //-------------SPRAWDZENIE ODNO¦NIKÓW------------- $strona=$_GET['id']; if(isset($strona)) { $strona = str_replace("http://","NONE",$strona); $dlugosc = strlen($strona.".php"); if($dlugosc<=16){ if(file_exists($strona.".php")) { //----------------------TRE¦Ć------------------------------ include($strona.".php"); //------------------------------------------------------------ } else{ print"<br><br><br><br><br><center>Strona w trakcie budowy.<br><br>"; }} } print "</td></tr></table><br></p>"; ?> MENU.php Kod <? session_name('sid'); session_start(); print" <A href=\"login.php?id=010605_t03\">01062005</A><BR> Po wcisnieciu <a> kaze mi sie ponownie zalogowac, i oczywiscie przechodzi do pusta.php, bo tak ma po login. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
sprawdz czy masz włączone register_globals
temat przewijał się na forum btw: używając $_SESSION['passw'] nie musisz używać session_register($passw); Ten post edytował ennics 31.05.2005, 17:37:04 |
|
|
-Guest- |
![]()
Post
#3
|
Goście ![]() |
mam włączone register_globals
Cytat używając $_SESSION['passw'] nie musisz używać session_register($passw); wpisalem, zeby miec pewnosc, czy tu nie tkwi blad. |
|
|
-Sethergal- |
![]()
Post
#4
|
Goście ![]() |
zmienilem kod do calkowitego minimum w jednym pliku i sprawdzam printami wartosci
Kod <? session_start(); session_register("user"); session_register("passw"); session_register("logged"); ?> ... <? $form=" <form action="index.php" method="POST"> <input type="hidden" name="wyswietlony" value="y"> login<br> <input class=edit type="text" name="name" size="15" maxlength="25" value=""><br> password<br> <input class=edit type="password" name="haslo" size="15" maxlength="25" value=""><br> <input class=button type="submit" value="Login"> </form>"; $login=$_POST['name']; $password=$_POST['haslo']; if ($_POST["wyswietlony"]!= "y"){print "$form";} if (!isset($logged)){ $logged=1; $_SESSION["logged"] = $logged; $user=$login; $_SESSION["user"]=$user; $passw=$password; $_SESSION["passw"]=$passw; } else { print"login:".$login." password:".$password."n"; print "user:".$_SESSION["user"]." passw:".$_SESSION["passw"]." logged:".$_SESSION["logged"]."n"; print "user:".$user." passw:".$passw." logged:".$logged."n"; //zamiast czytania z pliku podaje od razu if (($login=="12")&&($password=="23")) { print"<A href="index.php?id=010605_t03">01.06.2005</A><BR>"; } } ?> wyswietla $login i $password (prosto z $_POST) oraz $logged=1 (z sesji), ale nie widzi $user i passw (z sesji) prosze o pomoc - gdzie jest blad |
|
|
-Sethergal- |
![]()
Post
#5
|
Goście ![]() |
Znalazłem błąd. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Oto kod, który się zmienił: Kod if ($_POST["wyswietlony"]!= "y"){if(!isset($_SESSION["logged"])){print "$form";}}
if ($_POST['wyswietlony']){ $logged=1; $_SESSION["logged"] = $logged; $user=$login; $_SESSION["user"]=$user; $passw=$password; $_SESSION["passw"]=$passw; } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 14:44 |