PDA

View Full Version : مشکل در کد من



redhat2
شنبه 16 دی 1391, 21:21 عصر
سلام به دوستان ، من کدی که پایین اومده را نوشتم ولی اروری که در تصویر اومده را نشان میده میشه بگید مشکل چیه ؟

Tarragon
شنبه 16 دی 1391, 21:51 عصر
ارور اول می گه که
$_POST['username' و ارور دوم می گه
$_POST['password'] این وجود نداره ارور سوم هم زیر مجموعه دو ارور قبله اگر اون ها رو فیکس کنید این هم فیکس می شه.

mohsen_31369
شنبه 16 دی 1391, 21:53 عصر
سلام تو اصفحه index وقتی برای اولین بار اجرا می شود هنوز داده ها با متد post ارسال نشده. برای همین مقادیر username و password رو نمیشناسه.
اون کدو اینجوری تغییر بده


require_once("member.class.php");
if(isset($_POST['username']))
{
$object = new memberclass();
$object->login($_POST['username'],$_POST['password']);
}

redhat2
شنبه 16 دی 1391, 22:26 عصر
ممنون که جواب دادین ، بازم مشکل سوم وجود داره ، من فکر کنم این کد مشکل داره ولی نمیدونم مشکلش چیه ؟ میشه شما یه امتحانی رو local تون بکنید و جواب را بگید ، ممنون . من کد را این شکلی کردم و پاسخ hello را با تصویر سوم نشون داد .

<?php

class memberclass
{
protected $_local = "localhost";
protected $_user = "root";
protected $_pass = "";
protected $_name = "cms";
protected $_table = "user";
protected $_username;
protected $_fetchAll = array();
protected $_password;
function __construct()
{
$config = mysql_connect($this->_local,$this->_user,$this->_pass);
mysql_select_db($this->_name,$config);
}
function login($username,$password)
{

$this->_username = $username;
$sql = "SELECT * FROM ".$this->_user." WHERE username = ".$this->_username."";
$query = mysql_query($sql);
if(!$query)
{
echo "Hello . ";
}
if(mysql_num_rows($query) == 1)
{
$this->_fetchAll = mysql_fetch_array($query);
$this->_password = $password;
if($this->_fetchAll['username'] == $password)
{
$_SESSION['username'];
}
else
{
die("The Password Is Incorrect . ");
}
}
else
{
die("Problem . ");
}
}
}

?>
فکر کنم مشکل از این کده :

$sql = "SELECT * FROM ".$this->_user." WHERE username = ".$this->_username."";
شما به خط 24 دقت کنین .

MMSHFE
شنبه 16 دی 1391, 22:37 عصر
بجای if بعد از آکولاد بسته انتهای (if(!$query از elseif استفاده کنید.

mokha21
شنبه 16 دی 1391, 23:04 عصر
یه مشکل اینه که در کد زیر نام جدول رو اشتباه وارد میکنید.(به جای نام جدول ، نام یوزر دیتابیس رو قرار دادید)


$sql = "SELECT * FROM ".$this->_user." WHERE username = ".$this->_username."";

باید بشه


$sql = "SELECT * FROM ".$this->_table." WHERE username = ".$this->_username."";

و دوم اینکه فک کنم شرط زیر نادرست باشه (سطر32)


if($this->_fetchAll['username'] == $password)

redhat2
یک شنبه 17 دی 1391, 10:29 صبح
من elseif را انجام دادم ، حالا تصویر سوم میره ولی اروری که مربوط به Hello هست هنوز وجود داره :

$sql = "SELECT * FROM ".$this->_table." WHERE username = ".$this->_username."";
$query = mysql_query($sql);
if(!$query)
{
echo "Hello . ";
}
فکر کنم مشکل از برقرار نکردن ارتباط باشه ، منظورم دستور Sql است ، اگه میشه یکی از دوستان بر روی Wamp یا هر چیزه دیگه ای تست کنه و به من نتیجه را بگه ، ممنون میشم .

Tarragon
یک شنبه 17 دی 1391, 11:04 صبح
بفرمایید این کد تست هم شد :

<?php

class memberclass
{
protected $_local = "localhost";
protected $_user = "root";
protected $_pass = "";
protected $_name = "cms";
protected $_table = "user";
protected $_username;
protected $_fetchAll = array();
protected $_password;
function __construct()
{
$config = mysql_connect($this->_local,$this->_user,$this->_pass);
if(!$config)die(mysql_error());
mysql_select_db($this->_name,$config) or die(mysql_error());
}
function login($username,$password)
{

$this->_username = $username;
$sql = "SELECT * FROM ".$this->_table." WHERE username = '".$this->_username."'";
$query = mysql_query($sql);
if(!$query)die(mysql_error());
if(mysql_num_rows($query) == 1)
{
$this->_fetchAll = mysql_fetch_array($query);
$this->_password = $password;
if($this->_fetchAll['password'] == $password)
{
$_SESSION['name'];
die("hi");
}
else
{
die("The Password Is Incorrect . ");
}
}
else
{
die("Problem . ");
}
}
}

?>

mokha21
یک شنبه 17 دی 1391, 11:15 صبح
کد زیر رو تست کنید


<?php

class memberclass
{
protected $_local='localhost';
protected $_user='root';
protected $_pass='';
protected $_name='cms';
protected $_table='user';
protected $_username;
protected $_fetchAll=array();
protected $_password;

function __construct()
{
$config=mysql_connect($this->_local,$this->_user,$this->_pass);
mysql_select_db($this->_name,$config);
}

function login($username,$password)
{
$this->_username=$username;
$sql='SELECT * FROM '.$this->_table.' WHERE username = '.$this->_username.'';
$query=mysql_query($sql);

if(isset($query) && mysql_num_rows($query)==1)
{
$this->_fetchAll=mysql_fetch_array($query);
$this->_password=$password;

if($this->_fetchAll['password']==$password)
{
$_SESSION['username'];
}
else
{
die('The Password Is Incorrect . ');
}
}
elseif(!isset($query))
{
echo 'Hello . ';
}
else
{
die('Problem . ');
}
}
}

?>

redhat2
یک شنبه 17 دی 1391, 11:52 صبح
کد رو تست کردم نشد ، ارور تصویر شماره 3 که اول تاپیک اومده را نوشن داد ، این قسمتا را به کد اضافه کردم
ارور nemishe را داد .

if(!$query)
{
die('Nemishe ');
}

Tarragon
یک شنبه 17 دی 1391, 11:58 صبح
کد من رو هم تست کردید؟
اخه من کامل تست کردم مشکل نداشت!