Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript阅读HTML中的php会话?_Javascript_Html_Cordova - Fatal编程技术网

如何使用javascript阅读HTML中的php会话?

如何使用javascript阅读HTML中的php会话?,javascript,html,cordova,Javascript,Html,Cordova,首先,我正在使用phonegap/cordova开发一个移动应用程序,所以这就是我希望走这条路的原因 我想知道是否有可能将php中的会话状态转换成javascript,因为我希望将整个应用程序的安全性仅限于用户 我的php如下所示 <?php $dbhost = ''; $dbuser = ''; $dbpass = ''; $db = ''; $tbl_name=""; $conn = mysql_connect($dbhost,$dbuser,$dbpass); mysql_se

首先,我正在使用phonegap/cordova开发一个移动应用程序,所以这就是我希望走这条路的原因

我想知道是否有可能将php中的会话状态转换成javascript,因为我希望将整个应用程序的安全性仅限于用户

我的php如下所示

<?php

$dbhost = '';
$dbuser = '';
$dbpass = '';
$db = '';
$tbl_name=""; 

$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$encrypt_password=md5($mypassword);

$myusername = stripslashes($myusername);
$mypassword = stripslashes($encrypt_password);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($encrypt_password);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

    session_register("myusername");
    session_register("mypassword");
    session_start();
    $_SESSION["Login"] = "YES";
    header("location:login_success.html");
    echo $_SESSION['data'];
}
else {
    session_start();
    $_SESSION["Login"] = "NO";
    echo $_SESSION['data'];
}

?>

html文件包含以下javascript

<script>$.get('checklogin.php', function(data) {
                if (data != "YES"){
                        window.location.replace("http://aam.prettypottery.ie/index.html");
                                    }
        });</script>
$.get('checklogin.php',函数(数据){
如果(数据!=“是”){
window.location.replace(“http://aam.prettypottery.ie/index.html");
}
});
我想我很接近了,只是每次我试图查看我的html页面时,它们都会把我送回index.html


任何帮助都会很好。谢谢

是的,看起来你们很接近了。但反过来说

如果安全对您很重要,您应该考虑以下几点:

  • 浏览器不负责决定用户是否被授权以及页面是否可访问
  • 如果访问保留页面时没有足够的权限(未登录),服务器应重定向
  • $.get('checklogin.php',函数(数据){
    根本不应该在那里,这应该在服务器端完成(在php中)
  • 您的查询
    $sql=“从$tbl\u name中选择*,其中…
    仍然易受攻击,至少使用
  • 密码用
    MD5
    散列(未加密),这对您的站点可能足够了,但通常使用盐渍和更强的散列(至少)
  • 不要只测试结果计数,而是从数据库中实际获取一些信息,并使用这些信息进行身份验证
大概是这样的:

SELECT username FROM accounts WHERE ...
这是:

$authenticated = strcasecmp($username, $resulting_username) === 0;
要立即解决您的问题,您必须在PHP中至少呈现一个告诉Javascript代码重定向的变量

在HTML/PHP中:

<script>
  if (<?php echo ($authenticated ? 'true' : 'false'); ?>)
  {
    alert("Good boy!");
  } else {
    alert("Bad Trudy is bad!");
  }
</script>

如果()
{
警惕(“好孩子!”);
}否则{
警惕(“坏特鲁迪是坏的!”);
}
生成此HTML结果:

<script>
  if (true)
  {
    alert("Good boy!");
  } else {
    alert("Bad Trudy is bad!");
  }
</script>

如果(真)
{
警惕(“好孩子!”);
}否则{
警惕(“坏特鲁迪是坏的!”);
}
停用Javascript就足够了,页面将不会对该代码做出任何反应,并且不会受到任何阻碍地显示其内容

链接:


正如pid所提到的,这不是一种非常安全的技术。例如,我可以简单地关闭javascript,或者运行自己的脚本来绕过您的脚本。这是客户端验证。永远不要相信客户端。我肯定会更深入地研究安全问题,但就目前而言,使用Phonegap,您会建议我如何保护m在用户注册/登录后,是否只允许用户使用PHP页面?我添加了一些关于如何在JS代码中呈现PHP变量的更多说明,以便您可以在客户端做出反应。尽管如此,这还是让小狗们哭喊:)干杯。在考虑了小狗之后,你觉得HTTP头怎么样?我正在尝试阅读它们作为替代方案,但当然,它似乎不太直截了当。在你看来,我是走对了方向还是浪费了时间?再次感谢你的意思是当服务器看到你没有通过身份验证时,它会将你重定向到服务器登录?当然!没错。