こんにちは、HTML フォームから 1 つのフィールドを更新しようとしています。何らかの理由で、更新クエリに渡すセッション変数の 1 つが受け入れられません。私はすでに変数をページにエコーしたので、それがメモリに存在することはかなり確信しています。
NB、私のコードが恐ろしく安全でないことはわかっていますが、私は PHP を学んでいます。
E2A: var_dump($filename); を実行すると、クエリを実行しようとする前は string(6) "356/18" を返し、クエリの後は NULL を返します。どこにも変数を設定解除していないので、どこに行くことができますか!
ここに私のフォームがあります:
<form method="post" action="">
<p>Your username is: <?php echo $_SESSION['userid'] ?> Your company ID is: <?php echo $companyid['id']?></p>
<h3>Please enter note for file: <?php echo $filename; ?></h3>
<table width="200" cellpadding="5">
<tr>
<th width="18%" align="right" nowrap>Add Note: </th>
<td width="82%" nowrap>
<input type="text" name="note" />
</td>
</tr>
<tr>
<td colspan="2" width="100%" nowrap>
<input type="submit" value="Submit" name="Submit" />
</td>
</tr>
</table>
</form>
これが私のUPDATEクエリです:
$sql = "UPDATE fields SET Notes = ('".mysql_real_escape_string(stripslashes($_REQUEST['note']))."')
WHERE companyId='".$companyid['id']."' AND fileNumber ='".$filename."'";
if($result = mysql_query($sql)) {
echo "<h1>Thank you</h1>Your information has been entered into our database<br><br>";
echo $sql;
echo $filename;
} else {
echo "ERROR: ".mysql_error();
}
} else {
$sql をエコーすると、以下が生成されます。
UPDATE fields SET Notes = ('asdasda') WHERE companyId='11' AND fileNumber =''
ここで、POST 変数をインスタンス化します。
include "header.php";
$checkFiles = "checkFiles.php";
// Catches form input from previous page and stores it into session variable called filename for future reference;
$_SESSION['filename']=$_POST['filename'];
$filename = $_SESSION['filename'];
//User id stuff from previous page too;
$userid = $_SESSION['userid'];
$id = mysql_query("SELECT id FROM users WHERE DXNumber='".$userid."'");
// Returns pointer so fetch it as an array and insert it into variable $companyid for later use;
$companyid = mysql_fetch_array($id);