مشکل آپلود سایت بر روی هاست
با سلام
یه سوالی داشتم از دوستای گلم
من وقتی سایتم رو آپلود میکنم هیچ مشکلی نداره ولی تو بخش login هر کاری میکنم نام کاربری و رمز عبور رو قبول نمی کنه .......... :(
ولی توی هر سیستمی که به صورت local تست می کنم این مشکل رو نداره
به نظرتون مشکل کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟
نقل قول: مشکل آپلود سایت بر روی هاست
تنظیمات دیتابیس رو درست وارد کردین؟ روی هاست با لوکال فرق میکنه.
نقل قول: مشکل آپلود سایت بر روی هاست
اره همه چی درسته ...... چون توی صفحه login یه چیزایی رو از پایگاه داده میگیره و درست نمایش می ده
این کدی هست که من چک میکنم و کاربر وارد صفحه اصلی میشه:
<?phpinclude 'object/main.php';
$security= new security;
$connect = new connect;
if(isset($_POST['login'])){
if($_POST['username']=='' || $_POST['password']=='') {
$security->Redirect("login","empty=1090");
} else{
$username = $security->Check_Post($_POST['username']);
$password = $security->Check_Post($_POST['password']);
$pass_hash = $security->hash_value($password);
$company = $security->Check_Post($_POST['company']);
if($_SESSION['captcha']!=$_POST['captcha']) {
$security->Redirect("login","captcha=9022");
} else{
$sql="SELECT * FROM `user` WHERE username='".$username."' && password='".$pass_hash."' && company_name='".$company."' ";
$result = $connect->query($sql);
if(mysql_num_rows($result)>0)
{
$rows=mysql_fetch_assoc($result);
$national_num = $security->Check_Post($rows["national_num_user"]) ;
$sql2="SELECT * FROM `employer` WHERE national_num='".$national_num."' ";
$result2 = $connect->query($sql2);
$rows2=mysql_fetch_assoc($result2);
$_SESSION['national_num']= $national_num;
$_SESSION['user_name']= $rows2['name_em'];
$_SESSION['user_log'] = true;
$security->Redirect("index","welcome=1010");
} else{
$security->Redirect("login","errorlog=9020");
} /*} else{
$security->Redirect("index","errorlog=9020");
}*/ }}}else{$security->Redirect("index");}?>
نقل قول: مشکل آپلود سایت بر روی هاست
جالب اینجاست که وقتی خط 17 :
if(mysql_num_rows($result)>0)
رو کلا برمیدارم وارد صفحه اصلی میشه (البته بدون امنیت دیگه یعنی هر نام و رمزی که وارد کنین وارد برنامه میشه ) بدون مشکل البته واسه تست اینکارو کردم
حالا نظر شما چیه؟؟؟؟؟؟؟؟ من واقعا گیج شدم
نقل قول: مشکل آپلود سایت بر روی هاست
باید اول بیاید تعداد رکورد هارو داخل متغیر بگذارید سپس چک کنید
نقل قول: مشکل آپلود سایت بر روی هاست
ممنون ولی فکر نمیکنم تفاوتی داشته باشه :(
نقل قول: مشکل آپلود سایت بر روی هاست
فکر نکنم کد شما مشکلی داشته باشه اگر امتحان کردید و نشده
ولی من همیشه همچنین کاری میکنم موقع گرفتن تعداد رکورد یعنی اول وارد یک متغیر میکنم سپس چک میکنم
برای احتیاط فاصله بین 0 و علامت بزرگتر و دستور رو بگذارید
نقل قول: مشکل آپلود سایت بر روی هاست
دوستان عزیز من کل کلاس main رو میذارم که واضح تر باشه ............ و اینکه این کلاس رو از سایت دانشجویار استفاده کردم فیلم اموزشی اقای اکبری منش........
<?php
session_start();
class security{ //HASH
function hash_value($value){
return md5($value)."speiw#sb^&ewiq"; }
//check post data function Check_Post($value){
$Return1 = mysql_real_escape_string($value);
$Return2 = htmlspecialchars($Return1);
return $Return2;
} //check get data
function Check_Get($value){
$Return1 = mysql_real_escape_string($value);
$Return2 = htmlspecialchars($Return1);
$Return3 = intval($Return2);
return $Return3;
} //check get search
function Check_Get_Search($value){
$Return1 = mysql_real_escape_string($value);
$Return2 = htmlspecialchars($Return1);
return $Return2; }
//redirect function function Redirect($page,$parametr) {
if(isset($page) && isset($parametr))
{ $page_filter = $page.".php?".$parametr;
header("location:$page_filter");
exit;
} else if(isset($page)){
$page_filter = $page.".php";
header("location:$page_filter");
exit;
} } //covering function ---->include()
function Covering($page){
$page_filter = $page.".php";
include "$page_filter"; }
//check manager log
function check_manage() { if($_SESSION['manage_log']!=true) { $this->Redirect("login-admin"); } }
//check user log function check_user() { if($_SESSION['user_log']!=true) { $this->Redirect("login"); } }
function read($value){ $return1=strip_tags($value); $return2=stripslashes($return1); return $return2; } }
class template{ //check get parametr
function is_parametr($parametr,$text,$color) {
$security=new security; $template=new template; if(isset($_GET[$parametr])) { $security->Check_Get($_GET[$parametr]); $template->massage($text,$color); } }
//error or success massage
function massage($text,$color){ echo "<b><font color=$color size='4'>$text</font></b>"; } }
class connect{//connect to server and database and create security queryfunction query($sql){
$Server_name = "localhost"; $Server_username = "root"; $Server_password = ""; $Dbname = "test"; $link=mysql_connect($Server_name,$Server_username, $Server_password) or exit("Error in connect to server");
if($link) {
if(mysql_select_db($Dbname)) {
mysql_query("set names utf8"); mysql_query("set charset utf8"); $result = mysql_query($sql);
if(!$result) { echo "Error in query"; } return $result; }
else{ echo "Erron in connect to database"; } }
else{ echo "Error in connect to server"; }}}
?>
نقل قول: مشکل آپلود سایت بر روی هاست
یکبار mysql_error رو قبل از دستور mysql_num_rows با دستور echo نمایش بدین احتمالاً کوئری شما خطا داره.
نقل قول: مشکل آپلود سایت بر روی هاست
ممنون از پاسختون ...............
من کد login رو با این کد ها تغییر دادم و مشکل حل شد
$p= sprintf("SELECT * FROM `user` WHERE username = %s AND password = %s AND company_name = %s" , Getsql($_POST['username'],'text'),Getsql($pass_hash,'text') ,Getsql($_POST['company'],'text')); mysql_query("set names utf8"); mysql_query("set charset utf8"); $r=mysql_query($p);
ولی مسئله ای که وجود داره اینه :
الان کد های insert , delete , update هم کار نمیکنن و من فکر میکنم مشکل من تو قسمت مقدار گرفتن از textfield هاست که login هم مشکل داشت حالا
میخوام بدونم به چه دلیلی این کد ها مشکل داره در حالت online ؟؟؟؟؟؟؟؟؟؟؟؟
یه نمونش اینه :
$username = $security->Check_Post($_POST['username']);
اینم متد check_post :
function Check_Post($value){ $Return1 = mysql_real_escape_string($value); $Return2 = htmlspecialchars($Return1); return $Return2; }
نقل قول: مشکل آپلود سایت بر روی هاست
توی اینجور خطاها کلاً قبل از هر کاری کوئری رو چاپ کنید. بعد از اجرا هم خطا رو چاپ کنید و وقتی مطمئن شدین خطایی نیست، دستورات چاپ کوئری و خطا رو حذف کنید.