![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Baza
panel logowania
sesja
problem polega w zalogowaniu sie i otrzymaniu sesji:
tak mogte się zalogować wez problemu pod warunkiem że login jest taki sam jak haslo, niestety jak zmienie
na
to w ogóle nie moge się zalogować... co jest nie tak [pomijajnac fakt ze troche to chaotyczny kod] Ten post edytował pijanyadmin 9.01.2008, 20:19:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
nie znalazlem nigdzie session_start();
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
już poprawiłem
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
session_start() dajesz wszędzie gdzie używasz sesji. http://pl.php.net/session_start
poza tym tu masz blad(chyba) bo nie wiem czy miejsce w ktorym trzymasz nick usera to pole haslo Ten post edytował xbigos 9.01.2008, 20:24:14 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
ok, tylko sęk w tym iż nadal jest problem z logowaniem
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
nazwe użytkownika też szyfrujesz przez md5?
pokaz mi jak wyglada przykladowy zrzut z tabeli uzytkowników. Za dużo funkcji niedługo się nie połapiesz. Staraj się ograniczać dane wciskane do sesji. spróbuj też robić tak: $_SESSION['username'] = array( 'pole1' => 'wartosc1', 'pole2' => 'wartosc2'); Ten post edytował xbigos 9.01.2008, 20:35:08 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
a racja, zmieniłem juz to md5 i jest dobrze
tabela:
a w panelu po zalogowaniu jest błąd związany z tym:
całość: panel:
Ten post edytował pijanyadmin 9.01.2008, 21:16:42 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
Czyli działa czy nie bo nie zrozumiałem:)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie działa, jest zły odczyt z bazy, z tym jest problem:
Kod Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /var/www/cc/panel.php on line 17
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /var/www/cc/panel.php on line 18 Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /var/www/cc/panel.php on line 19 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
ale po co używasz tak w ogóle mysql_results?
Kod $login = mysql_result($query,0,2); zamień sobie na:$email = mysql_result($query,0,4); $data = mysql_result($query,0,5); Kod $dane = mysql_fetch_array($query); $logn = $dane[login]; $email = $dane[email]; $data = $dane[data] może ktoś powiedzieć że mysql_result jest szybsze... sam manual mówi że wolniejsze... a może nawet jest szybsze - na jednym rekordzie... ale na 3 napewno jest szybsza funkcja która wg. manual jest szybsza co nie? chodzby dla tego że nie trzeba przetważać wyników 3 razy tylko raz:) Cytat Zalecane wydajniejsze alternatywy: mysql_fetch_row(), mysql_fetch_array() i mysql_fetch_object(). Twój problem polega na tym że gdy używasz mysql_result to wywali błąd gdy mysql nie zwróci żadnych wierzy... a jak ma zwrócić jeśli: w bazie masz hasło w md5 Kod $_SESSION['password'] = $_POST['pass']; gdzie tu kodujesz hasło przez md5?[....] $haslo = $_SESSION['login']; $query = mysql_query("SELECT * FROM userdata WHERE haslo = '$haslo'"); Kod $haslo = $_SESSION['login']; zmień na:Kod $haslo = md5($_SESSION['login']); (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował dadexix 10.01.2008, 02:15:53 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
poprawiłem i teraz mam coś takiego:
Kod $haslo = $_SESSION['login']; $query = mysql_query("SELECT * FROM userdata WHERE login = '$haslo'"); $dane = mysql_fetch_array($query); $login = $dane[login]; $email = $dane[email]; $data = $dane[data] i działa wszytko dobrze, tylko czy jest dobrze? jeśli zmienie Kod $haslo = $_SESSION['login']; na Kod $haslo = md5($_SESSION['login']); logowanie w ogóle nie działa, tzn. mogę się zalogować ale nie są pobierane żadne dane |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
no tak jest dobrze....
Przedtem sprawdzałeś hasło z sesji... teraz sprawdzasz login... a loginu nie kodujesz w bazie więc md5() nie potrzebne:) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
pojawił się jeszcze jeden problem
edycja już wprowadzonych danych, formularz do pobrania i zmiany danych juz zalogowanego uzytkownika. includowany plik edycja.php: Kod <?php session_start(); $zapytanie = "SELECT * FROM `userdata` WHERE `login`='haslo'"; $idzapytania = mysql_query($zapytanie); ?> <form action="edi.php" method="POST"> <?php echo " <table border='0' width='100%' id='table1' height='321'> <tr> <td width='115'><font face='Tahoma'>login:</td> <td> <font face='Tahoma'>$login</font></td> </tr> <tr> <td width='115'><font face='Tahoma'>email:</font></td> <td> <input type='text' name='email' value='$email'/></td> </tr> <tr> <td width='115' height='44'> </td> <td height='44'> <input type='submit' value='zmien dane'> </tr> </table>"; ?> </form> edi.php Kod <?php session_start(); $haslo = $_SESSION['login']; //pobiera dane z formularza $email = $_POST['email']; $zapytanie = "UPDATE userdata SET email WHERE login = $haslo"; $idzapytania = mysql_query($zapytanie); echo "dane zmieniione"; ?> jeśli usune WHERE to pole email zmienia sie we wszystkich rekordach a ma zmienic sie w tym który jest aktualnie zalogowany Ten post edytował pijanyadmin 10.01.2008, 15:27:06 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
@pijanyadmin. Ja czegoś tu nie rozumiem.
dziwne masz zapytanie. Porównujesz login do hasła? potem dajesz
Z tym sie zgodzę. Ale gdzie reszta? Nie dziwie się, że się gubisz. Skoro twoje zmienne nie mają żadnego odzwierciedlenia w zawartości
poczytaj troche o zapytaniach sql
Co chcesz umieścić w polu email? gdzie informujesz zapytanie, że chcesz dodać właśnie zawartość zmiennej $email. zapytanie powinno wyglądać tak:
Według mnie cały kod powinien wyglądać tak:
edi.php (dziwna nazwa pliku:D)
I staraj się nazywać zmienne na tej podstawie co przechowują. no i przeczytaj jeszcze to Najczęściej popełniane błędy początkujących programistów. nie jest długie. Według mnie ten skrypt jest napisany nieczytelnie, niedokładnie a co najgorsze. Nieprzemyślany. Staraj się w php umieszczać jak najmniej znaczników html ponieważ zwalnia to działanie strony. Ponieważ PHP musi przetworzyć wszystko w echo jako string a jesli dasz normalnym sposobem to tym już się zajmie przeglądarka. Ten post edytował xbigos 10.01.2008, 16:18:24 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował dadexix 10.01.2008, 16:27:09 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
po zmianie:
przekierowaniu wywala komunikat Kod Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/alpha/edi.php on line 11 który jest związany z tym:
Ten post edytował pijanyadmin 10.01.2008, 19:32:09 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
to usuń :
Kod $idzapytania2 = mysql_fetch_array($idzapytania); if(!$idzapytania2){ echo 'blad'; } else { echo 'rekord zaktualizowany'; } tak może lepiej: Kod if(!$_SESSION['login']){
echo 'blad'; } else { $zapytanie = "UPDATE userdata SET email = `$email` WHERE login = `$zalogowany`"; $idzapytania = mysql_query($zapytanie); echo 'rekord zaktualizowany'; } Ten post edytował Lion_87 10.01.2008, 19:50:51 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
wpadłem na to, ale wtedy i tak nic się nie zmienia w rekordzie
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 850 Pomógł: 120 Dołączył: 15.02.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
to jeszcze zmien to
Kod $email = mysql_real_escape_string($_POST[email]); na: Kod $email = stripslashes ($email );
Ten post edytował Lion_87 10.01.2008, 19:54:50 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 128 Pomógł: 1 Dołączył: 24.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
wygląda to tak i nadal nic... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 08:34 |