php - PHP mysqli 新用户不接受特殊字符
问题描述
我使用 mysqli 在 PHP 中编写了一个登录系统。但它不知何故不想使用使用特殊字符的用户名帐户,例如:'!用户名!' . 一旦我删除!'s,如“用户名”,登录再次完美。我怎样才能允许特殊字符登录,如!,@,。ETC。?
这是我的脚本
配置文件
<?php
ob_start();
session_start();
//set timezone
date_default_timezone_set('Europe/London');
//database credentials
define('DBHOST','XXXX');
define('DBUSER','XXXX');
define('DBPASS','XXXX');
define('DBNAME','XXXX');
//application address
define('DIR','XXXX');
define('SITEEMAIL','XXXX');
try {
//create PDO connection
$db = new PDO("mysql:host=".DBHOST.";charset=utf8mb4;dbname=".DBNAME, DBUSER, DBPASS);
//$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);//Suggested to uncomment on production websites
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Suggested to comment on production websites
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $e) {
//show error
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
include('classes/phpmailer/mail.php');
$user = new User($db);
?>
实际登录脚本:
<?php
//include config
require_once('includes/config.php');
//check if already logged in move to home page
if( $user->is_logged_in() ){ header('Location: index.php'); exit(); }
//process login form if submitted
if(isset($_POST['submit'])){
if (!isset($_POST['username'])) $error[] = "Please fill out all fields";
if (!isset($_POST['password'])) $error[] = "Please fill out all fields";
$username = $_POST['username'];
if (!isset($_POST['password'])){
$error[] = 'A password must be entered';
}
$password = $_POST['password'];
if($user->login($username,$password)){
$_SESSION['username'] = $username;
header('Location: memberpage.php');
exit;
} else {
$error[] = 'Wrong username or password or your account has not been activated.';
}
}
$title = 'Login';
require('layout/header.php');
?>
解决方案
推荐阅读
- wpf - WPF:组合框项目显示在列中
- drupal-7 - CKeditor 图片不显示
- mysql - 从 NiFi 中的 QueryDatabaseTable 获取数据
- python - 从两个列表快速创建对角矩阵
- c# - 通过 Javascript 执行器清除文本值并且操作不起作用!- Selenium
- javascript - 使用 javascript 将选中的 Chechbox 保存到 sqlite 数据库中
- excel - 如何在关键字 Excel 之后将文本组织成行
- regex - 正则表达式删除 URL 中的端口号
- python - python中`itertools.combinations`的计算复杂度是多少?
- java - 如何在现有的和按钮之间添加额外的 LinearLayout?