0 レビュー
5 回答
私のウェブサイトのphpコメントセクション
<脇>
答えへのリンク
答えへのリンク
答えへのリンク
答えへのリンク
答えへのリンク
この質問にはすでに回答があります:
わからない
0
レビュー
答え :
解決策:
<?php
mysql_connect("localhost","root","");
mysql_select_db("commentbox");
if(isset($_POST["name"]){
$name= $_POST["name"];
}
if(isset($_POST["comment"]){
$comment= $_POST["comment"];
}
if(isset($_POST["submit"]){
$submit= $_POST["submit"];
}
$dbLink = mysql_connect("localhost", "root", "Broadband74");
mysql_query("SET character_set_client=utf8", $dbLink);
mysql_query("SET character_set_connection=utf8", $dbLink);
if($submit)
{
if($name&&$comment)
{
mysql_query("INSERT INTO commenttable (name,comment) VALUES ('$name','$comment') ");
}
else
{
echo "please fill out all fields";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Comment box</title>
</head>
<body>
<center>
<form action="comment.php" method="POST">
<table>
<tr><td>Name: <br><input type="text" name="name"/></td></tr>
<tr><td colspan="2">Comment: </td></tr>
<tr><td colspan="5"><textarea name="comment" rows="10" cols="50"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Comment"></td></tr>
</table>
</form>
<?php
$dbLink = mysql_connect("localhost", "root", "");
mysql_query("SET character_set_results=utf8", $dbLink);
mb_language('uni');
mb_internal_encoding('UTF-8');
$getquery=mysql_query("SELECT * FROM commenttable ORDER BY id DESC");
while($rows=mysql_fetch_assoc($getquery))
{
$id=$rows["id"];
$name=$rows["name"];
$comment=$rows["comment"];
echo $name . '<br/>' . '<br/>' . $comment . '<br/>' . '<br/>' . '<hr size="1"/>'
;}
?>
</body>
</html>
わからない
0
レビュー
答え :
解決策:
最初にページを読み込んだとき、リクエストにバインドされたPOSTデータがまだないため、フォームが送信されるまで失敗します。 isset()を使用して値が設定されているかどうかを確認するか、エラーを明示的に処理することができます。
http://php.net/manual/en/language.exceptions.php
または、フォームとコードを別のページに配置して処理することもできます。
わからない
0
レビュー
答え :
解決策:
mysqli_
またはPDO
関数のいずれかでパラメーターを使用する必要があります。しかし:
<?php
mysql_connect("localhost","root","");
mysql_select_db("commentbox");
$dbLink = mysql_connect("localhost", "root", "Broadband74");
mysql_query("SET character_set_client=utf8", $dbLink);
mysql_query("SET character_set_connection=utf8", $dbLink);
if($_POST["submit"])
{
if( (isset($_POST["name"]) && !empty($_POST["name"])) &&
(isset($_POST["comment"]) && !empty($_POST["name"])) )
{
$name= $_POST["name"];
$comment= $_POST["comment"];
mysql_query("INSERT INTO commenttable (name,comment) VALUES ('$name','$comment') ");
}
else
{
echo "please fill out all fields";
}
}
わからない
0
レビュー
答え :
解決策:
フォームが以前に送信されたかどうかを確認する必要があります:
if(isset($_POST['submit']))
{
mysql_connect("localhost","root","");
mysql_select_db("commentbox");
$name= $_POST["name"];
$comment= $_POST["comment"];
$submit= $_POST["submit"];
$dbLink = mysql_connect("localhost", "root", "Broadband74");
mysql_query("SET character_set_client=utf8", $dbLink);
mysql_query("SET character_set_connection=utf8", $dbLink);
if($name&&$comment)
{
mysql_query("INSERT INTO commenttable (name,comment) VALUES ('$name','$comment') ");
}
else
{
echo "please fill out all fields";
}
}
わからない
0
レビュー
答え :
解決策:
ページが読み込まれるたびにPHPコードが実行されます。最初のロードでは、フォーム入力は指定されず、それらの値は設定されていません。ただし、スクリプトは $_POST['field']
を使用しようとしますが、PHPはこれらのフィールドを認識しないため、 Undefined Index
エラーをスローするだけです。< / p>
この問題の解決策は実際には非常に簡単です。 isset()
を使用する:
<?php
if(isset($_POST['submit']) { //checking if form was submitted
mysql_connect("localhost","root","");
mysql_select_db("commentbox");
$name = isset($_POST['name']) ? $_POST['name'] : null;
$comment= isset($_POST['comment']) ? $_POST['comment'] : null;
$submit= isset($_POST["submit"]) ? $_POST["submit"] : null;
$dbLink = mysql_connect("localhost", "root", "Broadband74");
mysql_query("SET character_set_client=utf8", $dbLink);
mysql_query("SET character_set_connection=utf8", $dbLink);
if($submit)
{
if($name&&$comment)
{
mysql_query("INSERT INTO commenttable (name,comment) VALUES ('$name','$comment') ");
}
else
{
echo "please fill out all fields";
}
}
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。