Autor | Zpráva | ||
---|---|---|---|
Tomashek Profil |
#1 · Zasláno: 8. 4. 2008, 23:23:52 · Upravil/a: Tomashek
Zdravím..
Rozhodl jsem se, že si jen tak zkusím udělat vlastní portál. Všechno mi zatím téměř funguje tak jak bych si přál, ale když se uživatel přihlásí tak bych potřeboval nějak udělat aby byl na všech stránkách přihlášen. Napadlo mě session. Po několika neúspěších jsem se rozhodl, že to tu zkusím napsat poněvaž vůbec nevím jak na to. Byl bych hodně rád kdyby mi tu někdo s tíím pomohl..v PHP se trochu vyznám, ale session mi opravdu nejde.. Jelikož nevím přesně co je k tomu potřeba dám sem svůj přihlašovací skript <? if($prihlasen==""){?> <FORM method="post" action=""> <table width="145px" border="0"> <tr><td style="text-align:center;" colspan="2" width="100%"><b>Login</b> <tr><td height="20px" colspan="2" width="100%"> <tr><td valign="top">Nick:<td valign="top"><input class="form" type="text" name="nick" size="10"></td> <tr><td valign="top">Heslo:<td valign="top" ><input class="form" type="password" name="heslo" size="10"></td> <tr><td colspan="2" style="text-align:center;"><input class="button" type="submit" value="Přihlásit se"></td> <tr><td colspan="2" class="link"><div align="center"><a class="a" href="/?str=registrace">Registrace</a></div></td> </table> </form> <?}else{ $bb = MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE id='$prihlasen';"); //přístup k databázi $aa=MySQL_Fetch_Array($bb); $kredit=$aa[kredit]; if($aa["link"]!="") $aa["link"] ; //podmínka na obrázek uživatele else {$aa["link"]="no.gif";} echo'<TABLE border="0" width="145px"><tr><td align="center">'; echo "<table><tr><TD align=\"right\"><b>Přihlášen:</b><tr><td>$aa[nick]</table>"; echo "<table><tr><TD align=\"right\"><img src=\"/avatary/$aa[link]\" alt=\"\" border=\"0\" width=\"64px\" height=\"64px\"></table><br>"; echo "<tr><td align=\"center\" class=\"link\"><a class=\"a\" href=\"index.php?str=galerie&$url\">Galerie</a></td></tr>"; echo "<tr><td align=\"center\" class=\"link\"><a class=\"a\" href=\"index.php?str=seznam&$url\">Seznam uživatelů</a></td></tr>"; echo "<tr><td align=\"center\" class=\"link\"><a class=\"a\" href=\"index.php?str=diskuze&$url\">Diskuzní fórum</a></td></tr>"; echo "<tr><td align=\"center\" class=\"link\"><a class=\"a\" href=\"index.php?str=zmena&$url\">Změna údajů</a></td></tr>"; echo "<tr><td align=\"center\" height=\"10px\"></td></tr>"; echo "<tr><td align=\"center\" class=\"link\"><a class=\"a\" href=\"index.php?co=logout&$url\">Odhlásit se</a></td></tr>"; echo'</table>'; } ?> To $url mi zajistí, že je uživatel na těch stránkách přihlášený. Kdyby to bylo málo tak celé to najdete zde Předem děkuji za každou pomoc. |
||
Medvídek Profil |
#2 · Zasláno: 8. 4. 2008, 23:38:27
Co třeba nějak takto :
<?php session_start(); if(!empty($_POST["loginf"]) AND !empty($_POST["heslof"])) { if((mysql_result(mysql_query("SELECT COUNT(*) FROM uzivatele WHERE login = '$_POST[loginf]' AND heslo = '$_POST[heslof]'"), 0))) { $vysledek=mysql_query("SELECT * FROM uzivatele WHERE login = '$_POST[loginf]' AND heslo = '$_POST[heslof]'"); $radek=mysql_fetch_object($vysledek); $id=$radek->id; $login=$radek->login; $prava=$radek->prava; $_SESSION["prihlasen"]="1"; $_SESSION["login"]=$login; $_SESSION["prava"]=$prava; header("location:/domu/"); } if(isset($_GET["odhlasit"]) { session_destroy(); header("location:/domu/"); exit; } P.S. A neni lepsi misto $prihlasen=="" empty($prihlasen) |
||
Tomashek Profil |
#3 · Zasláno: 9. 4. 2008, 17:33:57
zkoušel jsem to, ale nějak mi to nešlo..to máš asi ze svojeho webu že?
|
||
Mastodont Profil |
#4 · Zasláno: 9. 4. 2008, 17:48:32 · Upravil/a: Mastodont
Tomashek
if($aa["link"]!="") $aa["link"] ; Co to má dělat? MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE id='$prihlasen';"); Kde bereš to $prihlasen, ty máš zapnutou register_globals? |
||
Tomashek Profil |
#5 · Zasláno: 9. 4. 2008, 21:34:35
nn mam to includnute do indexu takze to funguje ..
if($aa["link"]!="") $aa["link"] ; |
||
Tomashek Profil |
#6 · Zasláno: 9. 4. 2008, 21:35:47 · Upravil/a: Tomashek
if($aa["link"]!="") $aa["link"] ; a cely login mam vlozeny v indexu.. sry nějak mi blbnul prohlížeč |
||
Mastodont Profil |
#7 · Zasláno: 9. 4. 2008, 21:52:42 · Upravil/a: Mastodont
Že to je podmínka, to jsem pochopil, ale v případě jejího splnění se děje tohle:
$aa["link"] To je co? NIC. V else už máš něco lepšího: else {$aa["link"]="no.gif";} To už je přiřazení do proměnné, OK. Jenže o kousek dál máš zase chybu: img src=\"/avatary/$aa[link] což je něco jiného než správné img src=\"/avatary/$aa['link'] |
||
Tomashek Profil |
#8 · Zasláno: 9. 4. 2008, 22:11:41
Díky...nevíš náhodou jak do toho namontovat session ať může být uživatel přihlášen na všech stránkách?
|
||
Mastodont Profil |
#9 · Zasláno: 9. 4. 2008, 23:00:21
http://www.linuxsoft.cz/php/
To neber jako nějaké opovrhování začátečníkem, prostě je to trochu široká problematika a já už se chystám do postele. |
||
Tomashek Profil |
#10 · Zasláno: 10. 4. 2008, 18:57:40
Dobře....celkem to funguje až na to, že když dám odlog, tak to odlogne až na podruhé
if($co=="logout"){ session_unregister("id"); session_unregister("nick"); session_unregister("heslo"); $_SESSION = array(); // Vymaze vsechny promenne session_destroy(); $error="<b>Nyní jste byl odhlášen.</b>"; } |
||
Mastodont Profil |
#11 · Zasláno: 10. 4. 2008, 19:31:36
Tomashek
Nepoužívej session_unregister, ale unset, pokud pracuješ se $_SESSION. V manuálu je to zvýrazněno v barevném rámečku. If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister(). |
||
Tomashek Profil |
#12 · Zasláno: 10. 4. 2008, 19:36:51
jsem to změnil na unset, ale pořád to odlogne až na podruhé
|
||
Tomashek Profil |
#13 · Zasláno: 10. 4. 2008, 20:26:04
ok...už jsem zjistil v čem je chyba, nebo spíše není chyba. Ono se to z sessions vymaže až po chvilce takže proto...dal jsem tam jednoduše po odhlášení přesměrování na index
Díky moc všem |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0