2

本主题是本篇PHP+Session第一次登陆不上的后续。

我已经通过将代码更改为所有内容的顶部来解决我的 Cookies/Sessions 问题,之前<html>,之前我是在标记之后编写我的 php 代码</html>

通过此更改,我丢失了 javascript 插件 ( http://fabien-d.github.io/alertify.js/ ) 的输出。

简单的例子:

if(Cookie::Exists('page-main-login-cookie')){
    echo "<script type='text/javascript'>page_add_success('OK')</script>";
}

这不再有效,我明白为什么,因为 javascript 文件位于 之后<html>,而我之前调用了该函数。

<script src="js/alertify/js/alertify.min.js"></script>
<script type="text/javascript">
    function page_add_success(msg){
        alertify.success(msg);
    }
</script>

我在 stackoverflow 上找到了一些关于在 php.ini 中调用函数之前包含正确脚本的主题。就像是:

<?php 
    echo "<script src='js/jquery-1.9.1.min.js'></script>";
    echo "<script src='js/jquery.mobile-1.3.2.min.js'></script>";
    echo "<script src='js/alertify/js/alertify.min.js'></script>";
?>

所以,最后,我的文件的顶部是:

include('headscript.php');

if(Cookie::Exists('page-main-login-cookie')){
    echo "<script type='text/javascript'>page_add_success('OK')</script>";
}
<html>
    <head>
    <script type="text/javascript">
        function page_add_success(msg){
            alertify.success(msg);
        }
    </script>
    </head>
</html>

但是该功能继续在 PHP 的下方..并且不起作用。有任何想法吗?谢谢。

4

4 回答 4

1

I guess this helps,

instead of echoing it in php, pass it to a variable and use after the header.

eg:

  <?php 
   if(Cookie::Exists('page-main-login-cookie')){
    $page= "<script type='text/javascript'>page_add_success('OK')</script>";
        }
  ?>

and then echo it after the header using,

   <?php echo $page; ?>
于 2013-12-13T12:51:49.760 回答
0

首先,您不能在 html 标签之前使用 HTML 标签。IE。您必须在 html 标记内回显脚本标记,最好在头部内回显。

此外,对 html 属性使用单引号 (') 也是一种不好的做法。首选双引号 (") 作为标准。

尝试这个:

<html>
    <head>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="js/jquery.mobile-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/alertify/js/alertify.min.js"></script>
    <script type="text/javascript">
        function page_add_success(msg) {
            alertify.success(msg);
        }
    </script>

    <?php
        if(Cookie::Exists('page-main-login-cookie')) {
            echo "<script type=\"text/javascript\">page_add_success('OK');</script>";
        }
    ?>
    </head>
    ....

您可以随时使用 jQuery.cookie ( http://plugins.jquery.com/cookie/ ) 插件在页面加载时读取 javascript 中的 cookie,完全避免使用 php。

<html>
    <head>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="js/jquery.mobile-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/alertify/js/alertify.min.js"></script>
    <script type="text/javascript" src="/path/to/jquery.cookie.js"></script>
    <script type="text/javascript">
        function page_add_success(msg) {
            alertify.success(msg);
        }

        $(document).ready(
            function() {
                if($.cookie('page-main-login-cookie')) {
                    page_add_success('OK');
                }
            }
        );
    </script>

    </head>
    ....
于 2013-12-13T13:03:09.170 回答
0

这应该有帮助

不要使用这个:

include('headscript.php');

if(Cookie::Exists('page-main-login-cookie')){
    echo "<script type='text/javascript'>page_add_success('OK')</script>";
}
<html>
    <head>
    <script type="text/javascript">
        function page_add_success(msg){
            alertify.success(msg);
        }
    </script>
    </head>
 </html>

但尝试使用这个:

include('headscript.php');

<html>
    <head>
    <?php
    if(Cookie::Exists('page-main-login-cookie')){
        echo "<script type='text/javascript'>page_add_success('OK')</script>";
    }
    ?>
    <script type="text/javascript">
        function page_add_success(msg){
            alertify.success(msg);
        }
    </script>
    </head>
 </html>
于 2013-12-13T13:03:14.613 回答
0

Try this code

    <html>
    <head>
    <?php include('headscript.php');?>

    <script type="text/javascript">
    function page_add_success(msg){
        alertify.success(msg);
    }

    <?php
    if(Cookie::Exists('page-main-login-cookie')){
        echo "<script type='text/javascript'>page_add_success('OK')</script>";
    }?>

</script>
</head>
</html>
于 2013-12-13T12:58:29.067 回答