Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql - PHP - LOGOWANIE
jaca
post
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.";
}

?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Wankster
post
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]
Go to the top of the page
+Quote Post
Cudi
post
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 :]
Go to the top of the page
+Quote Post
Jabol
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Kod
+--+--+

| R| T|

+--+--+
Łatwo się pomylić, a przecież przy takich błędach łatwo zauważyć literówkę (mysql pokazuje miejsce błędu!!!).
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)
Go to the top of the page
+Quote Post
Cudi
post
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.
Go to the top of the page
+Quote Post
Wankster
post
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 biggrin.gif
Go to the top of the page
+Quote Post
DeyV
post
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


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
scanner
post
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 ?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
DeyV
post
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 winksmiley.jpg


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:13