Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmienne $GET i $POST
Forum PHP.pl > Forum > Przedszkole
-Zorro-
Witam. Chciałbym stworzyć proste logowanie w PHP. Problem polega na tym że kiedyś miałem konto na serwerze w którym było register global on. Teraz to wyłączyli i nie działają mi skrypty. Administrator serwera napisał mi że muszę stosować zmienne GET i POST ale ja nie mam pojęcia jak to wykonać. Logowanie mam na cookies i mi tych ciastek nie stawia. Oto kod:

plik logowanie.php

  1. <? 
  2. if ($user==$login){header("Location: index.php?strona=administracja");}
  3.  
  4. if($GET_['akcja'] == weryfikuj){
  5.  
  6. if($login_wpisz!="" || $haslo_wpisz!=""){
  7. if (($login==$login_wpisz) && ($haslo==$haslo_wpisz)){
  8. if($pamietaj==""){setcookie("user", "$login_wpisz");}else{setcookie("user", "$login_wpisz", time()+9999*3600);}
  9. header("Location: index.php?strona=administracja");}}}
  10.  
  11. if($user == ""){ ?>
  12. <form method="post" action="index.php?strona=logowanie&akcja=weryfikuj">
  13.  
  14. <table border="0" width="100%" cellpadding="2" id="txt_bold" cellspacing="0">
  15. <tr>
  16. <td width="791" align="left">Login:</td>
  17. <td width="186" align="right">
  18. <input type="text" name="login_wpisz" id="input_alert_bold" size="30"></td>
  19. </tr>
  20. <tr>
  21. <td width="791" align="left">Hasło:</td>
  22. <td width="186" align="right">
  23. <input type="password" name="haslo_wpisz" id="input_alert_bold" size="30"></td>
  24. </tr>
  25. <tr>
  26. <td width="977" colspan="2">
  27. Zaloguj automatycznie przy następnej wizycie:
  28. <input type="checkbox" name="pamietaj" value="ON">  
  29. <input type="submit" value="Zaloguj" style="font-weight:bold; background-color:#E2E2E2"></td>
  30. </tr>
  31. </table>
  32. </font>
  33. <? } ?>




plik weryfikuj.php

  1. <?
  2. if ($user!==$login){header("Location: index.php?strona=logowanie");}
  3. ?>





Tyle wiem że skrypt jest napisany poprawnie, a haslo i login sa przechowywane w pliku admin.php i includowane na stronę główną. Bardzo bym prosił o jakieś wskazówki.
Gość
No to zapraszam do czytania podstaw PHP.
Nie ma czegoś takiego jak $GET ani $GET_
Jest za to $_GET i tylko tak będzie Ci działać. To samo się tyczy $_POST
-Zorro-
Przepraszam napisalem to GET z pamieci dlatego ten błąd. Chodzi mi o to aby ktos do tego skryptu powkladal te gety i posty tak aby to zadzialalo. Jak bede mial taki przyklad to reszte sobie sam zmodyfikuje.
Garrappachc
Masz całą masę innych błędów.
Wpisz tak:
  1. <?php
  2. if ($user==$login){header("Location: index.php?strona=administracja");}
  3.  
  4. if($_GET['akcja'] == 'weryfikuj'){
  5.  
  6. if($_POST['login_wpisz'] != "" || $_POST['haslo_wpisz'] != ""){
  7. if (($login==$_POST['login_wpisz']) && ($haslo==$_POST['haslo_wpisz'])){
  8. if($pamietaj==""){setcookie("user", "$_POST['login_wpisz']");}else{setcookie("user", "$login_wpisz", time()+9999*3600);}
  9. header("Location: index.php?strona=administracja");}}}
  10.  
  11. if($user == ""){ ?>
  12. <form method="post" action="index.php?strona=logowanie&akcja=weryfikuj">
  13.  
  14. <table border="0" width="100%" cellpadding="2" id="txt_bold" cellspacing="0">
  15. <tr>
  16. <td width="791" align="left">Login:</td>
  17. <td width="186" align="right">
  18. <input type="text" name="login_wpisz" id="input_alert_bold" size="30"></td>
  19. </tr>
  20. <tr>
  21. <td width="791" align="left">Hasło:</td>
  22. <td width="186" align="right">
  23. <input type="password" name="haslo_wpisz" id="input_alert_bold" size="30"></td>
  24. </tr>
  25. <tr>
  26. <td width="977" colspan="2">
  27. Zaloguj automatycznie przy następnej wizycie:
  28. <input type="checkbox" name="pamietaj" value="ON"> 
  29. <input type="submit" value="Zaloguj" style="font-weight:bold; background-color:#E2E2E2"></td>
  30. </form>
  31. </tr>
  32. </table>
  33. </font>
  34. <? } ?>

Nawet nie zamknąłeś formularza blinksmiley.gif
-Zorro-
Czesc. Po wklejeniu tego kodu nie wyświetla mi formularza sad.gif
-Zorro-
Cze. No bym to zrobił ale nie widze nigdzie opcji edycji pierwszego posta sad.gif
NetJaro
Zamiast
  1. <?php
  2. if($user == ""){ ?>

daj
  1. <?php
  2. if($_COOKIE['user'] == "") { ?>

To też jest wina wyłączenia register_globals.

Zapraszamy do rejestracji, jako gość nie masz możliwości edycji swoich postów.
-Zorro-
Niestety nadal nie działa sad.gif
W tej chwili mam taki kod:

plik logowanie.php

  1. <? 
  2. if ($user==$login){header("Location: index.php?strona=administracja");}
  3.  
  4. if($_GET['akcja'] == 'weryfikuj'){
  5.  
  6.  
  7. if($_POST['login_wpisz'] != "" || $_POST['haslo_wpisz'] != ""){
  8.  
  9.  
  10. if (($login==$_POST['login_wpisz']) && ($haslo==$_POST['haslo_wpisz'])){
  11.  
  12.  
  13. if($pamietaj==""){setcookie("user", $_GET['login_wpisz']);}else{setcookie("user", $_GET['login_wpisz'], time()+9999*3600);}
  14.  
  15.  
  16. header("Location: index.php?strona=administracja");}}}
  17.  
  18. if($_COOKIE['user'] == "") { ?>
  19.  
  20. <form method="post" action="index.php?strona=logowanie&akcja=weryfikuj">
  21.  
  22. <table border="0" width="100%" cellpadding="2" id="txt_bold" cellspacing="0">
  23. <tr>
  24. <td width="791" align="left">Login:</td>
  25. <td width="186" align="right">
  26. <input type="text" name="login_wpisz" id="input_alert_bold" size="30"></td>
  27. </tr>
  28. <tr>
  29. <td width="791" align="left">Hasło:</td>
  30. <td width="186" align="right">
  31. <input type="password" name="haslo_wpisz" id="input_alert_bold" size="30"></td>
  32. </tr>
  33. <tr>
  34. <td width="977" colspan="2">
  35. Zaloguj automatycznie przy następnej wizycie:
  36. <input type="checkbox" name="pamietaj" value="ON">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  37. <input type="submit" value="Zaloguj" style="font-weight:bold; background-color:#E2E2E2"></td>
  38. </tr>
  39. </table>
  40. </font>
  41. <? } ?>



Dodatkowo plik weryfikowanie.php

  1. <?
  2. if ($_COOKIE['user']!==$login){header("Location: index.php?strona=logowanie");}
  3. ?>


Mi sie wydaje ze problem polega na tym ze nie jest ustawione ciastko i skrypt nie wpuszcza bo nie mia cookies. Nie wiem jak to rozgryzc, na serwerze z register globals ON to dziala bez problemów. sad.gif
Maciekbjw
Hmm? proste logowanie w php?
  1. <?php
  2.  
  3. $_SESSION['haslo'] = sha1($_POST['haslo']); //szyfrowanie za pomoca sha1
  4.  
  5. if($_SESSION['haslo'] == sha1(haslo)) //sprawdzamy czy zmienna sesyjna jest rowna zaszyfrowanemu haslu 
  6. {
  7.  echo'
  8.  jestes zalogowany, <a href="?wyloguj=wyloguj">wyloguj sie</a>'; //czesc dostepna po podaniu hasla
  9.  
  10.  
  11. }
  12.  
  13. elseif($_GET['wyloguj'] == wyloguj) 
  14. { echo 'zostales wylogowany';}
  15.  
  16. else {  //jesli nie, wyswietlamy formularz
  17. <form action="haslo.php" method="POST">
  18. <input type="text" name="haslo">
  19. <input type="submit" name="dawaj" value="dawaj">
  20. </form>';
  21. }
  22.  
  23. ?>


Nie mowie, ze jest jakies bezpieczne, ale przynajmniej działa tongue.gif
kobe
Jak masz na serwerze register globals on, to wstaw sobie małą funkcje :
  1. <?php
  2. foreach($_REQUEST as $var => $value)
  3. $$var = $value;
  4. ?>


i po sprawie ;-)
1010
dalej w pliku logowanie.php masz to:
  1. <?php
  2. if ($user==$login){header("Location: index.php?strona=administracja");}
  3. ?>



kobe: nie po to się wyłącza register globals, żeby to omijać smile.gif
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.