0

4、5、6 行目に問題があり、すべて正常に動作し、データがデータベースに送信され、結果が出力されていますが、ページをロードするときにこのメッセージが表示されます。

Undefined index: name in C:\xampp\htdocs\xampp\site\comment.php on line 4

Notice: Undefined index: comment in C:\xampp\htdocs\xampp\site\comment.php on line 5

Notice: Undefined index: submit in C:\xampp\htdocs\xampp\site\comment.php on line 6

再度感謝します。どんな助けでも大歓迎です:)これがコードです。事前に私を助けてくれる人に感謝します

<?php
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($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>
4

5 に答える 5

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";
    }
}
于 2013-07-24T15:05:51.597 に答える
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";
    }
}
于 2013-07-24T15:06:17.900 に答える
0

ページを最初にロードしたとき、リクエストにバインドされた POST データはまだないため、フォームが送信されるまで失敗します。isset() を使用して値が設定されているかどうかを確認するか、エラーを明示的に処理できます。

http://php.net/manual/en/language.exceptions.php

または、フォームとそれを処理するコードを別のページに配置することもできます。

于 2013-07-24T15:04:55.040 に答える
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>
于 2013-07-24T15:03:42.940 に答える