현재 내 사이트의 사용자 프로필에 대한 업데이트 페이지를 만들고 있습니다. 아래의 코드는 사용자가 모든 정보를 업데이트하면 잘 작동하지만 필드를 생략하면 빈 레코드가 테이블에 삽입됩니다.sql에서 업데이트 양식의 빈 필드 또는 빈 필드를 업데이트하지 못하도록하십시오.
현재 사용자가 필드를 비워두면이 문제를 해결하기 위해 빈 필드를 $_SESSION['user']['field']
으로 바꿉니다. 그러면 현재 데이터 만 다시 삽입됩니다. 여기
<?php
session_start();
if($_SESSION['uname']) {
$logged_in=true;
} else {
$logged_in=false;
}
include_once("../connection/conn.php");
if(isset($_POST['update'])) {
if($_POST['firstname']){ $firstname = $_POST['firstname']; }
else { $firstname = $_SESSION['uname']['firstname']; }
if($_POST['lastname']){ $lastname = $_POST['lastname']; }
else { $lastname = $_SESSION['uname']['lastname']; }
if($_POST['email']){ $email= $_POST['email']; }
else { $email = $_SESSION['uname']['email']; }
$id = $_SESSION['uname']['id'];
$query = "UPDATE users SET firstname=?, lastname=?, email=? WHERE id=? ";
$results = $condb->prepare($query);
$results->execute(array($firstname, $lastname,$email,$id));
if($results) {
echo "updated";
}
}
?>
당신은 현장 검증을주고있다
양식을 보내기 전에 자바 스크립트가있는 공백을 확인할 수 없습니까? – Peon
정확히 작동하지 않는 것은 무엇입니까? 당신이 일하는 해결책을 제시 한 것처럼 보입니다. 아니면 그렇습니까? 언제 작동하지 않습니까? –
@DainisAbols Javascript를 비활성화하거나 건너 뛸 수 있습니다. 요청이 curl과 같은 도구에서 나온 경우 스크립트를 실행하기위한 자바 스크립트 엔진이 없습니다. 서버 측의 유효성을 확인하기 위해서는 클라이언트 측 유효성 검사를 제출 된 데이터의 유효성을 보장 할 수있는 시스템이 아니라 유용성 지원으로 간주해야합니다. – GordonM