POSTメソッドを使用してフォームを作成し、別のPHPファイルでフォームの値を取得しようとしています。POSTメソッドによるフォーム入力の転送
でも、残念ながらうまくいかないようです。
以下は、他のコードを気にしないフォーム入力ファイル
<form action="uploadimage.php" method="POST" enctype="multipart/form-data">
<div align="center"><table border=0>';
echo"<tr><td>Caption: </td><td><input type='text' name='caption'></td></tr>
<tr><td>Album</td><td>";
$Query='SELECT * FROM `gallery`';
$result=mysqli_query($connection,$Query);
echo'<select name="albums">';
$count=0;
$previous=-1;
while($data=mysqli_fetch_array($result))
{
if($previous<$data['album'])
{
echo "<option value=".$data['album'].">".$data['album']."</option>";
$previous=$data['album'];
}
if($count<=$data['album'])
{
$count=$data['album']+1;
}
}
echo "<option value='.$count.'>New Album</option>";
echo"</select></td></tr>
<tr><td>Picture: </td><td><input type='file' name='photo'></td></tr>
<tr><td></td><td><input type='submit' name='upload_btn' value='upload'></td></tr>
</table></div>
</form>
ですが、私は、フォームの入力値の転送についてだけ心配しています。ここ
は別のPHPファイルのフォームの値
require_once"connection.php";
$target_Path='img/displays/';
$caption=$_POST['caption'];
$albums=$_POST['albums'];
$target_Path = $target_Path.basename($_FILES['photo']['name']);
move_uploaded_file($_FILES['photo']['tmp_name'], $target_Path);
$withoutExt = preg_replace("/\\.[^.\\s]{3,4}$/", "", $target_Path);
mysqli_query($connection,"INSERT INTO `ett`.`gallery` (`id` ,`album`,`name`,`path`)VALUES (NULL,'".$albums."','".$caption."','".$withoutExt."')");
を受信するためのコードであり、
注意次のように私は受信エラーがある:不定度:Cでキャプション。 \ wamp \ www \ ETT Logo \ Controlpanel \ uploadimage.php on line 12
フォームのすべての入力に対して上記のエラーが表示されます。値は送信されていません。
私は[マニュアルを参照してください]私はまた、ファイルに関連するすべてのエラーチェックをアップロード見ていけない '
'タグ – RiggsFollyを参照してくださいいけません(http://php.net/manual/en/features.file-upload.php) – RiggsFolly
あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php) [Little Bobby Tables](http://bobby-tables.com/)に何が起こったかを見てください。 [入力をエスケープしている場合は安全ではありません! ](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) [準備されたパラメータ化された文]を使用してください(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly