0

みんな元気だといいのですが:)

実際、未定義の変数の複数のエラーが発生していますが、コードは完全に問題ないようです。スクリプトでこの問題が何度も発生し、本当にうんざりしています。それは私の仕事を遅らせます。

コードを確認し、解決策を送信してください。どんな種類の助けもいただければ幸いです。前もって感謝します

これがmanage-learning-material.phpの私のコードです

<?php include("../includes/config.php"); ?>
<?php

if ($_SESSION["isteacher"])
{

$con=mysql_connect($dbserver,$dbusername,$dbpassword);
if (!$con) { die('Could not connect: ' . mysql_error()); }

mysql_select_db($dbname, $con);
$courseid=$_GET["id"];
$result = mysql_query("SELECT * FROM courses WHERE (id='".$courseid."')");


while($row = mysql_fetch_array($result))
{
   $id=$row['id'];
   $title = $row['title'];
   $des = $row['description'];
   $subjectid = $row['subjectsid'];
}
mysql_close($con);
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Manage Learning Material</title>
</head>
<body>
<h2 class="alt">COURSE VIEW </h2>
<?php
if (isset($_GET["status"]))
{
if($_GET["status"]==1)
{
?>
<div class="success">
<?php
echo("<strong>Material has been added in Course Successfully!</strong>");
?>
</div>
<?php
}

if($_GET["status"]==2)
{
?>
<div class="success">
<?php
echo("<strong>Learning Material has been Edited Successfully!</strong>");
?>
</div>
<?php
}
}
?>
<form id="form" method="post" action="manage-learning-material-action.php">
 <input type="hidden" value="<?php echo $courseid; ?>" name="id" />
 <label>Course Name:</label><input type="text" name="title" id="title" class="text" value="<?php    echo $title; ?>" /><br /><br />
<label>Choose Subject:</label>
<?php

$con=mysql_connect($dbserver,$dbusername,$dbpassword);
if (!$con) { die('Could not connect: ' . mysql_error()); }

mysql_select_db($dbname, $con);


$result = mysql_query("SELECT * FROM subjects");

echo "<select name='subjectsid'>\n";
while($row = mysql_fetch_array($result))
{
echo "<option value='".$row['id'] . "'";
if ($subjectid==$row['id'])
echo 'selected="selected"';
echo " >" . $row['subjectname'] . "</option>\n";
}
echo "</select>\n";
mysql_close($con);
?>
<br /><br />
<label>Description:</label><br /><textarea name="description" id="description"><?php echo $des; ?  ></textarea><br /> <br />
</form>
</div>
</div>
<?php include("../includes/footer.php"); ?>
</div>
</body>

</html>
<?php
 }
 else
 {
    header("Location: ".$fullpath."login/unauthorized.php");

 }
?>

manage-learning-material-action.php

<?php include("../includes/config.php");?>
<?php
$id=$_POST["id"];
$title=$_POST["title"];
$des=$_POST["description"];
$subjectid=$_POST["subjectsid"];

$con=mysql_connect($dbserver,$dbusername,$dbpassword);
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("ombts", $con);
$query=("UPDATE courses SET title='".$title."', description='".$des."', subjectsid='".$subjectid."'      WHERE (id='".$id."')");
$result=mysql_query($query);
if($result){
echo header("Location:manage-courses.php?status=2");
}
mysql_close($con);
?>

エラー/警告は次のとおりです。

  Notice: Undefined index: id in C:\xampp\htdocs\project\teacher\manage-learning-material.php on   line 11

<br /><b>Notice</b>:  Undefined variable: title in <b>C:\xampp\htdocs\project\teacher\manage-learning-material.php</b> on line <b>86</b><br />
 <b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-  learning-material.php</b> on line <b>102</b><br />
>Literature7</option>
<option value='3'<br />
<b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-learning-  material.php</b> on line <b>102</b><br />
>Management</option>
<option value='7'<br />
<b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-learning-  material.php</b> on line <b>102</b><br />
>Marketing</option>
<option value='5'<br />
<b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-learning-   material.php</b> on line <b>102</b><br />
 >Science</option>
<option value='6'<br />
<b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-learning-  material.php</b> on line <b>102</b><br />
>Science2</option>
<option value='4'<br />
<b>Notice</b>:  Undefined variable: subjectid in <b>C:\xampp\htdocs\project\teacher\manage-learning-  material.php</b> on line <b>102</b><br />

<b>Notice</b>:  Undefined variable: des in <b>C:\xampp\htdocs\project\teacher\manage-learning-   material.php</b> on line <b>110</b><br />
4

4 に答える 4

5

エラーが発生せず、通知が表示されます。この場合、$titleが定義されていないときに$titleの値をエコーし​​ます...PHPは引き続き実行できますが、それを通知します。これはあなたが修正すべきものです...

それ以外の

echo $title;

使用する

echo (isset($title)) ? $title : '';

または、データベースから読み取ろうとする前に、警告されているこれらの変数のデフォルトの''値を定義します

そして、SQLインジェクション攻撃にさらされないようにするデータベースクエリを実行する方法を学びます

于 2012-10-03T10:37:52.363 に答える
4

データベースの値が空の場合、フィールドは空になります。次のコードを参照してください:

$result = mysql_query("SELECT * FROM `courses` WHERE `id` = '".$courseid."'");
if(!$result||mysql_num_rows($result)<1){echo 'empty result';}
else{
while($row = mysql_fetch_array($result))
{
echo (isset($row['id'])&&!empty($row['id'])) ? $row['id'] : '';
echo'<br>';
echo (isset($row['title'])&&!empty($row['title'])) ? $row['title'] : '';
echo'<br>';
echo (isset($row['description'])&&!empty($row['description'])) ? $row['description'] : '';
echo'<br>';
echo (isset($row['subjectsid'])&&!empty($row['subjectsid'])) ? $row['subjectsid'] : '';
}
}

このコードをテストしてEnjoy=)

于 2012-10-04T00:38:22.557 に答える
3

コードをどこから始めればよいかわからない...

変数はここで定義されます

while($row = mysql_fetch_array($result))
{
   $id=$row['id'];
   $title = $row['title'];
   $des = $row['description'];
   $subjectid = $row['subjectsid'];
}

最初にwhileループの外側でそれらを定義する必要があります

$id = "";
$title = "";
$des = "";
$subjectid = "";

while ( $row = mysql_fetch_array($result) ) {
    // .. bala bla bla
}

第二に、次の行は間違っています

<textarea name="description" id="description"><?php echo $des; ?  ></textarea><br /> <br />

そのはず

 <textarea name="description" id="description"><?php echo $des; ?></textarea><br /> <br />

最後に

PHPDOCからmysql_***

この拡張機能の使用はお勧めしません。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL:APIガイドの選択および関連するFAQも参照してください。この機能の代替手段は次のとおりです。

于 2012-10-03T10:38:29.523 に答える
3

またはこれ:

if (isset($row['title'])&&!empty($row['title'])){$title=$row['title'];}else{$title='';}
<textarea name="description" id="description"><?php echo $title; ?></textarea>

また

<textarea name="description" id="description"><?php echo (isset($row['title'])&&!empty($row['title'])) ? $row['title'] : ''; ?></textarea>

また

<textarea name="description" id="description"><?php echo (isset($title)&&!empty($title)) ? $title : ''; ?></textarea>

お楽しみください=)

于 2012-10-03T10:51:23.200 に答える