Autor | Zpráva | ||
---|---|---|---|
JakubZ Profil * |
#1 · Zasláno: 30. 5. 2006, 08:44:55
Ahoj, prosímvás poraďte, už se s tím mořím opravdu dlouho. Mám PHP ověřovací stránku, která porovná s databází jméno a heslo přihlašujícího, a potom stránku kam potřebuji jméno předat pomocí session. Bohužel ač session založím a předám metodou GET do další stránky její SID, SID se v adrese neobjeví. Příklad:
http://www.server-baby.cz/dopispriteli/rozcestnik.htm Na zkoušku můžete použít jméno Jakub bez hesla. Kód přihlašovací stránky: <? session_start(); $jmeno = $_POST["jmeno"]; //session_register("jmeno"); //echo $_SESSION["jmeno"]; $_SESSION["jmeno"] = $jmeno; $hodnota=session_id(); $name = session_name(); $link = $name."=".$hodnota; $server_db = ""; $uzivatel_db = ""; $heslo_db = ""; $spojeni = MySQL_Connect($server_db, $uzivatel_db, $heslo_db) or die(mysql_error()); echo $jmeno; $num = MySQL_db_Query("serverbaby","SELECT * FROM dopispriteli WHERE jmeno = '$jmeno' AND heslo = '$heslo'") or die(mysql_error()); $jetam = mysql_num_rows($num); if ($jetam == 0) { Echo "Omlouváme se, ale nebylo možné přihlášení."; } else { // <input type=\"hidden\" value=$hodnota name=$name> echo" <form action=\"diskuse.php?".$link."\" method=\"get\"> Byli jste bezpečně přihlášeni. Pokračujte <input type=\"submit\" value=\"ZDE\"> </form> "; } ?> Kód další stránky: <? session_start(); //session_register("jmeno"); $jmeno=$_SESSION["jmeno"]; echo $jmeno; ?> <script type="text/javascript"> function Smile(what) { document.forms.smajly.vzkaz.focus(); document.forms.smajly.vzkaz.value= document.forms.smajly.vzkaz.value+what; } </script> <table align="right"> <tr> <td> <a href=odhlaseno.php>Odhlásit</a> </td> </tr> </table> <?PHP if(!isSet($jmeno)){ header("Location: chyba.htm"); } $pripojenikdat = MySQL_Connect(""); MySQL_Select_DB("serverbaby"); $vzkazodni = mysql_query("(SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE jmeno='$jmeno') UNION (SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE pro='$jmeno') ORDER BY id DESC"); $pocetzaznamu = MySQL_Num_Rows($vzkazodni); if ($pocetzaznamu<5){ echo "Nyní je registrováno ".$pocetzaznamu." vzkazů"; } echo" <table bgcolor=\"lightblue\" border=\"1\" width=\"555\"> <form action=\"pridatvzkaz.php\" name=\"smajly\" method=\"post\"> <tr> <td colspan=\"3\"> <textarea name=\"vzkaz\" id=\"vzkaz\" rows=\"8\" cols=\"65\"> </textarea> </td> </tr> <tr> <td colspan=\"3\"> <img onclick=\"Smile(':o) ')\" src=\"smajly/11.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':oI ')\" src=\"smajly/1.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-I ')\" src=\"smajly/8.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-D ')\" src=\"smajly/12.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-o ')\" src=\"smajly/4.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-( ')\" src=\"smajly/2.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-§ ')\" src=\"smajly/10.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-8 ')\" src=\"smajly/3.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*master* ')\" src=\"smajly/9.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*green* ')\" src=\"smajly/7.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*idea* ')\" src=\"smajly/6.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*attention* ')\" src=\"smajly/5.gif\" width=\"15\" height=\"15\" align=\"middle\"> </td></tr> <input type=\"hidden\" value=$jmeno name=\"jmeno\"> <input type=\"submit\" value=\"Odeslat vzkaz\"></br> "; while (list($id,$jmeno,$vzkaz,$datum) = mysql_fetch_row($vzkazodni)) { echo " <tr><td width=\"50px\">".$datum."</td><td width=\"100px\">".$jmeno."</td><td width=\"380px\">".$vzkaz."</td></tr>"; } echo " </form> </table>"; ?> |
||
WertriK Profil * |
#2 · Zasláno: 30. 5. 2006, 09:59:01
V konstante SID bude hodnota jen tehdy pokud se nepodari odeslat cookies s sessid, doufam ;)
|
||
Leo Profil |
#3 · Zasláno: 30. 5. 2006, 10:00:42
Konstanta SID tam ale nikde pouzita neni. Leo
|
||
JakubZ Profil * |
#4 · Zasláno: 30. 5. 2006, 10:10:14
Pardon, postupně jsem to upravoval, ovšem měl jsem pocit že by to takhle mělo fungovat... Místo toho je tam $link
|
||
Leo Profil |
#5 · Zasláno: 30. 5. 2006, 10:17:06
A funguji vam vubec session? Bez predavani v GETu, pokud mate zapnute cookie? Leo
|
||
JakubZ Profil * |
#6 · Zasláno: 30. 5. 2006, 10:24:20
Ještě to předělám a dám znovu link o co jde, když jsem to měl pomocí SID a adresou, ta session stejně nefungovala, omlouvám se a dodám správnou verzi.
|
||
Leo Profil |
#7 · Zasláno: 30. 5. 2006, 11:27:35
No zkuste proste
test1.php <?php session_start(); $_SESSION['x'] = 5; ?> test2.php <?php session_start(); echo $_SESSION['x']; ?> a zavolejte je oba pres adresni radek, zadny odkaz atd. Leo |
||
JakubZ Profil * |
#8 · Zasláno: 30. 5. 2006, 11:46:30
Tak jsem to zase zkousel, ostatni aplikace kde mam session fakci tak jak maji. Ale tohle ne a ne rozhybat.
V prvni strance mam jen formular[HTML] - to je ok Druhra stranka [prihlaseni] obsahuje dotaz na DB a porovnani hodnot a naplneni $_SESSION["jmeno"] = $jmeno; - to je ok Treti strana [diskuse] si vytahne z session hodnotu "jmeno" - zde je chyba, pri prvni navsteve je vse ok, ale kdyz dam F5 tak hodnota zmizne, $_SESSION["jmeno"] = "", nevim proc, nikde tam nic takoveho neni ... Ctvrta strana [pridatvzkaz], sem smeruje formulaz z diskuse a sem se ani hodnotu $_SESSION["jmeno"] nedostane. Na kazde strance jsem si nechal vypsat sessid a to je vsude stejne takze chyba bude jen v $_SESSION["jmeno"], ale bohuzel nevim presne kde. Z diskuse mi neodejde $_SESSION["jmeno"], nevim proc. Zde je kod: <? session_start(); $jmeno1 = $_SESSION["jmeno"]; // jako by ta $jmeno1 vycucla hodnotu z $_SESSION["jmeno"];, a session zustala prazdna <script type="text/javascript"> function Smile(what) { document.forms.smajly.vzkaz.focus(); document.forms.smajly.vzkaz.value= document.forms.smajly.vzkaz.value+what; } </script> <table align="right"> <tr> <td> <a href=odhlaseno.php>Odhlásit</a> </td> </tr> </table> <?PHP //if(!isSet($jmeno1)){ //header("Location: chyba.htm"); //} $pripojenikdat = MySQL_Connect(""); MySQL_Select_DB(""); $vzkazodni = mysql_query("(SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE jmeno='$jmeno1') UNION (SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE pro='$jmeno1') ORDER BY id DESC"); $pocetzaznamu = MySQL_Num_Rows($vzkazodni); if ($pocetzaznamu < 5){ echo "Nyní je registrováno ".$pocetzaznamu." vzkazů"; } echo" <table bgcolor=\"lightblue\" border=\"1\" width=\"555\"> <form action=\"pridatvzkaz.php?".SID."\" name=\"smajly\" method=\"post\"> // pri odeslani formulare v session uz hodnota neni <tr> <td colspan=\"3\"> <textarea name=\"vzkaz\" id=\"vzkaz\" rows=\"8\" cols=\"65\"> </textarea> </td> </tr> <tr> <td colspan=\"3\"> <img onclick=\"Smile(':o) ')\" src=\"smajly/11.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':oI ')\" src=\"smajly/1.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-I ')\" src=\"smajly/8.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-D ')\" src=\"smajly/12.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-o ')\" src=\"smajly/4.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-( ')\" src=\"smajly/2.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-§ ')\" src=\"smajly/10.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile(':-8 ')\" src=\"smajly/3.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*master* ')\" src=\"smajly/9.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*green* ')\" src=\"smajly/7.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*idea* ')\" src=\"smajly/6.gif\" width=\"15\" height=\"15\" align=\"middle\"> <img onclick=\"Smile('*attention* ')\" src=\"smajly/5.gif\" width=\"15\" height=\"15\" align=\"middle\"> </td></tr> <input type=\"submit\" value=\"Odeslat vzkaz\"></br> "; while (list($id,$jmeno,$vzkaz,$datum) = mysql_fetch_row($vzkazodni)) { echo " <tr><td width=\"50px\">".$datum."</td><td width=\"100px\">".$jmeno."</td><td width=\"380px\">".$vzkaz."</td></tr>"; } echo " </form> </table>"; ?> |
||
Leo Profil |
#9 · Zasláno: 30. 5. 2006, 11:50:49
Mate nejspis binec s register_globals, $jmeno a $_SESSION['jmeno'] je pak skoro totez. Leo
|
||
JakubZ Profil * |
#10 · Zasláno: 30. 5. 2006, 14:12:30
To me taky napadlo, ale zase jsem si rekl ze je to volovina aby $jmeno ovlivnila $_SESSION["jmeno"], ale je tomu tak. Maji to blbe na Czechii.
aUz vse fakci tak jak m, dekuji Leo. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0