PHP mysql_num_rows

Programovacie jazyky, rady, poradňa...
ServerApp
Zablokovaný
Zablokovaný
Príspevky: 125
Registrovaný: 16 sep 2011, 15:00

PHP mysql_num_rows

Príspevok od používateľa ServerApp »

Čau. Problém s databázou sa mi ako tak podarilo vyriešiť. Mám ale následujúci problém:

Kód: Vybrať všetko

<?php

class UserManager
{
    /* Hodnoty priraďované premenným zmente na svoje prihlasovacie údaje */
    private $server = "localhost";
    private $database_name = "aaa";
    private $database_username = "aaa";
    private $database_userpassword = "aaa";


    /* Tu sú public premenné s informáciami o uživateľovi.*/
    
    public $username;
    public $pass;
    public $mail;
    public $info;

    public function __construct()
    {
        mysql_connect($this->server, $this->database_username, $this->database_userpassword);
        mysql_select_db($this->database_name);
    }
    public function RegisterUser($name, $pass, $mail)
    {
        mysql_query("INSERT INTO USERS (name, pass, mail) VALUES ('$name', '$pass', '$mail')") or die(mysql_error());
        
    }
    public function LoginUser($name, $pass)
    {
        $num = mysql_num_rows(mysql_query("SELECT name FROM USERS WHERE pass='$pass' AND name='$name'")) or die(mysql_error());
        echo $num;

        if($num==1)
        {
            session_start();
            $_SESSION['log'] = true;
            $_SESSION['name'] = $name;
            return true;
        }
        else
        {
            return false;
        }
    }
    public function isLoggedIn()
    {
        if($_SESSION['log'])
            return true;
        else
            return false;
    }
}


$obj = new UserManager();
$obj->RegisterUser();
$obj->LoginUser("blah", "blah");
$res = $obj->isLoggedIn();
if($res==true)
     echo "true";
else
     echo "false";

Ide o to, že: Registrácia bez údajov prebehne úspešne. Potom prihlásenie. Ale je tu problém v prihlásení. Totiž ak dám meno a heslo, ktoré sa v databáze nachádza (blah, blah), tak sa mi vypíše 1true(prvé echo vypíše počet riadkov, ktorý bol zistený z query pomocou num_rows. Druhé echo sa vypíše iba v tedy, ak funkcia isLoggedIn vráti true(ak je $_SESSION['name'] true) ). Môj problém je, že ak zadám meno alebo heslo, čo v db nieje, nevypíše sa mi nič. Ale, malo by sa mi vypísať aspoň false. Neviete niekto, čím to je?
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: PHP mysql_num_rows

Príspevok od používateľa juho »

zapni si hlasenie chyb

Kód: Vybrať všetko

if(isset($_SESSION['log']))
a dalsi problem budes mat v tom ze ak ti to nevrati ziaden riadok tak sa ani session_start nespusti
Napísať odpoveď