Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem z przekierowaniem
nexis
post 5.09.2007, 23:25:47
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


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ł?

Ten post edytował nexis 6.09.2007, 00:30:05


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
qqrq
post 5.09.2007, 23:35:06
Post #2





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


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. ?>


--------------------
Go to the top of the page
+Quote Post
nexis
post 5.09.2007, 23:42:03
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


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ś.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:48