Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> supplied argument is not a valid MySQL...
aleksander
post 8.04.2004, 17:15:16
Post #1





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


Wiem co znaczy ten błąd, ale nie wiem co jest źle w moim skrypcie. Obsługę mysqla zrobilem prawie w całości z przykładów w manualu. Zadanie skryptu: logowanie, gdzie login/pass są zapisane w bazie. Wywala mi taki błąd:
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:usrapachehttpdhtmladminlogin.php on line 13



Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:usrapachehttpdhtmladminlogin.php on line 27

A oto kod programu (zacowałem oryginalne numery linijek):
[php:1:a4ca6e4ea9]<?php
ob_start();
session_start();

require("const.inc");

if ($_GET['action'] == 'login')
{
mysql_connect(DBHOST, DBUSER, DBPASS) or die('Nie można się połączyć: ' . mysql_error());
mysql_select_db(DBNAME);
$query = "SELECT login, pass FROM admin_users WHERE login=" . $_POST['login'] . " AND pass=" . $_POST['passwd'];
$result = mysql_query($query);
if(mysql_num_rows($result)>0)
{
//TU AKCJE JEZELI LOGIN I HASLO SA POPRAWNE
$session_time = 15; // czas trwania sesji w minutach
$_SESSION['user'] = $_POST['login'];
$_SESSION['expire'] = time() + 60 * $session_time;
if (isset($_POST['redirect']))
{
header ("Location: http://" . $_SERVER['HTTP_HOST'] . $_POST['redirect']);
die;
}
echo 'Zalogowałeś się.<br><a href="login.php?action=logout">Wyloguj się</a>';
break;
}
elseif (mysql_num_rows($result)==0)
{
echo "zle dane";
//header('Location: http://' . $_SERVER['HTTP_HOST'] . "/admin/401.php");
}
}
//dalsza czesc programu

?>[/php:1:a4ca6e4ea9]

Więc wie ktoś może na czym polega mój błąd??
Dodam tylko, że przykładowe zapytanie wygląda tak (skopiwane dla pewności):
[sql:1:a4ca6e4ea9]SELECT login, pass FROM admin_users WHERE login=olo AND pass=0000[/sql:1:a4ca6e4ea9]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
HaRy
post 8.04.2004, 17:29:29
Post #2





Grupa: Zarejestrowani
Postów: 152
Pomógł: 0
Dołączył: 15.05.2002
Skąd: Łódź

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


zapodaj
[php:1:32413597fa]<?php
$query = "SELECT login, pass FROM admin_users WHERE login=" .
$_POST['login'] . " AND pass=" . $_POST['passwd'];
$result = mysql_query($query) or die(mysql_error());
?>[/php:1:32413597fa]
i wszystko bedzie jasne smile.gif


--------------------
Go to the top of the page
+Quote Post
spenalzo
post 8.04.2004, 17:29:59
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
[sql:1:6b8f7633d4]SELECT login, pass FROM admin_users WHERE login=olo AND pass=0000[/sql:1:6b8f7633d4]

Khem.. złe nawyki z php są przenoszone potem do mysqla
[sql:1:6b8f7633d4]SELECT login, pass FROM admin_users WHERE login='olo' AND pass='0000'[/sql:1:6b8f7633d4]


--------------------

Go to the top of the page
+Quote Post
aleksander
post 8.04.2004, 17:39:32
Post #4





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


heh, dzięki! bardzo mi pomogliście. Tylko małe sprostowanko @spenalzo: W tego typu przypadkach ZAWSZE używam formy w ' ' (chodzi mi np. o wartości tagów html w funkcji echo: niektorzy piszą echo "<a href=www.php.pl"; zamiast ...href='www.php.pl'... ), ale z mysqlem w formie pisania skryptu zetknąłem się pierwszy raz i nie znałem tego typu kruczków. Ale sie poprawie biggrin.gif . thx
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:28