ถ้าเขียน php เวอรชั่น 5.4 แล้วรันใน server ที่ php version 5.3
ต้องถามว่ามีใช้ function อะไรแปลก ๆ หรือไม่ ปกติ มักจะไม่มีปัญหาครับ
Date :
2014-06-27 16:40:37
By :
mr.win
Code (PHP)
<?php
session_start();
if($_SESSION['ID'] == "" || $_SESSION['Pwd'] == "")
{
echo "Please Login!";
exit();
}
include 'connect.php';
error_reporting(E_ALL ^ E_NOTICE);
?>
<html>
<head>
<title>Admin MOS Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Copyright" content="arirusmanto.com">
<meta name="description" content="Admin MOS Template">
<meta name="keywords" content="Admin Page">
<meta name="author" content="Ari Rusmanto">
<meta name="language" content="Bahasa Indonesia">
<link rel="shortcut icon" href="stylesheet/img/devil-icon.png"> <!--Pemanggilan gambar favicon-->
<link rel="stylesheet" type="text/css" href="mos-css/mos-style.css"> <!--pemanggilan file css-->
</head>
<body>
<div id="header">
<div class="inHeader">
<div id="logo">
<a href="home.php"><img src="mos-css/img/bu.png" id="imgs"></a>
</div>
<div class="mosAdmin">
Hello Administrator<br>
<a href="logout.php">ออกจากระบบ</a>
</div>
<div class="clear"></div>
</div>
</div>
<div id="wrapper">
<div id="rightContent">
<div id="search">
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>" placeholder="ชื่อ,นามสกุล,Email,Tel">
<input type="submit" value="Search"></th>
</form>
</div>
<?php
if($_GET["txtKeyword"] != "")
{
$count=1;
$strSQL = "SELECT * FROM member WHERE (Name LIKE '%".$_GET["txtKeyword"]."%' or Email LIKE '%".$_GET["txtKeyword"]."%' or Tel LIKE '%".$_GET["txtKeyword"]."%' or Sect LIKE '%".$_GET["txtKeyword"]."%')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table class="data">
<tr class="data">
<th class="data" width="80px">No</th>
<th class="data">Name</th>
<th class="data">Email</th>
<th class="data">Tel</th>
<th class="data">Section</th>
</tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr class="data">
<td class="data"><?php echo $count?></td>
<td class="data"><?php echo $objResult['Name'];?> </td>
<td class="data"><?php echo $objResult['Email'];?></td>
<td class="data"><?php echo $objResult['Tel'];?></td>
<td class="data"><?php echo $objResult['Sect'];?></td>
</tr>
<?php
$count++;
}
echo '</table>';
}
else{?>
<table class="data">
<tr class="data">
<th class="data" width="80px">No</th>
<th class="data">Name</th>
<th class="data">Email</th>
<th class="data">Tel</th>
<th class="data">Section</th>
</tr>
<?php
$count=1;
$sql="SELECT * FROM member";
$query=mysql_query($sql);
$Num_Rows = mysql_num_rows($query);
$Per_Page = 100; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$sql .=" order by ID_Std ASC LIMIT $Page_Start , $Per_Page";
$query = mysql_query($sql);
if($Page > 1)
{
$count = ($Per_Page * ($Page-1)) + 1;
}
while($result=mysql_fetch_array($query))
{
?>
<tr class="data">
<td class="data"><?php echo $count?></td>
<td class="data"><?php echo $result['Name'];?></td>
<td class="data"><?php echo $result['Email'];?></td>
<td class="data"><?php echo $result['Tel'];?></td>
<?php
if(strlen($result['Sect'])>140)
{
?>
<td class="data"><?php echo substr($result['Sect'],0,140)?>.....</td>
<?php }else{?>
<td class="data"><?php echo $result['Sect']?></td>
<?php }?>
</tr>
<?php
$count++;
}?>
</table>
<?php } ?>
<nav class="navigator">
<ul>
<?php
if($Prev_Page)
{
echo " <li><a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><</a></li> ";
}
for($i=1; $i<=$Num_Pages; $i++){
if($i != $Page)
{
echo "<li><a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a><li> ";
}
else
{
echo "<li><b> $i </b><li>";
}
}
if($Page!=$Num_Pages)
{
echo " <li><a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>></a> ";
}
?>
</ul>
</nav>
</div>
<div class="clear"></div>
<div id="footer">
<!-- ///////////////// -->
</div>
</div>
</body>
</html>
โค้ดประมาณนี้อะครับ ส่วนมากก็ก็อปมาจากเว็บนี้แหละ ฟังชั่นที่ใหญ่ๆก็มี2อย่างคือ Paging กับ Search ที่เห็น error อยู่คือฟังชั่น Search แต่ผมลองใส่โึ้ดนี้ลงไป error_reporting(E_ALL ^ E_NOTICE); error มันก็หาย
Date :
2014-06-27 16:56:01
By :
kenshero
มันหายเพราะท่านไปปิดมันไว้มากกว่าครับ
แต่จริง ๆแล้วมันไม่ไดหายไปใหน ..
เท่าที่ดู น่าจะฟ้อง Notice หลายที่อยู่นะครับ
Date :
2014-06-27 18:14:19
By :
deawx
ตามที่พี่ deawx บอกครับปัญหานี้น่าจะมาจากการรับค่าของตัวแปรที่ไม่ได้ตรวจสอบว่ามีอยู่จิงหรือไม
ลองแก้ไขตามนี้ดูนะครับ พวกคำสั่งที่รับค่ามาก็ให้ทำการเช็คค่ามันก่อนลองใช้คำสั่ง isset(); เข้ามาช่วยก็ได้ครับ
Date :
2014-06-27 23:08:49
By :
somparn
เวลาตั้งค่าสำหรับ development นะครับ ควรจะเป็น E_ALL แล้วให้แสดง error ด้วย
ไม่ใช่ไปปิด error หรือไปยกเว้น notice เพราะบางที notice มันก็ช่วยเตือนในสิ่งที่เราพลาดเล็กๆน้อยๆ
การเขียนที่รอบคอบต้องไล่เก็บรายละเอียดเล็กน้อยให้หมด เพราะถ้าเราเขียนงานบนสภาพแบบนี้แล้ว
เวลาเราส่งงานไปบน server ที่มีสภาพเป็น production ทุกอย่างหรืออย่างน้อยเกือบทุกอย่าง จะทำงานได้ดีไม่ค่อยมีปัญหาครับ
โดยเฉพาะเวลาย้ายจาก server หนึ่งไปอีกที่หนึ่ง มันจะมีสภาพแวดล้อมต่างกัน
มันจะทำงานได้ดีทีเดียวถ้าคุณตั้งค่าตอนเขียนไว้ดี เก็บรายละเอียดเนี้ยบหมด
สำหรับ 5.4 กับ 5.3
ถ้าคุณไปเขียนโดยใช้คำสั่งใหม่ๆของ 5.4 คุณก็จะรันใน 5.3 ไม่ได้นะครับ ต้องไล่ดูว่าคุณใช้คำสั่งใหม่ๆอะไรบ้าง เช่น trait, ...อื่นๆ ฯลฯ
Date :
2014-06-28 22:26:49
By :
mr.v
Load balance : Server 00