Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Banalne pytanie - wielkość liter, <zawstydzony>
MateuszS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Witam. Mam panel logowania i chcę zrobić tak żeby logowało nie zależnie od wielkości liter w loginie.

  1. <?php
  2.  
  3. $_SESSION['login'] = $_POST['login'];
  4. $_SESSION['haslo'] = $_POST['haslo'];
  5.  
  6. $login = 'mateusz';
  7. $haslo = '12345';
  8. ?>


Jak widać login to "mateusz" z małej literki.
Próbowałem więc zamienić $login tak aby przetwarzał litery z pól na małe.

  1. <?
  2. $_SESSION['login'] = strtolower($_POST['login']);
  3.  
  4. // oraz próbowałem
  5.  
  6. $login = strtolower($_POST['login']);
  7. ?>


Nie wyszło w żaden sposób. Pewnie odp. jest banalna. Proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
plurr
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


Logowanie to porównywanie do siebie dwóch lub więcej pól:
Sprowadzasz string do małych liter, więc string z którym taki login będzie porównywany także musi być sprowadzony do takiego samego formatu.

Najlepiej sobie zdebuguj kod w różnych etapach - print_r, echo itp - standardowe podejście. Kod w drugim przykładzie jest poprawny, powinien działać. Jedyne rozwiązanie to takie, że POST jest pusty, albo leci do niego coś innego niż login 'mateusz'.

Ten post edytował plurr 25.01.2009, 15:42:35
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a login w bazie danych masz również z małych liter? bo jeśli nie to nie zadziała.
Go to the top of the page
+Quote Post
MateuszS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Piotrooo89 w kodzie jest określony login i hasło, przyjżyj się. Nie ma bazy.

Plurr wpisuję MATEUSZ i chcę aby zamieniło mi na mateusz aby = $login

Nie zależnie czy wpisze MaTeusz MATEUSZ mateuSZ chcę aby zamieniło na mateusz i = $login (mateusz)

Ten post edytował MateuszScirka 25.01.2009, 15:47:27
Go to the top of the page
+Quote Post
potreb
post
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $login = strlower($_POST['login']);
  3. $_SESSION['login'] = $login;
  4. $_SESSION['haslo'] = $_POST['haslo'];
  5.  
  6. $login = 'mateusz';
  7. $haslo = '12345';
  8. ?>


Może zadziała. Masz jeszcze manuala
strtolower" title="Zobacz w manualu PHP" target="_manual

Ten post edytował potreb 25.01.2009, 16:02:35
Go to the top of the page
+Quote Post
plurr
post
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


Twoje rozwiazanie powinno działać, tam nie ma żadnego skomplikowanego kodu, dla przykładu podaje:


  1. <form method="post">
  2.    <input type="text" name="login" /> <br />
  3.    <input type="submit" />
  4. </form>
  5.  
  6.  
  7. <?php
  8.    $dbLogin = 'mateusz';
  9.  
  10.                echo "post login : " . $_POST['login'] . "<br />";
  11.        echo "dblogin : " . $dbLogin . "<br />";
  12.    
  13.    
  14.    if (strtolower($_POST['login']) == $dbLogin) {
  15.        echo "zostałeś zalogowany";
  16.    } else {
  17.        echo "podałeś błędny login";
  18.    }
  19. ?>
Go to the top of the page
+Quote Post
MateuszS
post
Post #7





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Potreb tak już próbowałem...
plurr... tą metodę również oklepałem ;(


Dlatego napisałem że to jest dziwny problem, niby proste ale jednak nie bardzo działa...
Go to the top of the page
+Quote Post
plurr
post
Post #8





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


Cytat(MateuszScirka @ 25.01.2009, 18:20:23 ) *
Potreb tak już próbowałem...
plurr... tą metodę również oklepałem ;(
Dlatego napisałem że to jest dziwny problem, niby proste ale jednak nie bardzo działa...


Coś sciemiasz ;-) przykład, który Ci podałem teraz przetestowałem i u mnie działa.
Może byłoby inaczej, gdybyś w loginie miał polskie znaki - w metodach strto.. jest problem z kodowaniem znaków.

Ten post edytował plurr 25.01.2009, 18:32:25
Go to the top of the page
+Quote Post
MateuszS
post
Post #9





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Nie ściemniam patrz:

  1. <?php
  2. if (strtolower($_SESSION['login']) == $login and $_SESSION['haslo'] == $haslo)
  3. {
  4.    session_register('adminlog');
  5.    $_SESSION['adminlog'] = 1;
  6.    header("Location: news.php");
  7. }
  8. ?>


Nie działa ;/
Go to the top of the page
+Quote Post
plurr
post
Post #10





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


  1. <form method="post">
  2. <input type="text" name="login" /> <br />
  3. <input type="text" name="haslo" /> <br />
  4. <input type="submit" />
  5. </form>
  6.  
  7.  
  8. <?php
  9.  
  10.  
  11. $_SESSION['login'] = $_POST['login'];
  12. $_SESSION['haslo'] = $_POST['haslo'];
  13.  
  14. $login = 'mateusz';
  15. $haslo = '12345';
  16.  
  17. if (strtolower($_SESSION['login']) == $login and $_SESSION['haslo'] == $haslo)
  18. {
  19.   session_register('adminlog');
  20.   $_SESSION['adminlog'] = 1;
  21.  
  22.   print_r($_SESSION);
  23.   //header("Location: news.php");
  24. }
  25. ?>


Posklejałem cały Twój skrypcik i działa.
Wyprintujtuj Sesje. Może masz z nimi problem.
Zamień sesje na post'a w warunku.
Go to the top of the page
+Quote Post
MateuszS
post
Post #11





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Nie działa. Może dlatego że mam dalej jeszcze:

  1. <?php
  2. elseif(isSet($_POST["haslo"]) or isSet ($_POST["login"]))
  3. {
  4. if($_POST['login'] != $login or $_POST['haslo'] != $haslo)
  5.    {
  6.        echo '<br /><br />';
  7.        echo '<center>';
  8.        echo 'Podane dane są nieprawidłowe <br />';
  9.        echo '<a href="administracja.php">Powrót</a>';
  10.        
  11.    }
  12. }
  13. ?>
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: 24.08.2025 - 20:33