私はHTML、PHP、およびMYSQLの使い方を学び、3つの言語すべてを使用して投票Webサイトを作成しようとしています。私のHTMLとMYSQLの両方のコードはうまく機能していますが、PHPコードを動作させることができません。問題は私がラジオボタンを使用していて候補者のテキスト入力ではないという事実だと思いますが、データの変換方法はわかりません。PHPコーディングの問題
HTMLコード:
<html>
<head>
<title>U.S Election 2016</title>
</head>
<body>
<h1>U.S Election 2016 - Voting Page</h1>
<form action="insert_vote.php" method="post">
<table border="0">
<tr>
<td>Voter ID</td>
<td><input type="text" name="VoterID" maxlength="13" size="13" /></td>
</tr>
<tr>
<td>Candidate :</td>
<td>
<input type="radio" name="Candidate" value="Hillary Clinton" checked>
Hillary Clinton<br>
<input type="radio" name="Candidate" value="Donald Trump" checked>
Donald Trump<br>
<input type="radio" name="Candidate" value="Gary Johnson" checked>
Gary Johnson<br>
<input type="radio" name="Candidate" value="Jill Stein" checked>
Jill Stein<br>
<input type="radio" name="Candidate" value="None" checked>
Undecided/None of the Above<br>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Cast Vote" /></td>
</tr>
</table>
</form>
</body>
</html>
PHPコード:
<html>
<head>
<title>U.S Election 2016</title>
</head>
<body>
<h1>U.S Election 2016 - Voting Page</h1>
<?php
// create short variable names
$VoterID=$_POST['VoterID'];
$Candidate=$_POST['Candidate'];
if (!$VoterID || !$Candidate) {
echo "You have not entered all the required details.<br />"
."Please go back and try again.";
exit;
}
if (!get_magic_quotes_gpc()) {
$VoterID = intval($VoterID);
$Candidate = addslashes($Candidate);
}
@ $db = new mysqli('localhost', 'Voting2016', 'Voting123', 'voting');
if (mysqli_connect_errno()) {
Echo "Error: Could not connect to database. Please try again later.";
exit;
}
$query = "insert into voters values
('".$VoterID."', '".$Candidate."')";
$result = $db->query($query);
if ($result) {
echo $db->affected_rows." Vote has been cast and stored into database.";
} else {
Echo "An error has occurred. Your vote was not added.";
}
$db->close();
?>
</body>
</html>
私はPHPファイルをダウンロードしたい場合、それは私に尋ねるフォーム提出するたび:
なぜすべてのラジオボタンが入力に ' – Xorifelse
あなたの認識している問題は何ですか?あなたはそれがラジオ入力だとどのように結論づけましたか?デバッグ出力はどこですか?誤ったSQLの代わりにPDO /バインドされたパラメータを試してみましたか?どのようにエラー表示を抑制するのですか?また、特定のスクリプトにはちょっと遅れていませんか? – mario
あなたは多くの情報を提供していませんが、推測しなければならない場合、ラジオボタンの "name"属性に基づいて問題が発生している可能性があります。それらに「候補」という名前を付ける代わりに、「候補[]」を試してみてください。また、PHPではif(!empty($ VoterID)||!empty($ Candidate))を実行する必要があります。 if(!$ VoterID)は、$ VoterIDがブール値の場合にのみ期待どおりに動作します。 – MMMTroy