Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie z przekierowaniem
Forum PHP.pl > Forum > PHP
maniek22
Mam baze z danymi: uzytkownik, haslo i url (miejsca na adres przekierowania)

Mam tez przykladowy skrypt i nie moge sobie poradzic zeby go zmodyfikowac zeby po zalogowaniu danego uzytkownika przenosil go na jego strone.
Wiem ze mozna uzyc header ale nie wychodzi mi. Moze ktos mi pomoze

Oto skrypt:
  1. <?
  2. if(!isset($uzytkownik)&&!isset($haslo))
  3. {
  4. //Użytkownik musi podać identyfikator i hasło dostępu
  5. ?>
  6. <h1>Zaloguj się</h1>
  7. Ta strona jest zastrzeżona.
  8. <form method = post action = "zastrz_baza.php">
  9. <table border = 1>
  10. <tr>
  11. <th> Użytkownik </th>
  12. <td> <input type = text name = uzytkownik> </td>
  13. </tr>
  14. <tr>
  15. <th> Hasło </th>
  16. <td> <input type = password name = haslo> </td>
  17. </tr>
  18. <tr>
  19. <td colspan =2 align = center>
  20. <input type = submit value = "Zaloguj się">
  21. </td>
  22. </tr>
  23. </form>
  24. <?
  25. }
  26. else
  27. {
  28. // połącz sie z MySQL
  29. $mysql = mysql_connect( 'localhost', 'uwierzytel', 'uwierzytel' );
  30. if(!$mysql)
  31. {
  32. echo 'Brak połączenia z bazą danych.';
  33. }
  34. // wybierz właściwą bazę danych
  35. $mysql = mysql_select_db( 'uwierz' );
  36. if(!$mysql)
  37. {
  38. echo 'Błąd wyboru bazy danych.';
  39. }
  40.  
  41. // znajdź pasujący wiersz
  42. $zapytanie = "select count(*) from uwierz where
  43. uzytkownik = '$uzytkownik' and
  44. haslo = '$haslo'";
  45.  
  46. $wynik = mysql_query( $zapytanie );
  47. if(!$wynik)
  48. {
  49. echo 'Nie można wykonać zapytania.';
  50. }
  51.  
  52. $ile = mysql_result( $wynik, 0, 0 );
  53.  
  54. if ( $ile > 0 )
  55. {
  56. // podana kombinacja: identyfikator i hasło jest prawidłowa
  57. echo "<h1>Oto ona!</h1>";
  58. echo "Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.";
  59. }
  60. else
  61. {
  62. // kombinacja: identyfikator i hasło dostępu jest nieprawidłowa
  63. echo "<h1>Odejdź stąd!</h1>";
  64. echo "Nie jesteś uprawniony do przeglądania tych zasobów.";
  65. }
  66. }
  67. ?>
Mazur_pl
  1. <?php
  2. ?>

Spróbuj
microh
  1. <?php
  2. if ( $ile > 0 )
  3. {
  4.  header('location: panel_usera.php');
  5. echo "<h1>Oto ona!</h1>";
  6. echo "Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.";
  7. }
  8. ?>


Czy o to chodziło?
maniek22
Wlasnie chcialbym zeby header przenosil na strone z bazy (kazdy uzytkownik ma inna strone). Myslalem zeby to zrobic za pomoca zmiennej $url ale cos mi nie wychodzi
mike
To może pokażesz jak próbujesz?
Czy może czekasz na gotowca lub chcesz żebyśmy sie domyślili jak to robisz?
Blajo
Może tak?

  1. <?
  2. if(!isset($uzytkownik)&&!isset($haslo))
  3. {
  4. //Użytkownik musi podać identyfikator i hasło dostępu
  5. ?>
  6. <h1>Zaloguj się</h1>
  7. Ta strona jest zastrzeżona.
  8. <form method = post action = "zastrz_baza.php">
  9. <table border = 1>
  10. <tr>
  11. <th> Użytkownik </th>
  12. <td> <input type = text name = uzytkownik> </td>
  13. </tr>
  14. <tr>
  15. <th> Hasło </th>
  16. <td> <input type = password name = haslo> </td>
  17. </tr>
  18. <tr>
  19. <td colspan =2 align = center>
  20. <input type = submit value = "Zaloguj się">
  21. </td>
  22. </tr>
  23. </form>
  24. <?
  25. }
  26. else
  27. {
  28. // połącz sie z MySQL
  29. $mysql = mysql_connect( 'localhost', 'uwierzytel', 'uwierzytel' );
  30. if(!$mysql)
  31. {
  32. echo 'Brak połączenia z bazą danych.';
  33. }
  34. // wybierz właściwą bazę danych
  35. $mysql = mysql_select_db( 'uwierz' );
  36. if(!$mysql)
  37. {
  38. echo 'Błąd wyboru bazy danych.';
  39. }
  40.  
  41. // znajdź pasujący wiersz
  42. $zapytanie = "select count(id), nazwa_pola_z_adresem_gdzie_ma_przeniesc from uwierz where
  43. uzytkownik = '$uzytkownik' and
  44. haslo = '$haslo'";
  45.  
  46. $wynik = mysql_query( $zapytanie );
  47.  
  48. //----------------------------
  49. $row = mysql_fetch_array($zapytanie);
  50. $url_gdzie_idzie = $row['nazwa_pola_z_adresem_gdzie_ma_przeniesc'];
  51. //----------------------------
  52.  
  53.  
  54. if(!$wynik)
  55. {
  56. echo 'Nie można wykonać zapytania.';
  57. }
  58.  
  59. $ile = mysql_result( $wynik, 0, 0 );
  60.  
  61. if ( $ile > 0 )
  62. {
  63. // podana kombinacja: identyfikator i hasło jest prawidłowa
  64. header('location: $url_gdzie_idzie');
  65. echo "<h1>Oto ona!</h1>";
  66. echo "Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.";
  67. }
  68. else
  69. {
  70. // kombinacja: identyfikator i hasło dostępu jest nieprawidłowa
  71. echo "<h1>Odejdź stąd!</h1>";
  72. echo "Nie jesteś uprawniony do przeglądania tych zasobów.";
  73. }
  74. }
  75. ?>
Glarden
Przed headerem nie może być nic napisane. Zrób na górze:
  1. <?php
  2. if (isset ($_POST['zmienna'])) {
  3. //sprawdzanie poprawności
  4. }
  5. ?>
  6. <form>...

Formularz na samym dole, a kod PHP na górze.
maniek22
zmodyfikowalem skrypt ale wyswietla mi sie blad:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\index.php on line 29
Nie można wykonać zapytania.


to skrypt
  1. <?
  2.  
  3.  
  4. $mysql = mysql_connect( 'localhost', 'uwierzytel', 'uwierzytel' );
  5. if(!$mysql)
  6. {
  7. echo 'Brak połączenia z bazą danych.';
  8. }
  9.  
  10. $mysql = mysql_select_db( 'uwierz' );
  11. if(!$mysql)
  12. {
  13. echo 'Błąd wyboru bazy danych.';
  14. }
  15.  
  16. if(!isset($uzytkownik)&&!isset($haslo))
  17. {
  18.  
  19.  
  20. $zapytanie = "select count(id), url from uwierz where
  21. uzytkownik = '$uzytkownik' and
  22. haslo = '$haslo'";
  23.  
  24. $wynik = mysql_query($zapytanie);
  25.  
  26.  
  27. $row = mysql_fetch_array($zapytanie);
  28. $url_gdzie_idzie = $row['url'];
  29.  
  30.  
  31.  
  32. if(!$wynik)
  33. {
  34. echo 'Nie można wykonać zapytania.';
  35. }
  36.  
  37. $ile = mysql_result( $wynik, 0, 0 );
  38.  
  39. if ( $ile > 0 )
  40. {
  41.  
  42.  
  43. header('location: $url_gdzie_idzie');
  44. echo "<h1>Oto ona!</h1>";
  45. echo "Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.";
  46. }
  47. else
  48. {
  49. // kombinacja: identyfikator i hasło dostępu jest nieprawidłowa
  50. echo "<h1>Odejdź stąd!</h1>";
  51. echo "Nie jesteś uprawniony do przeglądania tych zasobów.";
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58. }
  59. ?>
  60. <h1>Zaloguj się</h1>
  61. Ta strona jest zastrzeżona.
  62.  <form method = post action = "index.php">
  63. <table border = 1>
  64. <tr>
  65. <th> Użytkownik </th>
  66. <td> <input type = text name = uzytkownik> </td>
  67. </tr>
  68. <tr>
  69. <th> Hasło </th>
  70. <td> <input type = password name = haslo> </td>
  71. </tr>
  72. <tr>
  73. <td colspan =2 align = center>
  74. <input type = submit value = "Zaloguj się">
  75. </td>
  76. </tr>
  77. </form>
strife
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\index.php on line 29
Nie można wykonać zapytania.


Zainteresuj się mysql_error" title="Zobacz w manualu PHP" target="_manual, nie wiesz gdzie umieścić? Poszukaj na forum podobnych tematów, było to wałkowane wiele razy.

Pozdrawiam.
collins
  1. <?php
  2. Jeśli już to zamiast 
  3. $row = mysql_fetch_array($zapytanie);
  4.  
  5. wstaw
  6. $row = mysql_fetch_array($wynik);
  7. ?>
Indeo
Myślę, że w tym kodzie jest więcej błędów, a mówiąc o przekierowaniu jednym z nich jest błąd w :
  1. <?php
  2. header('Location: $url_gdzie_idzie');
  3. ?>


Jak już coś zawartość nawiasu powina być w cudzysłowach a nie apostrofach:

  1. <?php
  2. header("Location: $url_gdzie_idzie");
  3. ?>


(oczywiście bez backslasha, który nie wiedzieć czemu strona sama wstawiła)

Poza tym należy zwracać uwagę na małe/duże litery w przypadku poleceń nagłówków HTTP.
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.