Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Zmienne $GET i $POST
--Zorro--
post
Post #1





Goście







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.
Powód edycji: Dodaje tag /~strife/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
-Gość-
post
Post #2





Goście







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





Goście







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





Grupa: Zarejestrowani
Postów: 76
Pomógł: 2
Dołączył: 15.11.2007
Skąd: Kraków

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


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

Ten post edytował Garrappachc 2.12.2007, 12:55:05


--------------------


CPU | GPU | RAM | HDD | OS
Go to the top of the page
+Quote Post
--Zorro--
post
Post #5





Goście







Czesc. Po wklejeniu tego kodu nie wyświetla mi formularza sad.gif
Go to the top of the page
+Quote Post
--Zorro--
post
Post #6





Goście







Cze. No bym to zrobił ale nie widze nigdzie opcji edycji pierwszego posta sad.gif
Go to the top of the page
+Quote Post
NetJaro
post
Post #7





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


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.

Ten post edytował NetJaro 2.12.2007, 14:33:57
Go to the top of the page
+Quote Post
--Zorro--
post
Post #8





Goście







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





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

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


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


--------------------
Masz swoje mieszkanie i chcesz je wynająć? Sprawdź ofertę Zarzadządzanie Najmem

WRONA.IT - pozycjonowanie stron
www.ecyklopedia.pl
Go to the top of the page
+Quote Post
kobe
post
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.12.2004
Skąd: planeta -> ZIEMIA | kontynent -> EUROPA | kraj -> Polska | województwo -> ŁÓDZKIE | miasto -> TOMASZÓW MAZ

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


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 ;-)
Go to the top of the page
+Quote Post
1010
post
Post #11





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


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


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 11:21