我正在尝试清除空白并添加一个' @'用户输入要发布到数据库的名称时的字符开头。
我已经有了一个允许用户输入数据并对其进行修改的工作脚本,但我希望包含一个清空空格的脚本和一个' @'在名称前添加。
E.g。如果用户输入' John Whatsmyname' - 它将在表格中以@JohnWhatsmyname发布
我认为这就像添加这样的东西一样简单;
$name = ($_POST['name']);
$name = '@'.str_replace(' ', '', $name);
$name = preg_replace('/\s+/', '', $name);
目前我有以下HTML;
<input type="text" value="<?php echo $user_data['name']; ?>" placeholder="username" name="name"/>
<input type="text" value="<?php echo $user_data['email']; ?>" placeholder="Email" name="email"/>
完整的PHP脚本:
<?php
if (empty($_POST) === false) {
$required_fields = array('name', 'email');
foreach($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = 'Name & email are required';
break 1;
}
}
$name = ($_POST['name']);
$name = '@'.str_replace(' ', '', $name);
$name = preg_replace('/\s+/', '', $name);
<?php
if (isset($_GET['success']) === true && empty($_GET['success']) === true) {
echo 'Your details have been updated!';
} else {
if (empty($_POST) === false && empty($errors) === true) {
$update_data = array(
'info' => $_POST['info'],
'website' => $_POST['website'],
'location' => $_POST['location'],
$name => $_POST['name'],
'email' => $_POST['email'],
);
update_user($session_user_id, $update_data);
header('Location: profile.php?success');
exit();
} else if (empty($errors) === false) {
echo output_errors($errors);
}
}
?>
我认为当我应用更改时,我什么都不做,因此脚本继续并使用原始数据更新表 - 我已经回显$ name变量,我得到错误未定义变量。
脚本需要通过输入&#39; @&#39;来更改名称。在开始并删除所有空格,而不仅仅是在发布到表之前的开头和结尾。试图避免错误消息并有一个脚本来解决问题。
谢谢(Y)
答案 0 :(得分:2)
您没有看到它的效果,因为您完成了处理$name
的所有工作,然后您的$update_data
数组从全局{{{>}中获取了新的副本 1}}数组。相反,您应该将其更改为:
$_POST