ユーザーがデータベースに投稿する名前を入力したときに、空白をクリアして最初に「@」文字を追加しようとしています。
ユーザーがデータを入力して変更できるようにするための実用的なスクリプトがすでにありますが、空白がクリアされ、名前の前に「@」が追加されるスクリプトを含めたいと思います。
たとえば、ユーザーが「JohnWhatsmyname」と入力した場合-テーブルに@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変数をエコーしたところ、未定義の変数のエラーが発生しました。
スクリプトは、先頭に「@」を付けて名前を変更する必要があり、テーブルに投稿する前に、先頭と末尾だけでなくすべての空白を削除します。エラーメッセージを回避し、問題を修正するためのスクリプトを用意しようとしています。
ありがとう(Y)
処理するすべての作業を行うため、それが機能することはわかりません。$name
その後、$update_data
配列が移動し、グローバル配列から新しいコピーをプルします$_POST
。代わりに、次のように変更する必要があります。
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
if (empty($name))
{
die('No name provided');
}
// Format name
$name = '@'.str_replace(' ', '', $name);
$update_data = array(
'info' => $_POST['info'],
'website' => $_POST['website'],
'location' => $_POST['location'],
'name' => $name,
'email' => $_POST['email'],
);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加