نقل قول: بررسی فیلد خالی PHP
توی فایل index.php میتونید از امکانات html5 استفاده کنید و کاربر ملزم بشه که فیلد رو باید پر کنه پارامتر reuired بصورت زیر
<input type="text" name="q" required>
در گرفتن داده از کاربر شرط رو بصورت زیر تغییر بدید که ابتدا چک کنه اگر نامعتبر بود کلا برگرده و ادامه نده
البته بهینه تر هست که ابتدا ورودی کاربر رو چک کنه اگر نامعتبر بود اصلا به دیتابیس وصل نشه
<?php
$searchq = isset($_GET['q']) && !empty($_GET['q']) ? $_GET['q'] : null;
if ($searchq == null) {
header("location: ./");
return;
}
$conn = mysqli_connect("localhost", "user", "pass", "db_name");
if (mysqli_connect_errno()) {
echo "Failed to connect: " . mysqli_connect_error();
header("location: ./");
return;
}
error_reporting(0);
$output = '';
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if ($c == 0) {
$output = 'No search results for <b>"' . $searchq . '"</b>';
} else {
while ($row = mysqli_fetch_array($q)) {
$id = $row['id'];
$title = $row['title'];
$desc = $row['description'];
$link = $row['link'];
$output .= '<a href="' . $link . '">
<h3>' . $title . '</h3>
<p>' . $desc . '</p>
</a>';
}
}
print("$output");
mysqli_close($conn);
?>
نقل قول: بررسی فیلد خالی PHP
نقل قول:
نوشته شده توسط
مهرداد سیف زاده
توی فایل index.php میتونید از امکانات html5 استفاده کنید و کاربر ملزم بشه که فیلد رو باید پر کنه پارامتر reuired بصورت زیر
<input type="text" name="q" required>
در گرفتن داده از کاربر شرط رو بصورت زیر تغییر بدید که ابتدا چک کنه اگر نامعتبر بود کلا برگرده و ادامه نده
البته بهینه تر هست که ابتدا ورودی کاربر رو چک کنه اگر نامعتبر بود اصلا به دیتابیس وصل نشه
<?php
$searchq = isset($_GET['q']) && !empty($_GET['q']) ? $_GET['q'] : null;
if ($searchq == null) {
header("location: ./");
return;
}
$conn = mysqli_connect("localhost", "user", "pass", "db_name");
if (mysqli_connect_errno()) {
echo "Failed to connect: " . mysqli_connect_error();
header("location: ./");
return;
}
error_reporting(0);
$output = '';
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if ($c == 0) {
$output = 'No search results for <b>"' . $searchq . '"</b>';
} else {
while ($row = mysqli_fetch_array($q)) {
$id = $row['id'];
$title = $row['title'];
$desc = $row['description'];
$link = $row['link'];
$output .= '<a href="' . $link . '">
<h3>' . $title . '</h3>
<p>' . $desc . '</p>
</a>';
}
}
print("$output");
mysqli_close($conn);
?>
ممنون از شما کد زیر که نوشتید به خوبی جواب داد.
$searchq = isset($_GET['q']) && !empty($_GET['q']) ? $_GET['q'] : null;if ($searchq == null) { header("location: ./"); return;}
حالا یه چیزی به ذهنم رسید. اگه بخوام کاری کنم که کسی نتونه از کاراکترهای خاص یا عدد یا نقطه به تنهایی در قسمت search استفاده کنه باید چه تغییری در کد بالا بدم که علاوه بر اینکه کار کد بالا رو انجام میده این کار جدید رو هم انجام بده؟ چون نمیخوام کسی با وارد کردن علامت سوال یا نقطه یا عدد به هرچی اطلاعات در دیتابیس هست دسترسی پیدا کنه. الان اگه یک نفر یک نقطه رو به تنهایی در کادر جستجو تایپ کنه و دکمه رو بزنه تمام چیزهایی که در دیتابیس با نقطه هست براش نشون داده میشه.
ممنون میشم اگه در این مورد هم کمک کنید.
نقل قول: بررسی فیلد خالی PHP
میتونید فیلتر کنید. مقایسه رشته در php ساده هست یا براش regular expression تعریف کنید.
مثلا
$filter = array('.','?','+','=','-');
if ($searchq == null || in_array($searchq,$filter)) {
header("location: ./");
return;
}