Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Sesje po raz n-ty
Forum PHP.pl > Forum > Przedszkole
Nivo
Witam!

Otóż mam autorski skrypt logowania, który rejestruje zmienne : ID usera i jego hasło. W obrębie jednej sekcji (części mojego serwisu) dane te są przechowywane wzorowo, we wszystkich podstronach.

Na innych sekcjach mam includowany ten sam plik z autoryzacją i chciałbym, aby logowanie ise na jednej stronie równało się logowaniu na wszystkich innych. Jednak pomimo tego, że sesje startuję zawsze na początku wsdzystkich indexów sekcji (przed kodami html), po sprawdzeniu

echo '<pre>';
print_r($_SESSION);
echo '</pre>';

zmienne nigdy nie wychodzą poza obręb danej sekcji, w której zostały zarejestrowane.
Jeśli potrzeba kodu skryptu autoryzującego, oto on:
Kod
<?php

session_start();

$COMMON_INCLUDED=1;
$register_script = "./register.php";

function auth_user($userid_log, $haslo_hash) {
    global $default_dbname, $user_tablename;
$link_id = db_connect($default_dbname);
    $query = "SELECT username FROM $user_tablename
                              WHERE userid = '$userid_log'
                              AND userpassword = '$haslo_hash'
                              AND ok = '1'";
    $result = mysql_query($query);
    if(!mysql_num_rows($result)) return 0;
    else {
       $query_data = mysql_fetch_row($result);
       return $query_data[0];
    }

}


function login_form() {
     global $PHP_SELF;

      echo "<center>Czym jest <A HREF=\"$PHP_SELF?action=why\">system</A> i dlaczego warto założyć w nim <A HREF=\"$PHP_SELF?action=why\">konto</A>?</center>";
      echo "<HR WIDTH=\"75%\" ALIGN=\"center\">";
      
      echo "<CENTER>Nie masz konta? <A HREF=\"$PHP_SELF?action=registeruser\">Zarejstruj się</A>!</CENTER> <BR>";

?>

<FORM METHOD="POST" ACTION="<? echo $PHP_SELF ?>">
    <DIV ALIGN="CENTER"><CENTER>
    <TABLE BORDER="0" WIDTH="115" CELLPADDING="1">
      <TR>
         <TH WIDTH="18%" ALIGN="RIGHT" NOWRAP><b>ID</b></TH>
         <TD WIDTH="33%" NOWRAP>
           <INPUT TYPE="TEXT" NAME=userid_log style="color: #B3B2B2; background-color: #000000; border-style: ridge; border-color: #B3B2B2" SIZE="8">
         </ID>
      </TR>
      <TR>
         <TH WIDTH="18%" ALIGN="RIGHT" NOWRAP><b>Hasło</b></TH>
         <TD WIDTH="33%" NOWRAP>
           <INPUT TYPE="PASSWORD" style="color: #B3B2B2; background-color: #000000; border-style: ridge; border-color: #B3B2B2"  NAME=userpassword_log SIZE="8">
         </ID>
      </TR>
      <TR>
         <TD WIDTH="75%" COLSPAN="2" ALIGN="CENTER" NOWRAP>
            <INPUT TYPE="SUBMIT" VALUE="LOGOWANIE" style="color: #B3B2B2; background-color: #000000; border-style: ridge; border-color: #B3B2B2" NAME="Sumbit">
         </TD>
      </TABLE>
    </CENTER></DIV>
</FORM>

     <center>Zapomniałeś hasła? Klikij <? echo "<a href=\"$PHP_SELF?action=remind\">tutaj</a>!"; ?></center>


<?

}

if(!isset($userpassword_log)) {
      login_form();

}
else {
      session_register("userid_log", "userpassword_log");
      $haslo_hash = sha1($userpassword_log);
      $username = auth_user($userid_log, $haslo_hash);
      global $userid;
      

      if(!$username) {
         session_unregister("userid_log");
         session_unregister("userpassword_log");
         echo "<center>Autoryzacja użytkownika nie udana!</center>";
        
       }
else {

echo "Udało się!";

}


}


?>
Koshin
Sprawdź czy identyfikator sesji jest na pozostałych podstronach taki sam jak na stronie głównej, może nie jest on poprawnie przekazywany w cookie lub innej metodzie jakiej używasz.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.