Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z przekierowaniem
Forum PHP.pl > Forum > Przedszkole
nexis
Część stron mojego serwisu jest dostępna tylko po zalogowaniu. W związku z tym w tych skryptach importuje plik odpowiedzialny za przekierowania:

  1. <?php
  2. require 'auth.php';
  3. ?>


auth.php
  1. <?php
  2.  
  3. if (isset($_COOKIE['userid']) && isset($_COOKIE['userpw'])) {
  4. $query = "SELECT COUNT(id) FROM users WHERE id = '" . $_COOKIE['userid'] . "' AND password = '" . $_COOKIE['userpw'] . "'";
  5. $query = mysql_query( $query );
  6. $count = mysql_fetch_array( $query );
  7. if ( $count[0] != 1 ) header('location:login.php?redirect=' . $_SERVER['REQUEST_URI']);
  8. } else header('location:login.php?redirect=' . $_SERVER['REQUEST_URI']);
  9.  
  10. ?>


Za logowanie odpowiedzialny jest następujący skrypt

login.php
  1. <?php
  2. require 'config.php';
  3.  
  4. if ( isset ( $_POST['form'] ) ) {
  5. $query = "SELECT COUNT(id) FROM users WHERE email = '" . $_POST['email'] . "' AND password = '" . md5($_POST['pass']) . "'";
  6. $query = mysql_query( $query );
  7. $count = mysql_fetch_array( $query );
  8.  
  9. if ( $count[0] == 1 ) {
  10. $query = "SELECT id FROM users WHERE email = '" . $_POST['email'] . "' AND password = '" . md5($_POST['pass']) . "'";
  11. $query = mysql_query( $query );
  12. $row = mysql_fetch_array( $query );
  13. $userid = $row['id'];
  14. setcookie('userid', $userid);
  15. setcookie('userpw', md5($_POST['pass']));
  16. if (!empty($_POST['redirect'])) header('location:' . $_POST['redirect']);
  17. else header('location:index.php');
  18. } else {
  19. /* BRAK DOSTĘPU */
  20. }
  21. } else {
  22. /* FORMULARZ */
  23. }
  24. ?>


I problem jest tego typu, że kiedy wchodzę bezpośrednio na stronę, która jest zabezpieczona (powiedzmy basket.php), przekierowuje mnie na login.php?redirect=/basket.php (do tej pory prawidłowo), a później nie wiedząc czemu na login.php?redirect=/login.php. Jeśli w tym momencie przejdę bezpośrednio na basket.php to wszystko działa (czyli ciasteczka się ustawiły), ale nie wiedząc czemu przekierowania wyglądają tak:

basket.php => login.php?redirect=/basket.php => basket.php => login.php?redirect=/login.php => login.php

Ktoś ma pomysł?
qqrq
Nie wiem czy to jest odpowiedzialne za twoje bolączki, ale w "login.php" w linijce 12 powinno chyba być:

  1. <?php
  2. $row = mysql_fetch_assoc( $query );
  3. ?>
nexis
Cytat(qqrq @ 6.09.2007, 00:35:06 ) *
  1. <?php
  2. $row = mysql_fetch_assoc( $query );
  3. ?>


A co to ma do tego?

mysql_fetch_assoc — Zapisuje wiersz wyniku w tablicy asocjacyjnej
mysql_fetch_array — Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu

Niby chęci się liczą, ale nie pomogłeś.
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.