2013-04-28 3 views
-3

안녕하세요 여러분 모두 제 코드를 PHP에서 확인하시기 바랍니다. 문제가있을 때마다 그림을 포함하여 데이터베이스 레코드를 업데이트해야합니다. 업데이트 할 때마다 그림을 다시 볼 필요가 있습니다. 그렇지 않으면 오래된 그림과 공백을 덮어 씁니다. 그림에 대한 옵션이 필요합니다. 우리가 업데이트 할 때, 우리는 그림을 업데이트 할 필요가 없다면 여전히 오래된 이미지를 저장하고 싶습니다.이미지 첨부 파일로 데이터베이스 레코드 업데이트

여기 내 코드입니다 :

지금까지 내가 질문을 이해
if(isset($_POST["save"])){ 
$sid = $_POST['sid']; 
$fname = $_POST['fname']; 
$lname = $_POST['lname']; 
$sex = $_POST['sex']; 
$nationality = $_POST['nationality']; 
$photo = $_FILES['photo']['tmp_name']; 
$dept = $_POST['dept']; 
$position = $_POST['position']; 
$date = $_POST['date']; 
$status = $_POST['status']; 
$efile = $_POST['efile']; 

if(!isset($photo)) 
    echo "Please select the photo"; 
    else 
    { 
    $photo=addslashes(file_get_contents($_FILES['photo']['tmp_name'])); 
    $photo_name = addslashes($_FILES['photo']['name']); 
    $photo_size = getimagesize($_FILES['photo']['tmp_name']); 
    if ($photo_size==FALSE) 
    echo "that's not an image."; 
} 

$updateSQL = "UPDATE staff SET sid='$sid', fname='$fname', lname='$lname', sex='$sex', nationality='$nationality', photo='$photo', dept='$dept', position='$position', date='$date', status='$status', efile='$efile' WHERE sid='$_POST[hidden]'"; 
+2

코드가 광범위하게 (완전히) SQL injection을 위해 열려 있습니다. http://bobby-tables.com/ 참조하십시오. –

답변

1

, 당신은 이전 이미지뿐만 아니라 새로운 이미지를 유지하려는

. 그렇다면 이미지 이름의 접두어로 고유 번호를 추가하는 것이 어떻습니까? 고유 ID를 생성하는 함수 uniqid을 사용하십시오.

예 : 데이터베이스와 이미지 업로드에 대한

다음
$file_name = uniqid().$_FILES['photo']['tmp_name']; 

저장 $ file_name을.

또한 코드가 SQL 삽입에 취약하다는 점도 기억하십시오.

+0

아니요, 하나의 이미지 만 사용하고 싶습니다. 예 : 직원 기록을 입력하고 직원 이름을 입력하십시오. 잘못되었으므로 이름을 다시 변경하고 싶지만 이미지를 다시 업로드하지 않고 이전과 동일한 이미지를 유지해야합니다. –

+0

얼굴에 나는 프로그램의 전문가가 아니며, 나는 네트워킹입니다. 이것에 대해 친절하게 제발. –

+0

데이터베이스를 변경하기 전에 유효성 검사를 추가 할 수 있습니다. 데이터가 올바른지 확인한 다음 데이터베이스 작업을 수행하십시오. – Techie

관련 문제