회원들이 정보를 업데이트 할 수 있도록 사용자 설정 페이지를 만들고 있습니다. 그러나 오류가 생성되지 않고 성공 페이지가 표시 되더라도 변경된 정보 표시는 데이터베이스에서 업데이트되지 않습니다. 내가 배열을 반향 시도하고 새로운 데이터 중 하나를 구문 분석하지 의미가 비어있는 것으로 보입니다. 양식에서 데이터를 저장하지 않는 배열
<?php
include ("storescripts/init.php");
protect_page();
if (empty($_POST) === false) {
$required_fields = array('mem_email','mem_first_name','mem_last_name');
foreach ($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) == true) {
$errors[] = 'Fields marked with an asterisk are required';
break 1;
}
}
if (empty($errors) === true) {
if (filter_var($_POST['mem_email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'A valid email address is required';
} else if(user_exists($_POST['mem_email']) === 1 && $member_data['mem_email'] !== $_POST['mem_email']) {
$errors[] = 'Sorry, the email \'' . htmlentities($_POST['mem_email']) . '\' is already in use';
}
}
}
if (empty($_POST) === false && empty($errors) === true) {
$update_data = array(
'mem_first_name' => $_POST['mem_first_name'],
'mem_last_name' => $_POST['mem_last_name'],
'mem_email' => $_POST['mem_email'],
'allow_email' => ($_POST['allow_email']) ? 1 : 0);
update_user($session_member_id, $update_data);
header('Location: settings.php?success=1');
die();
}
include ("includes/overall/head.php");
?>
<?php include ("includes/overall/template_header.php");?>
<div id="mainDivShort">
<h1>User Settings</h1>
<div id="divBreak"></div>
<?php include ("includes/overall/column_left.php");?>
<div id="middleContent">
<?php if (isset($_GET['success']) && isset($_GET['success'])) {
echo 'Your details have been updated';
} else {
if (empty($errors) === false) {
echo output_errors($errors);
}?>
<form action="" method="post">
<ul>
<li>First Name*: <br> <input type="text" name="mem_first_name"
value="<?php echo $member_data['mem_first_name'];?>">
</li>
<li>Last Name*: <br> <input type="text" name="mem_last_name"
value="<?php echo $member_data['mem_last_name'];?>">
</li>
<li>Email*: <br> <input type="text" name="mem_email"
value="<?php echo $member_data['mem_email'];? >">
</li>
<li>
<input type="checkbox" name="allow_email" <? php if ($member_data['allow_email'] == 1) { echo 'checked="checked"'; } ?>> Would you like to receive an email about news and promotions?
</li>
<li><input type="submit" value="Update">
</li>
</ul>
</form>
<?php }?>
</div>
<?php include ("includes/overall/column_right.php");?>
</div>
<?php include ("includes/overall/template_footer.php");?>
그리고 내 update_user 기능
function update_user($mem_id, $update_data) {
$update = array();
array_walk($update_data, 'array_sanitize');
foreach ($update_data as $field=>$data) {
$update[] = '`' . $field . '` = \'' . $data . '\'';
}
mysql_query("UPDATE `members` SET " . implode(', ', $update) . " WHERE `mem_id`= $mem_id");
}
이 있으면 DB에서이 $의 SQL 출력이 확인이
화재 시도 울리고 있니? –
배열은 라인 22의 $ update_data입니다 – jhetheringt7