2016-11-28 3 views
-2

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

フォームのすべての入力に対して上記のエラーが表示されます。値は送信されていません。

+1

私は[マニュアルを参照してください]私はまた、ファイルに関連するすべてのエラーチェックをアップロード見ていけない '

'タグや '
'タグ – RiggsFolly

+1

を参照してくださいいけません(http://php.net/manual/en/features.file-upload.php) – RiggsFolly

+1

あなたのスクリプトは[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

答えて

1

タグを使用してフォームを送信します。 例えば 次に、あなたのコードは次のようになります: -

<form method="POST"> 
<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> 
</form> 
+1

'action =" uploadimage.php "は' RiggsFolly

+0

皆さん、私はコードを編集しました、私はフォームタグを忘れていませんでしたちょうどそれを更新した、私はコードが少し長すぎるので、コードのすべてを最初に貼り付けてコピーしなかった –

関連する問題