2017-08-21 11 views
0

フォームを送信して画像を選択しないと、データベースが空白に更新されます。 PHPの知識はあなたがどここの間違った新しい画像がない場合、データベースに古い画像が保存される更新日phy

は、ユーザーが画像を選択しない場合、私はしたいですし、古い画像は私がしようと空白

に代わるものではありませんそれを得た願っていますここに私の完全なPHPコードがある

あなたの助けが必要私のコードはまだ空白になった!

<?php 
include("connect.php"); 
    if(isset($_POST['submit'])) 
    { 
     $id = $_POST['id']; 
     $form_no = $_POST['form_no']; 
     $shop_name = $_POST['shop_name']; 
     $shop_address = $_POST['shop_address']; 
     $owner_name = $_POST['owner_name']; 
     $owner_address = $_POST['owner_address']; 
     $phone = $_POST['phone']; 
     $m_no = $_POST['m_no']; 
     $email = $_POST['email']; 
     $d_o_b = $_POST['d_o_b']; 
     $d_o_m = $_POST['d_o_m']; 
     $b_type = $_POST['b_type']; 
     $reg_no = $_POST['reg_no']; 
     $coment = $_POST['coment']; 
     $date = date('y-m-d'); 
     $errors = ""; 
     $plan = $_POST['select']; 
     $oldpic=$_POST["oldpic"]; 
     if($_FILES['image']['name'] != "" && $errors == "") 
     { 
      $file_name = $_FILES['image']['name']; 
      $file_size = $_FILES['image']['size']; 
      $file_tmp = $_FILES['image']['tmp_name']; 
      $file_type = $_FILES['image']['type']; 
      $file_ext=strtolower(end(explode('.',$file_name))); 
      $expensions= array("jpeg","jpg","png"); 
      if(!in_array($file_ext,$expensions)) 
      { 
       $errors="extension not allowed, please choose a JPEG or PNG file."; 
      } 

      if($file_size > 2097152) 
      { 
       $errors ='File size must be excately 2 MB'; 
      } 
      if(empty($errors)) 
      { 
       $new_file_name = uniqid().'.'.$file_ext; 
       move_uploaded_file($file_tmp,"user/".$new_file_name); 
      } 
     } 

     if(empty($errors)) 
     { 
      $qreury = "UPDATE members SET 
      ref_no='$ref_no',shop_name='$shop_name', form_no='$form_no', 
      shop_address='$shop_address', owner_name='$owner_name', 
      owner_address='$owner_address', tel_no='$phone', mobile_no='$m_no', 
      email='$email',dob='$d_o_b',marrige_date='$d_o_m',bussiness_type='$b_type', 
      reg_no='$reg_no',extra_note='$coment',user_pic='$new_file_name', 
      plan='$plan',target=(select price from members_plan where id ='$plan') WHERE id='$id'"; 
      $reslt = mysql_query($qreury)or die(mysql_error()); 
      header("location:registered_members.php"); 

     } 
    elseif(empty($oldpic)) 
     { 
      $qreury = "UPDATE members SET 
      ref_no='$ref_no',shop_name='$shop_name', form_no='$form_no', 
      shop_address='$shop_address', owner_name='$owner_name', 
      owner_address='$owner_address', tel_no='$phone', mobile_no='$m_no', 
      email='$email',dob='$d_o_b',marrige_date='$d_o_m',bussiness_type='$b_type', 
      reg_no='$reg_no',extra_note='$coment',user_pic='$oldpic', 
      plan='$plan',target=(select price from members_plan where id ='$plan') WHERE id='$id'"; 
      $reslt = mysql_query($qreury)or die(mysql_error()); 
      header("location:registered_members.php"); 
     } 
    } 
?> 
+2

1. **廃止され、安全でない** mysql_ *関数。 PHP 5.5以降(2013年)は廃止され、PHP 7(2015年)では完全に削除されました。代わりにMySQLiまたはPDOを使用してください。 ** [あなたは[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)**を広く読んでいます**そして、実際には[Prepared Statements](http: /php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。これは上記のMySQLiまたはPDOを使用する場合に使用できます。 –

+0

@MagnusErikssonご返信ありがとうございます。私は完全なコードを更新します! –

+0

さらに進む前に、MysqliまたはPDOとPrepared Statementsを使用してコードをリファクタリングする必要があります。とにかく書き直す必要がある、安全でない日付のコードを意図的に修正するのは時間の無駄です。 –

答えて

-2
 { 
if(empty($_FILES)) { 
$error="Please select a photo to continue"; 
break; 
} 
    $reg_no = $_POST['reg_no']; 
     $coment = $_POST['coment']; 
     $date = date('y-m-d'); 
     $errors = ""; 
     $plan = $_POST['select']; 
     $oldpic=$_POST["oldpic"]; 
     if($_FILES['image']['name'] != "" && $errors == "") 
     { 
      $file_name = $_FILES['image']['name']; 
      $file_size = $_FILES['image']['size']; 
      $file_tmp = $_FILES['image']['tmp_name']; 
      $file_type = $_FILES['image']['type']; 
      $file_ext=strtolower(end(explode('.',$file_name))); 
      $expensions= array("jpeg","jpg","png"); 
      if(!in_array($file_ext,$expensions)) 
      { 
       $errors="extension not allowed, please choose a JPEG or PNG file."; 
      } 

      if($file_size > 2097152) 
      { 
       $errors ='File size must be excately 2 MB'; 
      } 
      if(empty($errors)) 
      { 
       $new_file_name = uniqid().'.'.$file_ext; 
       move_uploaded_file($file_tmp,"user/".$new_file_name); 
      } 
     } 

     if(empty($errors)) 
     { 
      $qreury = "UPDATE members SET 
      ref_no='$ref_no',shop_name='$shop_name', form_no='$form_no', 
      shop_address='$shop_address', owner_name='$owner_name', 
      owner_address='$owner_address', tel_no='$phone', mobile_no='$m_no', 
      email='$email',dob='$d_o_b',marrige_date='$d_o_m',bussiness_type='$b_type', 
      reg_no='$reg_no',extra_note='$coment',user_pic='$new_file_name', 
      plan='$plan',target=(select price from members_plan where id ='$plan') WHERE id='$id'"; 
      $reslt = mysql_query($qreury)or die(mysql_error()); 
      header("location:registered_members.php"); 

      } 
     elseif(empty($oldpic)) 
      { 
       $qreury = "UPDATE members SET 
       ref_no='$ref_no',shop_name='$shop_name', form_no='$form_no', 
       shop_address='$shop_address', owner_name='$owner_name', 
       owner_address='$owner_address', tel_no='$phone', mobile_no='$m_no', 
       email='$email',dob='$d_o_b',marrige_date='$d_o_m',bussiness_type='$b_type', 
       reg_no='$reg_no',extra_note='$coment',user_pic='$oldpic', 
       plan='$plan',target=(select price from members_plan where id ='$plan') WHERE id='$id'"; 
       $reslt = mysql_query($qreury)or die(mysql_error()); 
       header("location:registered_members.php"); 
      } 
     } 

     }while(0); 

が、それは私があなたの問題を理解

+2

良い答えには_explanation_が含まれています。 OPがあなたのコードを使用する理由は何ですか?あなたは何を変えましたか?どのように問題を解決するのですか? OPと将来のすべての来場者には、推測させてはいけません。 –

+1

また、コードを確認する必要があります。これをコピー/貼り付けするだけでエラーが発生します。 Btw、 'while(0)'とは何ですか? –

+0

@Shahid Muneerあなたのコードを強制的にユーザがイメージを選択している間にイメージを選択したい場合は古いイメージを保存して保存するようにしてください –

0

動作する鉱山で、あなたのコードを置き換え、あなたのコードは何をやってんさせてください。あなたがヌルを保管していても、心配しないでください。ヌルを保存してファイルシステムにavtarのデフォルトイメージを置くと、画像を取得して次のことができます。

<img src=" 
<?php !empty($your-image-with-directory)?$your-image-with-directory:"upload-directory/avtar.png"?>" width="100"> 
関連する問題