![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 8.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam problem. To moj kod autoryzacji:
Cos jest nie tak bo po wpisaniu nazwy i hasla uzytkownika wyskakuje mi komunikat ze nie mam prawa do ogladania strony (a przeciez dobrze wypelniam name i password) POMOCY !!!! plik.php <? // laczenie z baza danych $mysql = mysql_connect( "localhost", "webauth", "webauth123" ) or die ("Nie mozna sie polaczyc<br>"); print "polaczenie z serwerm nawiazane.<br>"; // wybór właściwej bazy dancyh $mysql = mysql_select_db( "auth" ) or die ("Nie można wybrać bazy danych.<br>"); print "Uzyskano dostep do bazy auth<br>"; // zapytanie do bazy danych , ktorego celem jest sprawdzenie, // czy isnieje rekord odpowiadajacy wprowadzonycm danym $result = mysql_query("SELECT * FROM auth WHERE (name ='$name' AND pass = '$password')"); if(!$result) { echo "Nie mozna uruchomic zapytania."; exit; } $count = mysql_result( $result, 0, 0 ); if ( $count > 0 ) { // nazwa oraz hasło odpowiadajacego sa poprawne echo "<h1> Udało sie"; echo "Ta strona jest tajna."; } else { //nazwa lub hasło uzytkownikanie jest poprawne echo "<h1> NIc z tego ! </h1>"; echo " NIe masz prawa ogladac tajnych danych."; } ?> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 0 Dołączył: 19.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Istnieje coś takiego jak php BBCode
- - - A tak : [php:1:8a7c864be7]<?php $r = mysql_connect( "localhost", "webauth", "webauth123" ) or die ("Nie mozna sie polaczyc<br>"); print "polaczenie z serwerm nawiazane.<br>"; $mysql = mysql_select_db( "auth" ) or die ("Nie można wybrać bazy danych.<br>"); print "Uzyskano dostep do bazy auth<br>"; $result = mysql_query("SELECT * FROM auth WHERE (name ='$name' AND pass = '$password') LIMIR 1"); $rows = mysql_num_rows( $result ); if ( $rows ) { echo "<h1> Udało sie"; echo "Ta strona jest tajna."; } else { echo "<h1> NIc z tego ! </h1>"; echo " NIe masz prawa ogladac tajnych danych."; } ?>[/php:1:8a7c864be7] |
|
|
![]()
Post
#3
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Kod $result = mysql_query("SELECT * FROM auth WHERE (name ='$name' AND pass = '$password') LIMIR 1");
LIMIR ? Chyba nie sprawdziłeś tego kodu :] |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Kod +--+--+ Łatwo się pomylić, a przecież przy takich błędach łatwo zauważyć literówkę (mysql pokazuje miejsce błędu!!!).
| R| T| +--+--+ A tak wogóle to po co nawiasy dookoła warunków WHERE'a, przecież w sql, nie trzeba nawiasów (są one tak jakby automatyczne przy spotkaniu AND/OR/XOR) |
|
|
![]()
Post
#5
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
W sumie to LIMIT wogóle nie jest tu potrzebny, bo raczej nie będziemy chcieli mieć dwóch użytkowników o tym samym loginie, więc wprowadzimy jakieś zabezpieczenia.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 0 Dołączył: 19.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli nie dał na pole z loginem unique to będziemy mieli (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Przy takim zapytaniu LIMIT ma jeszcze inne znaczenie - może znaczenie skrócić czas trwamnia zapytania, ponieważ MySQL, zamiast szukać kolejnych rekordów spełniających podany warunek (co z góry skazane jest na niepowodzenie) kończy od razu po pierwszym
|
|
|
![]()
Post
#8
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
DeyV, zawsze mi podsuniesz dobrą myśl... Czy dobrze rozumiem, że w takim razie nawet przy wybieraniu pojedynczego rekordu warto dac LIMIT ?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Tak, chyba że w warunku oparty jest tylko na unikalnym kluczu - wtedy MySQL powinien sam umieć o tym zadecydować.
Jednak na pewno jest to dobry nawyk - prosić tylko o to, co jest ci niezbędne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 15:09 |