Błąd przy sprawdzaniu logowania

0

Cześć

Mam taki błąd przy próbie logowania uzytkownika do serwisu:

<b>Warning</b>:  mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\2014-02-12\1.strona\registration\registration.php</b> on line <b>50</b>



<b>Warning</b>:  mysql_num_rows() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\2014-02-12\1.strona\registration\registration.php</b> on line <b>51</b>

Kod wygląda tak:


<?php
class registration
{

function __construct()
{
    if ($identyfikator = mysql_connect ("localhost","root","","news_base"))
    {
        if (isset($_GET["b"]))
        {
            switch($_GET["b"]){
                case "loguj":     $this->login_check(); break;
                case "form":

                default: $this->formularz(); break;
                }

        }    else $this->formularz();
    }
}


function rejestruj()
{
 echo "zapisano";
}





function formularz()
{
echo"<form action=\"index.php?a=rejestracja&b=loguj\" method=\"post\">
                        <p class=\"login_text\">Login</p>
                        <p class=\"login_text\"><input type=\"text\" name=\"login\" ></p>
                        <p class=\"login_text\">Haslo</p>
                        <p class=\"login_text\"><input type=\"password\" name=\"password\" ></p>

                        <p class=\"contact_text\"> <input type=\"submit\" value=\"loguj\"> </p>
                    </form>";
}

function login_check()
{
$login=$_POST["login"];
$password=$_POST["password"];
$check="select `id`,`imie`,`nazwisko`,`login`,`password` from `clients` where `login`='$login' and `password`='$password'";
$result=mysql_query($check);
$row=mysql_fetch_assoc($result);
$number_rows=mysql_num_rows($result);
if ($number_rows==1)
    {
        echo "zalogowano";
        $_SESSION["login"]=$row["login"];
        $_SESSION["password"]=$row["password"];
        $_SESSION["id"]=$row["id"];
        $_SESSION["imie"]=$row["imie"];
        $_SESSION["nazwisko"]=$row["nazwisko"];
        $_SESSION["ses"]=session_id();// indentyfikaTOR SSESJI ZAPMAIETANY W ZMIENNEJ SES
        login_good();
    }
    else
    {
        echo "<p class=\"login_text_info\">Niepoprawny login lub hasło. Logowanie nie udane.</p>";
        //login_start();
    }
}

function login_good()
{
echo"<form action=\"index.php?user=check\" method=\"post\">
                        <p class=\"login_text\">Witaj: </p>
                        <p class=\"login_text\">{$_SESSION["imie"]} {$_SESSION["nazwisko"]}</p>
                        <p class=\"login_text\">Zalogowano jako{$_SESSION["login"]}</p>

                        <p class=\"contact_text\">
                            <input type=\"button\" value=\"Dalej\" onclick=\"location='index.php?user=admin'\">
                            <input type=\"button\" value=\"Wyloguj\" onclick=\"location='index.php?user=logout'\">
                        </p>
                    </form>";
}

Co może być przyczyną, podaję właściwe dane do logowania. Proszę o pomoc.

0

mysql_real_escape_string.

mysql_query zwraca błąd. zrób echo mysql_error(); zaraz po mysql_query();

0

znasz angielski? to przeczytaj te błędy zamiast czym prędzej wrzucać na forum.

zrób sobie var_dump na wyniku z mysql_query, użyj podpowiedzianego przez @Ola Nordmann mysql_error oraz porzuć to źródło, które nauczyło Cię php tylko w takich szczątkach, ew. przyłóż się do nauki.

i nie używaj funkcji mysql_* - masz DZIURY w kodzie (można zalogować się bez znajomości hasła - SQL Injection), to są przestarzałe funkcje, które niedługo CAŁKIEM zostaną USUNIĘTE z php. nie warto uczyć się tak przestarzałych rzeczy. zainteresuj się PDO (zapraszam do Google i manuala PHP)

0

Dzięki za konstruktywną krytykę. Postaram się poprawić kod. Zastosuję Wasz rady.

1 użytkowników online, w tym zalogowanych: 0, gości: 1