kamilkomo
11.10.2010, 16:11:20
Witam
Mam problem ze zrobieniem poprawnego systemuu logowania, niestety nie wyskakuje zaden blad, po kliknieciu na submit="loguj" w pliku index.php skrypt przenosi mnie do pliku logusr.php a nie do main.php tak jak jest ustawione w kodzie php nie ma zadnego komunikatu tj, czy jestem zalogowany czy tez nie. ponizej przedstawie kod
formularz w pliku index.php
Kod
<form id="form1" name="form1" method="post" action="logusr.php">
<b>Login:</b> <input type='text' name='login' id='login' size='15' />
<b>Haslo:</b> <input type='password' name='haslo'id='haslo' size='15' />
<input name="login" type="submit" id="login" value="login" />
</form>
kod w pliku logusr.php na samej gurze tego pliku mam jeszcze session_start();
Kod
<div id="LOGUJ">
<?php
$login=$_POST[‘login’];
if($login) {
$login=$_POST[‘login’];
$md5_haslo=md5($_POST[‘haslo’]);
$host="*****************"; // Nazwa hosta.
$db_user="*********"; // Nazwa użytkownika - MySQL.
$db_password="*******"; // Hasło do bazy.
$database="*********"; // Nazwa bazy.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
// Sprawdzenie nazwy użtkownika i hasła.
$rezultat=mysql_query("select login,haslo FROM users WHERE login=’$login’ AND haslo=’$md5_haslo’");
if(mysql_num_rows($rezultat)){
session_register("uzytkownik"); // Zapamiętuje zmienną sesji
header("location:main.php"); // Przekierowanie do strony main.php
exit;
}else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
}
?>
</div>
Poprosze o jakas pomoc
nospor
11.10.2010, 19:35:51
Nie: $_POST[‘login’];
a: $_POST['login'];
Patrz jakiś ciapków używasz.
Analogicznie reszta
ps: przenosze
kamilkomo
12.10.2010, 09:15:52
niestety zmiana ciapkow nie pomogla z byt wiele, czy wpisze poprawne haslo czy tez nie to i tak wyskakuje napis ze jestem zalogowany a i nie przenosi mnie do strony main.php tylko zostaje na logusr.php? prosze o pomoc
nospor
12.10.2010, 09:22:27
nie:login=’$login’ AND haslo=’$md5_haslo’
a: login='$login' AND haslo='$md5_haslo'
hind
12.10.2010, 09:25:32
a najlepuiej jeszcze po mysql_query() dodać or die(mysql_error()) (w celu sprawdzenia czy są błedy)
i mysql_real_Escape_string($login) (chyba że masz włączone magic_quotes to w tedy jest to nie potrzebne)
kamilkomo
12.10.2010, 12:25:04
niestety ale nic to nie pomoglo , wprowadzilem wszystkie poprawki jakie podaliscie, ale niestety dalej nic. Czy podam haslo i login ktory sie znajduje w bazie czy tesz nie to i tam mam komunikat ze jestem zalogowany a i nie przenosi mnie do strony main.php. kod po poprawkach ponizej, jesli ktos ma jakies pomysly bede wdzieczny
Kod
<div id="LOGIN">
<?php
$login=$_POST['login'];
$haslo=$_POST['haslo'];
if($login) {
// W momencie kliknięcia w przycisk formularza
$login=$_POST['login'];
$haslo=$_POST['haslo'];
// Koduje hasło funkcja md5().
// Połaczenie z baza.
$host="************"; // Nazwa hosta.
$db_user="************"; // Nazwa użytkownika - MySQL.
$db_password="************"; // Hasło do bazy.
$database="************"; // Nazwa bazy.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
// Sprawdzenie nazwy użtkownika i hasła.
$rezultat=mysql_query("select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($rezultat)){
print "jestes zalogowany";
session_register("uzytkownik"); // Zapamiętuje zmienna sesji
header("location:main.php"); // Przekierowanie do strony main.php
exit;
}else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
}
?>
</div>
hind
12.10.2010, 12:36:13
nie przeniesie cie bo wcześniej wyświetlasz że jesteś zalogowany (header, set_cookie, session_start nie lubią gdy przed ich wywołaniem coś się wyświetla i wtedy plują błedami)
na początek dodaj ob_start() , a tak w ogóle to ustaw error_reporting na E_ALL ^ E_NOTICE ;
kamilkomo
12.10.2010, 12:47:09
niestety dalej nic, moze mogl bys mi napisac jak to powinno wygladac bo juz zglupialem
nospor
12.10.2010, 13:11:05
Zastosuj się do podanych wszystkich tu porad:
Temat: Jak poprawnie zada pytaniea może zobaczysz dodatkowe bledy/informacje które ułatwią Tobie lub nam analize problemu
kamilkomo
12.10.2010, 13:25:26
zastosowalem sie do wszystkich porad i niesttety dalej nic, wywalilem linijke ktora wyswietla napis ze jestes zalogowany i dalej nie przenosi mnie do main.php w ponizszym kodzie przedstawiam wszystkie naniesione poprawki, a co do raportu bledow php to czekam na odpowiedz od admistratorow serweru
i oczywiscie na samej gorze strony dodalem:
<?php
ob_start();
session_start();
?>
Kod
<div id="LOGIN">
<?php
$login=$_POST['login'];
if($login) {
$login=$_POST['login'];
$md5_haslo=md5($_POST['haslo']);
// Poł?czenie z baz?.
$host="*"; // Nazwa hosta.
$db_user="*"; // Nazwa użytkownika - MySQL.
$db_password="*"; // Hasło do bazy.
$database=*"; // Nazwa bazy.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
// Sprawdzenie nazwy użtkownika i hasła.
$rezultat=mysql_query("select login,haslo FROM users WHERE login='".mysql_real_escape_string($login)."' AND haslo='$md5_haslo' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($rezultat)){
session_register("uzytkownik"); // Zapamiętuje zmienną sesji
header("location:main.php"); // Przekierowanie do strony main.php
exit;
}else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
}
?>
</div>
display_errors wlaczone i niestety nic nie wyswietla, zero bledu.
hind
12.10.2010, 14:06:18
a jak masz ustawiony error_reporting ?
Bo tak to wszystko wydaje się być dobrze
kamilkomo
12.10.2010, 14:41:30
dostep do tej funkcji mam jedynie przez panel administracyjny serwera , w ktorym to wlaczam lub wylaczam error_reporting.
hind
12.10.2010, 14:47:17
to jesze pod ob_start() dodaj error_reporting(E_ALL);
jak to nie pomoże (nie wyświetli błędów) to już nie wiem dla czego header location nie działa
kamilkomo
12.10.2010, 15:00:18
dodalem i bledow brak nic nie wyswietla, tzn wyswietlil mi jeden ale to zwiazany z wyswietlaniem danych z tabeli, wpisalem inna nazwe tabeli a inna nazwa byla w bazie, poprawilem blad i teraz juz zadnego nie wyswietla.
Ale dla czego tez nie wyswietla komunikmatu o blednym logowaniu jesli podam nie istniejace dane takie jak login i haslo?
Czy podam dobre czy zle dane logowania dzieje sie dokladnie to samo, przechodzi do strony logusr.php i nic po za tym, zero komunikatu o zlym logowaniu a w przypadku wpisania poprawnego loginu nie przenosi mnie do main.php
hind
12.10.2010, 15:30:16
i to co wyświetli sprawdź w phpMyAdmin co wybierze
dodatkowo możesz jeszcze sprawdzić
żeby zobaczyć co w ogóle przyltauje z browsera
kamilkomo
12.10.2010, 15:56:28
nie bardyo royumie jak mam sprawdyic w phpMzadmin to co wzbierye_
po wpisaniu tych linijek kody i po wyslaniu danych po przez formularz pojawia sie pusta strona i zero bledow
minolone
12.10.2010, 19:32:51
Sprawdź to, powinno działać.
<?php
if(!empty($_POST['login']) && !empty($_POST['haslo'])) {
$login=$_POST['login'];
$md5_haslo=md5($_POST['haslo']);
// Poł?czenie z baz?.
$host = '*'; // Nazwa hosta.
$db_user = '*'; // Nazwa użytkownika - MySQL.
$db_password = '*'; // Hasło do bazy.
$database = '*'; // Nazwa bazy.
// Sprawdzenie nazwy użtkownika i hasła.
header("location:main.php"); // Przekierowanie do strony main.php }else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
} else {
echo 'Nie podano nazwy uzytkownika lub hasła!'; }
?>
kamilkomo
13.10.2010, 12:24:01
niestety ale nie dziala nadal reakcja taka sama jaka zostala opisana wyzej ani nie przenosi do main.php ani tez nic nie wyswietla , kurde o co tu w tym chodzi? zwarjuje.......
minolone
13.10.2010, 12:59:16
Zamień to
header("location:main.php"); // Przekierowanie do strony main.php }else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
} else {
echo 'Nie podano nazwy uzytkownika lub hasła!'; }
na to i zobacz jaki bedzie komunikat,
}else {
echo 'Nieprawidłowa nazwa użytkownika lub hasło'; }
} else {
echo 'Nie podano nazwy uzytkownika lub hasła!'; }
kamilkomo
13.10.2010, 21:38:53
po wpisaniu poprawnych danych > Nieprawidłowa nazwa użytkownika lub hasło
Mam taka hipoteze, w bazie danych mam hasla w czystej postaci , nie zaszyfrowane w md5, a wysylam haslo zaszyfrowane moze to jest przyczyna nie poprawnego logowania
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.