Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Banalne pytanie - wielkość liter
Forum PHP.pl > Forum > Przedszkole
MateuszS
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 wstydnis.gif
plurr
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'.
piotrooo89
a login w bazie danych masz również z małych liter? bo jeśli nie to nie zadziała.
MateuszS
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)
potreb
  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
plurr
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. ?>
MateuszS
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...
plurr
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.
MateuszS
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 ;/
plurr
  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.
MateuszS
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. ?>
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.