Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z header
Forum PHP.pl > Forum > Przedszkole
gegry
  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
macza
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
jarrod
  1. <?php
  2. echo '<br>'.$query;
  3. ?>

Linia 10. Wysyłasz już coś do przeglądarki i HEADER już nie zadziała...
gegry
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
mongoose
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
gegry
Niestety, nie pomoglo sad.gif Ale dzieki za checi. Pozdrawiam
jarrod
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.
envp
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...
TomASS
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ąć.
gegry
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. ?>
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.