私のPHPコードがうまく動作しないような問題が発生しました。何度も何度も見てきました。私はそれを理解できません。私は、私の製品(ウェブサイト)の潜在的なユーザーがコメディやライブバンドなどのタイプでイベントを検索することを許可するプロジェクトに取り組んでいます。これにより、ユーザーは、彼らは表示するために入力します。検索PHPコードが正しく動作しないのはなぜですか?
これまでのところ、私はこのコードを作成しました:
<?php
//$output= NULL;
if(isset($_POST['submit'])){
//connect db
require_once('connect.php');
$search = $_POST['search'];
//query db
$result = $mysqli->query("SELECT * FROM resit1617_events WHERE type =
'$search'");
if($result->num_rows > 0){
while($rows = $result->fetch_assoc())
{
$event = $rows['name'];
$type = $rows['type'];
$description = $rows['description'];
$day = $rows['day'];
$month = $rows['month'];
$year = $rows['year'];
$recommendations = $rows['recommendations'];
$age = $rows['min_age'];
$output ="Event: $event, Type: $type, Date: $day/$month/$year, Minimum Age: $age, Recommendations: $recommendations, Description:
$description<br />";
}
}else{
$output = "No Results";
}
}
?>
その後、私はPHPと私のHTMLコードは、出力値をエコーするために含まれているが、コードは誰もが知っている場合
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>The Welders Arms</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div id="topbar">
<p><img src="img/logo.png" alt="logo"></p>
</div>
<div id="wrapper">
<form method="POST" action="search.php">
<label id="searchheading">Search Events in The Welders Arms</label>
<br>
<input type="text" placeholder="Search by type of event e.g. live band, comedy etc.." id="type" name="search">
<input type="submit" id="searchbutton" value="Search">
<br>
</form>
<?php echo $output; ?>
</div>
</body>
</html>
を動作しないようですなぜそれがうまくいかないのかという解決策は、私のプロジェクトで私がこれからも続けてくれるので私に知らせてください。
ありがとうございました!
PS。あなたはので、あなたが提出しようとしているポストをキャッチあなたはそれをisset($_POST['submit']
を設定しているPHPスクリプトでこのname="submit"
のように提出するという名前のattibuteを持っていないコードのすべてを一つのファイルにsearch.php
あなたは 'submit'という名前の入力を持っていません。送信ボタンに 'name =" submit "がないので、' if(isset($ _ POST ['submit'])){'は決してtrueになりません。 – Qirel
その巨大なセキュリティホールを抱えている – rtfm
すでに** prepared statement **をサポートしているAPIを使用していますが、バウンド変数の入力では、プレースホルダ(プリペアドステートメント)でパラメータ化されたクエリを利用して、[SQLインジェクション](http://stackoverflow.com/q/60174/)! ['mysqli :: prepare()'](http://php.net/mysqli.prepare)から始めましょう。 – Qirel