PDA

View Full Version : چرا توی موزیلا و کروم و... کار نمیکنه؟



sir_ams
چهارشنبه 16 آذر 1390, 23:02 عصر
سلام.من یه صفحه لاگ این درست کردم که اگه یوزر و روز درست بود بره به صفحه اصلی اگه غلط بود بره به یه جایی بگه غلظه! یه سوال : موزیلا و کروم و ... نمیشناسه اما در IE قشنگ کار میکنه! نمیدونم چرا؟
توی اونها هم کار میکنه اما اگه یوزر و روز هم درست باشه، خطا میده نمیدونم چرا!
توی IE اینطوری نیست!درست کار میکنه! کسی میتونه راهنماییم کنه؟
پیشاپیش ممنون

pejman_view
چهارشنبه 16 آذر 1390, 23:38 عصر
سلام

لطفاً کدی که نوشتید رو بگذارید یا دقیقاً بگویید از چه روشی برای دریافت زمان استفاده می کنید و روش بررسی خودتان هم بگویید.

sir_ams
پنج شنبه 17 آذر 1390, 21:55 عصر
ممنونم آقا پژمان

<?php
session_start();?>
<?php
include("Connections/cn.php");
$db_link = mysql_connect($db_host, $db_user, $db_pass) or die("خطا در اتصال به پایگاه داده");
mysql_select_db($db_name, $db_link) or die("خطا در انتخاب پایگاه داده");
mysql_query("SET NAMES `utf8`");

$sql="select * from user";
$result=mysql_query($sql,$db_link);
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<script type="text/javascript">
function validate(form_id,email) {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.forms[form_id].elements[email].value;
if(reg.test(address) == false) {
alert('آدرس ايميل شما نا معتبر مي باشد!');
return false;
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>ورود کاربر</title>
<link id="page_favicon" href="/favicon.ico" rel="icon" type="images/icon" />
<link rel="shortcut icon" href="/favicon.ico">
<link rel="stylesheet" type="text/css" href="loginstyle.css" />
</head>

<body>

<form id="login-form" action="#" method="post">
<fieldset>

<legend>ورود</legend>

<label for="login">نام کاربری</label>
<input type="text" id="login" name="login"/>
<div class="clear"></div>

<label for="password">رمز عبور</label>
<input type="password" id="password" name="password"/>
<div class="clear"></div>

<label for="remember_me" style="padding: 2;"><a href="forgetpass.php">فراموشی رمز عبور</a></label>
<label for="remember_me" style="padding: 2;"> کاربر جدید<a href="register.php">ثبت نام </a></label>
<div class="clear"></div>
<br />
<input type="submit" style="margin: -20px 0 0 287px;" class="button" name="commit" value="ورود"/>
<br/>
</fieldset>
</form>
<?php
if(isset($_POST['commit']))
{

$username = $_POST['login'];
$pass = $_POST['password'];
if(empty($username))
{ echo "<script> alert('!وارد کردن نام اجباری است');</script>";}
elseif(empty($pass))
{ echo "<script> alert('!وارد کردن رمز عبور اجباری است');</script>";}

else{
$num=mysql_num_rows($result);
for($i=1;$i<=$num;$i++)
{
$data = mysql_fetch_array($result);
if($username== $data['username'] && $pass==$data['password'])
{ if($data['status']==1)
{
$_SESSION['login']=$username;
echo ' <meta http-equiv="Refresh" content="0;url=main.php">';
}
}
}
if($username != $data['username'] || $pass != $data['password'])
{echo ' <meta http-equiv="Refresh" content="0;url=error.php">';}
}
}
$_SESSION['eduAdmin']=false;
$_SESSION['teacher']=false;
$_SESSION['news']=false;
$_SESSION['profile']=false;
?>
</body>
</html>
این هم کد های صفحه ی ورود

pejman_view
جمعه 18 آذر 1390, 10:17 صبح
سلام

در کدتان خیلی اشتباه دارید. وقتی دیتابیس شما سنگین تر شود و یوزرها بیشتر شود سرور حتماً نابود خواهد شد، مشکلات را در زیر می نویسم:
1- شما تمامی کاربران را فراخوانی کردید سپس با PHP آن ها را بررسی می کنید! حالا فرض کنید 20 تا یوزر همزمان از چنین صفحه ایی بازدید کنند و کاربران شما بالای 2000 نفر باشد. یعنی اطلاعات 2000 کاربر را ضربدر 20 نفر فراخوانی کردید یعنی رم سیستم شما بالای 1 گیگابایت باید باشد که سایتتان مشکلی برایش پیش نیاید. البته اگر 10 گیگابایت هم باشد نبایستی اینطوری بنویسید.
2- شرط ها معمولاً یا اتفاق می افتند یا نمی افتند که از else یا از elseif استفاده می کنیم (نه شرط جدید).


if($username== $data['username'] && $pass==$data['password']){
...
}else{
...
}

چون اگر نام کاربری و رمزعبور صحیح نباشد حالا هر اتفاقی بیافتد به ما مربوط نیست و از else استفاده می کنیم.

و حالا برسیم به جوابتان بجای استفاده از کد زیر :


echo ' <meta http-equiv="Refresh" content="0;url=error.php">';

از این کد استفاده کنید:

header('location: error.php');
exit();