Autor Zpráva
Tomashek
Profil
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
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==""
pouzivat
empty($prihlasen)
Tomashek
Profil
zkoušel jsem to, ale nějak mi to nešlo..to máš asi ze svojeho webu že?
Mastodont
Profil
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
nn mam to includnute do indexu takze to funguje ..
if($aa["link"]!="") $aa["link"] ;
to je podmínka na vypsaní obrázku uživatele
Tomashek
Profil
if($aa["link"]!="") $aa["link"] ;
to je podmínka na zobrazení obrázku uživatele


a cely login mam vlozeny v indexu..


sry nějak mi blbnul prohlížeč
Mastodont
Profil
Ž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
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
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
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
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
jsem to změnil na unset, ale pořád to odlogne až na podruhé
Tomashek
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.