Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie do strony z telefonu.
Forum PHP.pl > Forum > PHP
Vigorator
Witam.

Mam problem otóż zrobilem logowanie na sesjach i wszsytko dziala ale... nie da sie zalogować z niektórych telefonów i internetu przenosnego (czasami sie to udaje ale moze 5% prob jest udanych).
Na poczatku myslalem ze to wina telefonu, ale mam coraz wiecej zgloszen ze to nie dziala.
Nie wiem od czego zacząć naprawe, zwlaszcza ze u mnie wszsytko dziala na telefonie.
Nie wiem czy telefony maja problem z sesjami, ale sesje sa na serwie...

Dodam jeszcze ze nie wyswietla sie zadna informacja o blednym logowaniu itp.

Podam moze kod logowania i prosilbym o przejrzenie gdzie moze być blad. no i przy okazji zerknijcie czy jest to bezpieczny kod.

Formularz loginu i hasla:
<form method="POST" action="/i/logowanie">
<input class="form" name="login">
<input class="form" type="password" name="haslo">
<input type="image" src="menu/zaloguj.png" name="Loguj" width="52" height="20">
</form>

plik logowania:
<?
function Oczysc($zmienna)
{
$zmienna=trim($zmienna); //OBCINA SPACJE PRZED I PO
$zmienna=strip_tags($zmienna); //USUWA KOD HTML I PHP
$zmienna=htmlspecialchars($zmienna); //USUWA KOD HTML
$zmienna=addslashes($zmienna); //DODAJE UKOSNIKI PRZED ' " / NULL
$zmienna=mysql_escape_string($zmienna); //USUWA ZAPYTANIA MySQL
return $zmienna;
}

$_SESSION = array();
session_destroy();

$login=$_POST["login"]; $login=strtolower(Oczysc($login)); //Funkcja Oczysz
$haslo=$_POST["haslo"]; $haslo=Oczysc($haslo);$haslo=md5($haslo);

if (!isset($_SESSION['sprawdz'])) //WYDAJE MI SIE ZE TU JEST BLAD
{
session_regenerate_id();
$_SESSION['sprawdz'] = true;
$_SESSION['adres_ip'] = $_SERVER['REMOTE_ADDR'];
}
if($_SESSION['adres_ip'] !== $_SERVER['REMOTE_ADDR'])
{
header( "Location: http://www.strona.pl");
exit;
}

Pozniej nastepuje sprawdzenie MySQL czy jest taki login i haslo
Jesli tak to:
session_start();
$_SESSION['kto']= "$login";

header( "Location: ../user/zalogowano");
exit;

To tyle tego.

Wedlug mnie to powinno dzialac, a nie dziala ;/

Prosze o sugestie.
Dzieki
markonix
$zmienna=mysql_escape_string($zmienna); //USUWA ZAPYTANIA MySQL

smile.gif

funkcja Oczysc jest bezsensu - zamień to wszystko na jeden preg_match.


$_SESSION = array(); - nie rozumiem po co to.

if($_SESSION['adres_ip'] !== $_SERVER['REMOTE_ADDR'])
{
header( "Location: http://www.strona.pl");
exit;
}

tutaj by można zamknąć sesje gdy wykryje zmianę adresu.
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.