Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Link nie działa
hesus
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

Ostrzeżenie: (0%)
-----


Witam,

Od paru dni nie mogę sobie poradzić z następującym problemem:

Mam link generowany przez php w źródle index.php:

if(isset($user_login)) echo "<A HREF=new.php>Nowe zgłoszenie</A><BR>";

tylko wtedy, gdy użytkownik jest zalogowany. Generalnie to działa, ale raz na kilka kliknięć strona zachowuje się tak, jakby źródło było puste tzn. po kliknięciu mam białe okno przeglądarki, w polu adresu jest nadal index.php, po wybraniu opcji "Pokaż źródło" nie dzieje się kompletnie nic.
Używam zmiennych sessji, łączę się z bazą MS SQL, procedurę połączenia ładuję przez include(), nie wiem, co jeszcze może mieć wpływ na takie działanie skryptu.

Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hesus
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 17:11