Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> logowanie z przekierowaniem, mysql/php
maniek22
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 2.05.2007

Ostrzeżenie: (10%)
X----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Mazur_pl
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 11.05.2007

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


  1. <?php
  2. ?>

Spróbuj
Go to the top of the page
+Quote Post
microh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


  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?
Go to the top of the page
+Quote Post
maniek22
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 2.05.2007

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


To może pokażesz jak próbujesz?
Czy może czekasz na gotowca lub chcesz żebyśmy sie domyślili jak to robisz?
Go to the top of the page
+Quote Post
Blajo
post
Post #6





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 7.08.2005
Skąd: Górny Śląsk

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


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. ?>
Go to the top of the page
+Quote Post
Glarden
post
Post #7





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


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.

Ten post edytował Glarden 25.06.2007, 10:13:25
Go to the top of the page
+Quote Post
maniek22
post
Post #8





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 2.05.2007

Ostrzeżenie: (10%)
X----


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>
Go to the top of the page
+Quote Post
strife
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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.
Go to the top of the page
+Quote Post
collins
post
Post #10





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

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


  1. <?php
  2. Jeśli już to zamiast 
  3. $row = mysql_fetch_array($zapytanie);
  4.  
  5. wstaw
  6. $row = mysql_fetch_array($wynik);
  7. ?>
Go to the top of the page
+Quote Post
Indeo
post
Post #11





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 22:23