Dzięki za zainteresowanie.
Ok. Spróbuję skonkretyzować problem. Generalnie za każdym razem kiedy zmieniam lokację strony (link, submit) istnieje duże prawdopodobieństwo, że ujrzę biały ekran i pozostanę na tej samej stronie.
Może zapomnijmy na chwilę o linku. Pokażę to na przykładzie submita, bo jeśli problem jest w kodzie, to chyba właśnie w tym miejscu.
Na początku strony mamy:
Kod
<?php
session_start();
if (session_is_registered('logon_info')) session_unregister('logon_info'); // komunikat o błędzie
?>
Dalej formularz logowanie i wyświetlanie komunikatu o błędzie:
Kod
<?php
if (isset($logon_info)) echo "<SPAN ID=serror>$logon_info</SPAN><BR>";
if (isset($user_login)) echo "<A HREF=logoff_script.php>Wyloguj <SPAN ID=sinfo>$user_login</SPAN></A><BR>";
?>
<FORM ACTION=logon_script.php METHOD=post>
<SPAN ID=title>UŻYTKOWNIK</SPAN><BR>
<INPUT ID=login TYPE=text NAME=login><BR>
<SPAN ID=title>HASŁO</SPAN><BR>
<INPUT ID=login TYPE=password NAME=password><BR>
<INPUT ID=login TYPE=submit NAME=submit VALUE=OK>
</FORM>
<?php
if(isset($user_login)) echo "<a href=new.php>Nowe zgłoszenie</a><BR>";
if(isset($user_login)) echo "<a href=archives.php>Archiwum</a>";
?>
Skrypt logowania wygląda następująco:
Kod
<?php
session_start();
if (($login=="")||($password=="")) {
$logon_info='BRAK DANYCH';
if (!session_is_registered('logon_info')) session_register('logon_info');
Header('Location: index.php');
exit;
}
include("connect/connect.php");
$results=mssql_query("SELECT kod, prawa FROM uzytkownicy WHERE login='$login' AND haslo='$password'",$connection);
mssql_close($connection);
if (mssql_num_rows($results)==0) {
$logon_info='BŁDNE DANE';
if (!session_is_registered('logon_info')) session_register('logon_info');
Header('Location: index.php');
exit;
}
$row=mssql_fetch_row($results);
$user_id=$row[0];
$user_login=$login;
$user_access=$row[1];
if (!session_is_registered('user_id')) session_register('user_id');
if (!session_is_registered('user_login')) session_register('user_login');
if (!session_is_registered('user_access')) session_register('user_access');
Header('Location: index.php');
?>
Niezależnie od tego, czy zostały wprowadzone login i hasło i czy dane są poprawne po kliknięciu na przycisk SUBMIT mogą wystąpić wyżej wymienione objawy.
Na marginesie: Pewnie wyjdę na tatalnego laika, ale nie widzę większej różnicy pomiędzy PRINT a ECHO oraz konieczności zamykania w klamrach pojedynczej instrukcji. Niemniej jednak dzięki za uwagi.