[英]changing url to not existing one in php
1)我有網址http://localhost/Mayboo/az/product.php?id = 1當我將網址更改為localhost / Mayboo / az / product.php?id = [我在這里寫的任何其他內容]它給出了像這樣的錯誤: 致命錯誤:在第12行的C:\\ Users \\ Javid \\ Desktop \\ maybo \\ az \\ product.php中的非對象上調用成員函數fetch_assoc() 。 如何防止此類錯誤,如果沒有此類網址重定向到404頁面?
2)另外一個問題:當我寫localhost / Mayboo / az / product.php?id = 1%27時,它會出現此錯誤: 您的SQL語法中有錯誤; 檢查與您的MySQL服務器版本對應的手冊,以便在第144行使用“1”附近的正確語法 。 我怎么能防止這種情況呢? 這是我的代碼。 先謝謝!
<?php include 'inc/header.php'; ?>
<?php
//create DB Object
$db = new Database();
?>
<?php
$id = $_GET['id'];
$query = "SELECT * FROM mallar WHERE id = '$id'";
$post = $db->select($query)->fetch_assoc();
?>
<div class="productcolumn col-md-8">
<?php if($id == $post['id']): ?>
<h1><?php echo $post['title_az']; ?></h1>
<div class="productinfo">
<img src="img/<?php echo $post['img']; ?>">
<p><?php echo $post['text_az']; ?></p>
</div>
<div class="pdf">
<?php if($post['pdf']): ?>
<img src="img/pdf.png">
<a href="doc/<?php echo $post['pdf']; ?>"><p><?php echo $post['pdf']; ?></p></a>
<?php endif; ?>
</div>
<?php else: ?>
<?php header("Location: 404.html"); ?>
<?php endif; ?>
</div>
您可以在代碼中添加以下檢查:
ID
是否為integer
數值 ID
返回了一些行 更改
$id = $_GET['id'];
$query = "SELECT * FROM mallar WHERE id = '$id'";
$post = $db->select($query)->fetch_assoc();
至:
$id = $_GET['id'];
$error = "";
// check if id id an integer
if(is_int($id)) {
$query = "SELECT * FROM mallar WHERE id = '$id'";
// check if there are no records for an invalid ID.
if($db->select($query)->num_rows()) {
$post = $db->select($query)->fetch_assoc();
}
else {
echo "No results found";
die();
}
else {
echo "Wrong user ID supplied";
die();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.