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ę!";
}
}
?>
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ę!";
}
}
?>