0

これは学生のプロフィール情報フォームであり、すべてのデータが mysql テーブルに完全に保存されているフォームを送信すると正常に機能しますが、情報を含む写真をアップロードしたい

フォームを送信した後、フォームに入力して画像を添付するとき

画像ディレクトリにはアップロードされませんが、mysql テーブルの写真名は完全に保存されますが、画像フォルダにはアップロードされません。

どうすればこの問題を解決できますか?

フォームを送信

 <form action="" method="post">
 <div>
   <p><span class="style9"><strong>G.R.N No:</strong></span><strong>  *</strong>
     <input name="grn" type="text" value="<?php echo $grn; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Name:</strong></span><strong>  *</strong>
     <input name="name" type="text" value="<?php echo $name; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Home Address:</strong></span><strong>  *</strong>
     <textarea name="address" cols="50"><?php echo $address; ?></textarea>
   </p>
   <p><span class="style9"><strong>Father Name:</strong></span><strong>  *</strong>
     <input name="fathername" type="text" value="<?php echo $fathername; ?>" size="50" />
   </p>
      <p><span class="style9"><strong>Mother Name:</strong></span><strong>  *</strong>
     <input name="mothername" type="text" value="<?php echo $mothername; ?>" size="50" />
    </p>
    <p><span class="style9"><strong>Date Of Birth :</strong></span><strong>  *</strong>
      <input name="age" type="text" value="<?php echo $age; ?>" size="50" />
   </p>
      <p><span class="style9"><strong>Religion :</strong></span><strong>  *</strong>
        <input name="religion" type="text" value="<?php echo $religion; ?>" size="50" />
   </p>
   <p><span class="style9"><strong>Parents Cell No :</strong></span><strong>  *</strong>
     <input name="phoneno" type="text" value="<?php echo $phoneno; ?>"/>
   </p>
   <p><strong>Home Phone No:</strong>
     <input name="phoneno2" type="text" value="<?php echo $phoneno2; ?>" />
   </p>
   <p><span class="style9"><strong>Date Of Join :</strong></span><strong>  *</strong>
     <input id="fullDate" name="dateofjoin" type="text" value="<?php echo $dateofjoin; ?>" size="50" />
   </p>
    <p><span class="style9"><strong>Class :</strong></span><strong>  *</strong>
      <input  name="class" type="text" value="<?php echo $class; ?>" size="50" />
   </p>
    <p><span class="style9"><strong>N.I.C :</strong></span><strong>  *</strong>
      <input name="nic" type="text" value="<?php echo $nic; ?>" size="50" />
   </p>
    <span class="style9"><strong>Branch:</strong></span><strong> *</strong>
    <input name="branch" type="text" value="<?php echo $branch; ?>" size="50">
<span class="style9"><strong>Photo:</strong></span><strong> *</strong>
             <input type="hidden" name="size" value="350000">
            <input type="file" name="photo"> 
    <br/>
   <p class="style1">* required</p>
 <input type="submit" name="submit" value="Submit">
 </div>
 </form> 

phpコード

<?php 
 }


 //This is the directory where images will be saved
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form

$photo=($_FILES['photo']['name']);
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}

 // connect to the database
 include('connect-db.php');



 // check if the form has been submitted. If it has, start to process the form and save it to the database
 if (isset($_POST['submit']))
 { 
 // get form data, making sure it is valid
 $grn = mysql_real_escape_string(htmlspecialchars($_POST['grn']));
 $name = mysql_real_escape_string(htmlspecialchars($_POST['name']));
 $address = mysql_real_escape_string(htmlspecialchars($_POST['address']));
 $branch = mysql_real_escape_string(htmlspecialchars($_POST['branch']));
 $phoneno = mysql_real_escape_string(htmlspecialchars($_POST['phoneno']));
 $phoneno2 = mysql_real_escape_string(htmlspecialchars($_POST['phoneno2']));
 $fathername = mysql_real_escape_string(htmlspecialchars($_POST['fathername']));
 $mothername = mysql_real_escape_string(htmlspecialchars($_POST['mothername']));
 $age = mysql_real_escape_string(htmlspecialchars($_POST['age']));
 $religion = mysql_real_escape_string(htmlspecialchars($_POST['religion']));
 $nic = mysql_real_escape_string(htmlspecialchars($_POST['nic']));
 $class = mysql_real_escape_string(htmlspecialchars($_POST['class']));
 $dateofjoin = mysql_real_escape_string(htmlspecialchars($_POST['dateofjoin']));
 $photo = mysql_real_escape_string(htmlspecialchars($_POST['photo']));

 // check to make sure both fields are entered
 if ($grn == '' || $name == '' || $address == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
 renderForm($grn, $name, $address, $branch, $phoneno, $phoneno2, $fathername, $mothername, $age, $religion, $nic, $class, $dateofjoin,$error);
 }
 else
 {
 // save the data to the database
  mysql_query("INSERT admission SET grn='$grn', name='$name', address='$address', branch='$branch', phoneno='$phoneno', phoneno2='$phoneno2', fathername='$fathername', mothername='$mothername', age='$age', religion='$religion', nic='$nic', class='$class', dateofjoin='$dateofjoin', photo='$photo'")
 or die(mysql_error()); 
 echo "<center>Admission Complete!</center>";
 // once saved, redirect back to the view page

 }
 }
 else
 // if the form hasn't been submitted, display the form
 {
 renderForm('','','','','','','','','','','','','','');
 }




?>
4

2 に答える 2

0

enctype = multipart/form-dataがフォームタグにありません... 設定し$_FILESていない場合、配列は入力されませんenctype。だから使う

<form action="" method="post"> to <form action="" method="post" enctype="multipart/form-data">

フォルダーのアクセス許可と、php.ini の次の設定を確認します。

file_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size

これを使用すると、ファイルの情報にアクセスすることはできませ$_POST$_FILES$_FILES['photo']['name']

修理

交換

$photo = mysql_real_escape_string(htmlspecialchars($_POST['photo']));

$photo = mysql_real_escape_string(htmlspecialchars($_FILES['photo']['name']));
于 2013-04-15T09:09:52.553 に答える