Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z header
gegry
post 24.02.2007, 22:37:59
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 20.02.2007

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


  1. <?php
  2. require('config.php');
  3. include "conn.inc.php";
  4.  
  5. if (isset($_POST['submit'])) {
  6. $query = "SELECT login, password FROM klienci WHERE login = '" . $_POST['login'] ."' AND password = (PASSWORD('" . $_POST['password'] . "'));";
  7. $result = mysql_query($query) or die(mysql_error());
  8. echo '<br>'.$query;
  9. if (mysql_num_rows($result) == 1) {
  10.  $_SESSION['user_logged'] = $_POST['login'];
  11.  $_SESSION['user_password'] = $_POST['password'];
  12.  header ("Refresh: 5; URL=" . $_POST['redirect'] . "");
  13.  echo "Zostajesz przekierowany, prosze czekać. <br>";
  14.  echo "Jeśli przeglądarka nie obsługuje przekierowań <a href="" . $_POST['redirect']. "">kliknij tutaj</a>";
  15. } else {
  16. ?>
  17. <html>
  18. <head>
  19. <title> </title>
  20. </head>
  21. <body>
  22. <p>
  23. Niepoprawny login użytkownika lub hasło! <br>
  24. Zarejestrowałeś się?
  25. <a href="rejestracja.php">kliknij tutaj</a>, aby się zarejestrować.<br>
  26. <form action="user_login.php" method="post">
  27. <input type="hidden" name="redirect" value="<?php echo $_POST['redirect']; ?>">
  28.  Login użytkownika: <input type="text" name="login" maxlength="15"><br>
  29.  Hasło: <input type="password" name="password"><br><br>
  30. <input type="submit" name="submit" value="Zaloguj">
  31. </form>
  32. </p>
  33. </body>
  34. </html>
  35. <?php
  36. }
  37. } else {
  38.  if (isset($_GET['redirect'])) {
  39. $redirect = "index.php";
  40.  }
  41. ?>
  42. <html>
  43. <head>
  44. <title></title>
  45. </head>
  46. <body>
  47. <p>
  48. Zaloguj się podając login i hasło ...<br>
  49. lub <a href="rejestracja.php">kliknij tutaj</a>, aby się zarejestrować.<br><br>
  50.  <form action="user_login.php" method="post">
  51.  <input type="hidden" name="redirect" value="<?php echo $redirect; ?>">
  52.  Login użytkownika:<input type="text" name="login" maxlength="15"><br>
  53.  Hasło: <input type="password" name="password"><br><br>
  54.  <input type="submit" name="submit" value="Zaloguj">
  55. </form>
  56. </p>
  57. </body>
  58. </html>
  59. <?php
  60. }
  61. ?>


Po podaniu prawidlowego loginu i hasla, nie przenosi na index.php
A komunikat jest następujący:

Warning: Cannot modify header information - headers already sent by (output started at C:\praca\user_login.php:9) in C:\praca\user_login.php on line 13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
macza
post 24.02.2007, 22:42:32
Post #2





Grupa: Zarejestrowani
Postów: 236
Pomógł: 4
Dołączył: 1.05.2006
Skąd: Lublin

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


ja to robie za pomoca:
  1. echo'<META HTTP-EQUIV="Refresh" CONTENT="5;URL=?wyloguj=1">';

a po 2 to ten header musi byc uzyty na samym poczatku

Ten post edytował macza 24.02.2007, 22:44:00


--------------------
_tworzenie stron www tanio Lublin - tworzenie stron www, tanio, szybko, solidnie, własny CMS.
Go to the top of the page
+Quote Post
jarrod
post 24.02.2007, 23:00:16
Post #3





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

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


  1. <?php
  2. echo '<br>'.$query;
  3. ?>

Linia 10. Wysyłasz już coś do przeglądarki i HEADER już nie zadziała...
Go to the top of the page
+Quote Post
gegry
post 24.02.2007, 23:12:36
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 20.02.2007

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


Przekierowywuje mnie na ta samą strone a powinno p podaniu prawidlowego loginu i hasla przeniesc na index.php. Wartość $redirect powina zmienic sie na index.php
Go to the top of the page
+Quote Post
mongoose
post 24.02.2007, 23:14:52
Post #5





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 24.02.2007

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


Witam!!
Najprawdopodobniej masz wyłączoną opcję output_buffering w konfiguracji php. Jeśli nie możesz jej zmienić, umieszczenie ob_start() na samym początku skryptu powinno pomóc. Na końcu warto umieścić ob_end_flush().
Pozdrawiam!! smile.gif
Go to the top of the page
+Quote Post
gegry
post 24.02.2007, 23:31:36
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 20.02.2007

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


Niestety, nie pomoglo sad.gif Ale dzieki za checi. Pozdrawiam
Go to the top of the page
+Quote Post
jarrod
post 24.02.2007, 23:35:59
Post #7





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

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


Ale przecież masz wyraźnie pokazane w wywalonym błędzie

Warning: Cannot modify header information - headers already sent by (output started at C:\praca\user_login.php:9) in C:\praca\user_login.php on line 13

A tam że wysłano już dane do przeglądarki w lini 9. A jeśli wysłano już pewne dane do przeglądarki to nie możesz użyć funkcji Header...
Zahaszuj tą linię i spróbuj ponownie.
Go to the top of the page
+Quote Post
envp
post 25.02.2007, 00:09:15
Post #8





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


Cytat
Witam!!
Najprawdopodobniej masz wyłączoną opcję output_buffering w konfiguracji php. Jeśli nie możesz jej zmienić, umieszczenie ob_start() na samym początku skryptu powinno pomóc. Na końcu warto umieścić ob_end_flush().
Pozdrawiam!!


Wystrzelil jak filip z konopii smile.gif

Posłuchaj jaroda - jak wysylasz header nic nie moze przed nim byc wyslane do przegladarki...
Go to the top of the page
+Quote Post
TomASS
post 25.02.2007, 00:23:20
Post #9





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Ale o tym powinno się przeczytać w przyklejonym topicu "najczęstrze błędy pkt 6", który to post przekierowuje do PHPEdia - autor postu powinien od tego właśnie zacząć.


--------------------
Go to the top of the page
+Quote Post
gegry
post 25.02.2007, 09:46:53
Post #10





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 20.02.2007

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


Dzieki za pomoc. Juz działa. Mialem niekompletny warunek

  1. <?php
  2. if (isset($_GET['redirect'])) {
  3.  $redirect = "index.php";
  4.  }
  5. ?>


A powinno być:

  1. <?php
  2. if (isset($_GET['redirect'])) {
  3.  $redirect = $_GET['redirect'];
  4.  } else {  
  5. $redirect = "index.php";
  6.  }
  7. ?>
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: 24.07.2025 - 23:33