maniek22
16.07.2007, 14:35:11
Witam.
Mam taki problemik, skrypt umieszczony poniżej działa mi na krasnalu (windows) a jak go przerzuce na serwer na linuxie to wyskakuje mi komunikat " zalogowanie niemozliwe" i nie moge znalezc bledu czego sie tak dzieje.
<?
if($iduzytkownika && $haslo)
{
// jeżeli użytkownik właśnie podjął próbę zalogowania
$zapytanie="select * from uwierz "
."where uzytkownik='$iduzytkownika' "
." and haslo=password('$haslo')";
{
// jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
$prawid_uzyt=$iduzytkownika;
}
}
{
header("Location:glowna.php"); }
else
{
if(isset($iduzytkownika)) {
// jeżeli próba logowania była nieudana
echo "Zalogowanie niemożliwe";
}
else
{
// nie było próby logowania lub nastąpiło wylogowanie
echo "Użytkownik niezalogowany.<br>"; }
// tworzenie formularza logowania
echo "<form method=post action="index
.php
">"; echo "<tr><td>Identyfikator użytkownika:</td>"; echo "<td><input type=text name=iduzytkownika></td></tr>"; echo "<tr><td>Hasło:</td>"; echo "<td><input type=password name=haslo></td></tr>"; echo "<tr><td colspan=2 align=center>"; echo "<input type=submit value="Logowanie
"></td></tr>"; }
?>
kossa
16.07.2007, 16:01:39
register_globals = off
<?php
if ($_POST["iduzytkownika"] && $_POST["haslo"])
?>
Łukasz
b_chmura
16.07.2007, 16:02:32
a gdzie pobierasz dane z formularza?
<?php
$iduzytkownika = $_POST['iduzytkownika'];
$haslo = $_POST['haslo'];
?>
kossa
16.07.2007, 16:32:50
Cytat(b_chmura @ 16.07.2007, 17:02:32 )

a gdzie pobierasz dane z formularza?
<?php
$iduzytkownika = $_POST['iduzytkownika'];
$haslo = $_POST['haslo'];
?>
na krasnalu register_globals są włączone zatem odbieranie tak działało popranie
<?php
if($iduzytkownika && $haslo)
?>
Łukasz
maniek22
16.07.2007, 20:26:29
Na linuksie ustawilem sobie register_globals na on i inne skrypty bez $_POST dzialaja dlatego nie wiem gdzie jest blad. Na serwerze mam php 5.2 a mysql 5.0.32.
b_chmura
17.07.2007, 00:05:34
<?
$iduzytkownika = $_POST['iduzytkownika'];
$haslo = $_POST['haslo'];
{
// jeżeli użytkownik właśnie podjął próbę zalogowania
$zapytanie = "select * from uwierz "
."where uzytkownik='$iduzytkownika' "
." and haslo=password('$haslo')";
{
// jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
$prawid_uzyt = $iduzytkownika;
}
}
{
header("Location:glowna.php"); }
else
{
if(!empty($iduzytkownika)) {
// jeżeli próba logowania była nieudana
echo "Zalogowanie niemożliwe"; }
else
{
// nie było próby logowania lub nastąpiło wylogowanie
echo "Użytkownik niezalogowany.<br>"; }
// tworzenie formularza logowania
echo "<form method=post action="index
.php
">"; echo "<tr><td>Identyfikator użytkownika:</td>"; echo "<td><input type=text name=iduzytkownika></td></tr>"; echo "<tr><td>Hasło:</td>"; echo "<td><input type=password name=haslo></td></tr>"; echo "<tr><td colspan=2 align=center>"; echo "<input type=submit value="Logowanie
"></td></tr>"; }
?>
jeśli nie będzie działać sprawdź przede wszystkim czy wyciąga Ci jakieś dane z bazy i czy czasem w którymś momencie ich nie gubi, tak samo zrób ze zmienną $iduzytkownika i $haslo
maniek22
17.07.2007, 11:13:16
Sprawdzalem zmodyfikowany przez ciebie skrypt i dalej nie dziala " zalogowanie nie mozliwe". Jak moge sprawdzic czy wyciaga dane? mysql error czy jest jakas inna opcja? dzieki
b_chmura
17.07.2007, 11:28:47
<?php
?>
co jakiś czas wstawiać i sprawdzać czy wyświetla jakąś wartosc
maniek22
17.07.2007, 18:15:20
zrobilem tak jak mi podpowiedziales i zmienne $iduzytkownika i $haslo wyciaga ale mysql_num_rows($wynik) mam 0.
b_chmura
17.07.2007, 18:54:23
po co to $bd_lacz?
daj tak:
<?php
// (..)
$zapytanie = "SELECT * FROM `uwierz` WHERE `uzytkownik` = '$iduzytkownika' AND `haslo` = password('$haslo')";
// (...)
?>
maniek22
17.07.2007, 19:10:39
zmienilem, wydaje mi sie ze cos jest nie tak z zapytaniem bo zwraca wynik 0 czyli chyba przy porownaniu hasla i loginu z formularza nie znajduje odpowiednika w bazie, tylko pytanie czego akurat tak sie dzieje?
b_chmura
17.07.2007, 19:32:05
może zapomniałeś loginu i/lub hasła

no to już wykaż sie własną inicjatywą i spróbuj jakoś sam wydobyć te dane z bazy ;-)
maniek22
18.07.2007, 19:03:50
Sprawdzilem zapytania bezposrednio w bazie i nie wyszukuja mi danych zwracaja pusty wynik tak jakby nie istnialy. Zapytanie u siebie na kompie dziala i daja mi wynik. Hasla i loginy sa takie same w obu bazach ale na serwerze nie dziala. nawet zrobilem zapytanie tylko z loginem i tez nic. Co jest grane?
bim2
19.07.2007, 08:48:34
Może nie dodałeś żadnych danych do bazy? Bo jesli zwraca 0...
maniek22
19.07.2007, 13:58:03
W bazie mam dane.
Jak wykonuje takie zapytanie: SELECT * FROM `logowanie` WHERE `uzytkownik` = 'szmukier' AND `haslo` = password('123') to daje mi zero.
A jak dam SELECT * FROM `logowanie` WHERE `uzytkownik` = 'szmukier'; to znajduje mi w bazie dane, tak samo jak dam bez haszowania hasla np. SELECT * FROM `logowanie` WHERE `uzytkownik` = 'uzytkownik' AND `haslo` = ('haslo') to mi tez znajduje
Mam na serwerze mysql 5 i nie wiem czy cos jest wylaczone ze nie znajduje jak chce skorzystac z PASSWORD lub SHA1.
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.