php从session取数据乱码 php – 从$_SESSION获取数据

编程之家收集整理的这篇文章主要介绍了php从session取数据乱码 php – 从$_SESSION获取数据编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP从session取数据乱码 PHP – 从$_SESSION获取数据 怎么解决

我正在尝试创建简单的服务器端验证,这是我的方法

public function create() {
$name = $_POST['name'];
session_start();
unset($_SESSION['errors']);
$count = $this->model->checkIfUserExists($name);
if($count > 0) {
$_SESSION['errors'] = array(
'message' => 'User Already Exists',
'variables' => array(
'name' => $_POST['name'],
'password' => $_POST['password'],
),
);
header('location: ' . URL . 'user/registration');
exit;
}
$data = array();
$data['name'] = $_POST['name'];
$data['password'] = $_POST['password'];
$this->model->create($data);
header('location: ' . URL);
}

以及来自registration.PHP代码

if (isset($_SESSION['errors']) && count($_SESSION['errors']) > 0) {
echo '
';
foreach ($_SESSION['errors'] as $error) {
echo '
' . $error['message'] . '';
}
echo '
';
unset($_SESSION['errors']);
}
?>

但我得到了错误

Warning: Illegal string offset 'message' in C:\xampp\htdocs\test\views\user\registration.PHP on line 6
�
Notice: Undefined index: message in C:\xampp\htdocs\test\views\user\registration.PHP on line 6

解决方法:

通常,警告:非法字符串偏移…表示您尝试以字符串形式访问字符串.

目前,您将$_SESSION [‘errors’]设置为具有两个元素(消息和变量)的关联数组.我相信你想要实现的是创建一个包含多个错误的数组,每个错误都有一个消息和变量.

像这样设置应该做:

$_SESSION['errors'] = array();
if ($count > 0) {
$_SESSION['errors'][] = array(
'message' = > 'User Already Exists',
'variables' = > array(
'name' = > $_POST['name'],
'password' = > $_POST['password'],
),
);
header('location: '.URL.'user/registration');
exit;
}

空方括号向数组添加一个新元素:

$myArray[] = $myNewElement;

这样,您可以轻松地向列表中添加其他错误

$_SESSION['errors'][] = array(
'message' = > 'Error two',
'variables' = > array(...),
);
$_SESSION['errors'][] = array(
'message' = > 'Error three',
'variables' = > array(...),
);

总结

以上是编程之家为你收集整理的php从session取数据乱码 php – 从$_SESSION获取数据全部内容,希望文章能够帮你解决php从session取数据乱码 php – 从$_SESSION获取数据所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206

相关文章

猜你在找的PHP相关文章

这篇文章主要为大家详细介绍了PHP实现倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值。
php从session取数据乱码 php – 从$_SESSION获取数据 怎么解决?我正在尝试创建简单的服务器端验证,这是我的方法public function create() {
nginx 默认是不支持 PATHINFO 模式的,需要修改下 nginx 的配置文件。server { listen 80; root /var/www/html; index index.html index.htm index.php; server_name _; location / { try_files $...
1.headerheader("Content-Type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=sample.xls");
队列是一种线性表,按照先进先出的原则进行的:PHP实现队列:第一个元素作为队头,最后一个元素作为队尾/** * 队列就是这么简单 * * @link */$array =  array('PHP', 'JAVA');array_push($array, 'PYTHON'); //入队列array_shift($array); //出队列什么是双端队列(或双向队列)
javascript实现:top.location.href 顶级窗口的地址this.location.href 当前窗口的地址PHP实现#测试网址: http://localhost/blog/testurl.php?id=5//获取域名或主机地址 echo $_SERVER['HTTP_HOST'].""; #localhost
PHP 魔术变量PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:__LINE__
1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo ""; echo date('Y-m-t', strtotime('-1 month')); echo "";2.获取当月第一天及最后一天. $BeginDate=date('Y-m-01', strtotime(date("Y-m-d