Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem logowania
Forum PHP.pl > Forum > Przedszkole
paffcio87
Witam wszystkich

Chciałbym prosić Was o pomoc dotyczącą skryptu logowania na mojej stronie, którą właśnie tworzę.
No więc problem wygląda następująco:
Kiedy testuję ów skrypt (narazie tylko na localhoscie) i podaję login i hasło, którego nie ma w bazie danych wszystko jest ok, podobnie jak podaję login i błędne hasło itp. Probley zaczynają się kiedy chce się zalogować jako użytkownik, który zarejestrował się wcześniej. Wywala mi wtedy takie oto błędy:
Kod
      <b><b>Warning</b>: Cannot modify header information - headers already  sent by (output started at  D:\Programy\WebServ\httpd\Stronka\logowanie.php:10) in <b>D:\Programy\WebServ\httpd\Stronka\logowanie.php</b> on line <b>57</b>
      
       <b>Warning</b>: Cannot modify header information - headers already sent  by (output started at  D:\Programy\WebServ\httpd\Stronka\logowanie.php:10) in <b>D:\Programy\WebServ\httpd\Stronka\logowanie.php</b> on line <b>58</b>
      
       <b>Warning</b>: Cannot modify header information - headers already sent  by (output started at  D:\Programy\WebServ\httpd\Stronka\logowanie.php:10) in <b>D:\Programy\WebServ\httpd\Stronka\logowanie.php</b> on line <b>60

Domyślam się, że chodzi o to, że do przeglądarki nie można wysłać żadnych danych przed wysłaniem cookies (chociaż mogę się mylić). No więc chciałbym zapytać jak naprawić ten bład nie zmieniając przy tym układu strony?
Poniżej jeszcze tylko kod strony:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2. <HTML>
  3. <HEAD>
  4. <META NAME="generator" CONTENT="HTML Tidy for Windows (vers 14 sierpien 2002), see www.w3.org">
  5. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  6.  <TITLE>
  7. Logowanie użytkownika
  8. </TITLE>
  9. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  10. </HEAD link="blue" vlink= "#000033">
  11. <BODY>
  12. <TABLE>
  13. <TR>
  14. <TD>
  15. <?php
  16.  
  17. include('./menu.inc');
  18. ?>
  19.  </TD>
  20.  <TD><b>
  21.  <?php
  22. if (isset ($_POST['submit'])) {
  23. $connection= @mysql_connect('localhost', 'Pawel', 'test');
  24.  $db= @mysql_select_db('klasowa', $connection);
  25. function escape_data ($data) {
  26. //Polaczenie z baza(chyba:D)
  27. if (ini_get('magic_quotes_gpc')){
  28. $data= stripslashes($data);
  29. }
  30. return mysql_real_escape_string($data);
  31. }//Koniec funkcji escape_data
  32.  //zmienna message, przechowujaca komunikaty o bledach
  33.  $message= NULL;
  34.  
  35.  
  36.  if (empty($_POST['login'])) {
  37. $login= FALSE;
  38.  $message .= '<p><font color="#FF0000">Musisz podać swój login!!!</font></p>';
  39.  } else {
  40.  $login= escape_data($_POST['login']);
  41.  }
  42. if (empty($_POST['haslo'])) {
  43.  $haslo= FALSE;
  44.  $message .= '<p><font color="#FF0000">Musisz podać hasło!!!</font></p>';
  45.  } else {
  46.  $haslo= escape_data($_POST['haslo']);
  47.  }
  48.  if ($login && $haslo) {
  49. //Sprawdzanie poprawnosci wpreowadzonych danych
  50. $query= "SELECT user_id, imie FROM userzy WHERE login='$login' AND haslo= PASSWORD('$haslo')";
  51. $result= @mysql_query ($query); //Wykonywanie zapytania do sql'a
  52.  
  53. $row= mysql_fetch_array ($result, MYSQL_NUM); //i zwracanie rekordy z bazy
  54. if ($row) {// Z bazy wyciagniety zostal wlasciwy rekord
  55. //To ustawiam ciasteczka i przekierowuje usera
  56. setcookie ('imie' , $row[1]);
  57. setcookie('user_id', $row[0]);
  58. header ("Location: http://" . $SERVER['HTTP_HOST'] .
  59.  dirname ($_SERER['PHP_SELF']) . "/zalogowany.php");
  60.  exit();
  61.  } else {
  62.  $message .= '<p><font color="#FF0000">Twój login i hasło nie zgadzają się z danymi wprowadzonymi podczas rejestracji.</font></p>';
  63.  }
  64.  mysql_close($connection);
  65.  } else {
  66.  $message .= '<p><font color="#FF0000">Spróbuj ponownie</font></p>';
  67.  }
  68. }//Koniec Submita
  69. if (isset($message)) {
  70. echo "$message";
  71. }
  72. ?></b>
  73. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  74. <legend><H2>Wprowadź swoje dane do logowania:</H2></legend>
  75. <p><font color= "black">Nazwa uzytkownika:</font> <input type= "text" name="login" size="15" maxlength= "10"></p>
  76. <p><font color="black">Hasło:</font><input type= "password" name= "haslo" size= "25" maxlength= "20"></p>
  77. <div align= "left"><input type= "submit" name= "submit" value= "Zaloguj!"></div>
  78. </td>
  79. </tr></table>
  80. </body>
  81. </html>

Z góry dziękuję za pomoc :-)
Aha dodam jeszcze tylko, że w pisaniu tego skryptu wzorowałem się na książce Larry'ego Ullmana pt. "Dynamiczne strony WWW PHP i MySQL"
Sabistik
Zamykam.
1) Błędny tytuł tematu - zgodnie z regulaminem.
2) Problem wiele razy poruszany - użyj wyszukiwarki.
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.