Isset / empty PHP session (if else语句)给出未定义的索引
isset / empty php session (if else statement) gives undefined index
我一直想创建一个javascript函数来改变PHP会话的onclick。改变会话只是在一定程度上起作用。当我使用isset输入if else语句时,它给出了第二个条件块(else)的未定义索引的错误。到处都找遍了,但没有找到任何线索。一定要帮帮我。谢谢!这是我的代码。
Javascriptfunction changeLangToSpanish(){
var lang = "spanish";
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// Reload the page
window.location.reload();
}
}
xmlhttp.open("POST","set_session.php?lang=" + lang,true);
xmlhttp.send();
}
function changeLangToEng(){
var lang = "english";
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// Reload the page
window.location.reload();
}
}
xmlhttp.open("POST","set_session.php?lang=" + lang,true);
xmlhttp.send();
}
PHP (set_session.php) <?php
if(!isset($_SESSION)){
session_start();
}
if(!isset($_SESSION['lang'])){
$_SESSION['lang'] = "english";
}
else if(isset($_SESSION['lang'])){
$_SESSION['lang'] = $_REQUEST['lang'];
}
?>
HTML(用于测试)
<html>
<head>
<?php
include "header.php";
include "set_session.php";
?>
</head>
<body>
<button id = "lol" onclick = "changeLangToSpanish()">lol</button>
<button id = "lol" onclick = "changeLangToEng()">loll</button>
<span id = "lols"></span>
<?php
if(isset($_SESSION['lang'])){
echo '<script>
document.getElementById("lols").innerHTML = "'.$_SESSION["lang"].'";
</script>';
}
?>
</body>
</html>
基本上有一个HTML在span中显示会话。改变会话是通过点击2个按钮引起的,其中左键将会话设置为"西班牙语",右键将会话设置为"英语"。可以看到,由于会话的初始化,span显示"english",但是当我单击其中任何一个按钮时,会弹出一个未定义的索引错误,表明(else)代码块中存在错误。使用empty代替isset也不能解决这个问题。而且我无法在疗程之间切换。希望我能找到解决办法。谢谢!
似乎有一个潜在的错误
else if(isset($_SESSION['lang'])){
$_SESSION['lang'] = $_REQUEST['lang'];
特别是,这段代码没有检查$_REQUEST['lang']是否实际设置。也许你的意思是检查,而不是检查$_SESSION['lang'](其值被覆盖在这里)?
相关文章:
- 传递给 PHP 表单时 JavaScript 动态变量上的未定义索引
- angular.js:13424 ReferenceError:在控制器中使用工厂方法时未定义索引
- 如何删除cookie错误注意:PHP上的未定义索引
- 某些浏览器中cookie的未定义索引
- 以 $_POST 为单位的未定义索引,具有多项选择
- 带有PHP(未定义索引)的Youtube API V3 GET横幅图像
- Firebase 未定义索引
- 未定义索引:通过AJAX传递的PHP变量
- 如何摆脱下面的未定义索引
- ExtJS-组合框中记录的未定义索引
- PHP未定义索引的文件上载问题
- jquery ajax请求中出现未定义索引错误
- 获取'未定义索引'错误'与上面的'字段
- PHP -注意:未定义索引:不显示数据
- 当尝试将值从Jquery传递到PHP时,未定义索引名称
- AJAX调用成功,但抛出未定义索引错误
- Php mysql未定义索引错误使用jquery从一个页面传输数据到另一个页面
- Json解码未定义索引
- Json_decode未定义索引,但值在那里
- php和ajax的未定义索引