1

在我正在构建的移动网络应用程序中,我一遍又一遍地遇到同样的问题。在我的 index.php 中,如果我的会话中没有设置任何值,我会重定向到 login.php。用户登录后,我重定向回 index.php。我已经通过 PHP 以及通过 JQuery 的 $.mobile.changePage() 方法尝试了标头重定向。

两种方式都会发生什么是首先加载#home的页面划分。当我使用我的导航栏在同一个多页面中更改为新的页面分区时,它会再次加载 login.php。

索引.php

session_start();
require "init.inc"; 
$email = $_SESSION['email'];
if(!isset($email)){header("Location: login.html");}
else{
    echo
    '<!DOCTYPE hmtl>
    <html lang="en">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
            <meta name="apple-mobile-web-app-capable" content="yes">
            <meta name="apple-mobile=web-a-status-bar-style" content="black">

            <!-- link naar icons-->
            <link rel="apple-touch-icon" sizes="114x114" hrf="apple-touch-icon.png"/>

            <title>Loyalty Barcode</title>

            <!-- link naar stylesheet -->
            <link rel="stylesheet" href="css/mobile.css" />
            <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css"/>
            <link rel="stylesheet" href="css/themes/loyalty.css" />

            <!-- link naar de jquery en javascript -->
            <script src="/js/functions.js"></script>
            <script src="/js/Jquery.loadphp.js"></script>
            <script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
            <script src="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.js"></script>
        </head>
        <body>

        <!--/////////////////////////////////// #home (barcode) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\-->
        <div data-role="page" id="home">    
            <!-- header -->
            <header data-role="header" data-theme="a">
                <h1>Loyalty Home</h1>
                <a href="#instellingen" data-role="button" data-mini="true" data-theme="b" data-inline="true" data-iconpos="notext" data-icon="gear" class="ui-btn-right"></a>
            </header>
            <!-- einde header -->

            <article id="barcode">
                <!-- Content -->
                <div class="content">
                    <p>Hier vind u, uw Loyalty barcode. Met deze barcode kunt u de passen die u van winkels heeft gekregen aanmelden.</p>
                    <br/>
                    <img src="images/barcode.png" height="150px" width="200px"/>
                </div>
                <!-- Einde Content -->
                <article id="leeg">
                </article>
                <!-- Footer -->
                <footer data-role="footer">
                    <nav data-role="navbar">
                        <ul>
                            <li><a href="#kortingen-algemeen" data-icon="star" data-theme="b" >Kortingen</a></li>
                            <li><a href="#barcode" class="ui-btn-active ui-btn-persistent" data-icon="home" data-theme="b">Barcode</a></li>
                            <li><a href="#boodschappen-lijstje" data-icon="grid" data-theme="b">Boodschappen</a></li>
                        </ul>
                    </nav>
                </footer>
                <!-- Einde footer -->
            </article>
        </div>
    <!--\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Einde van #home /////////////////////////////////////-->

    <!--/////////////////////////////////// #kortingen-algemeen \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\-->
            <div data-role="page" id="kortingen-algemeen">
            <!-- header -->
            <header data-role="header" data-theme="a">
                <a data-rel="back" data-role="button" data-theme="b" data-inline="true" data-iconpos="notext" data-icon="arrow-l" class="ui-btn-left"></a>
                <h1>Loyalty Kortingen</h1>
                <a href="#instellingen" data-role="button" data-theme="b" data-inline="true" data-iconpos="notext" data-icon="gear" class="ui-btn-right"></a>
            </header>
            <!-- einde header -->
            <article id="kortingen">
            <!-- Content -->
                <div class="content">
                    <div data-role="collapsible-set" data-theme="b" data-content-theme="d" data-inset="true">   

                        <ul data-role="listview" data-split-icon="plus" data-split-theme="c" data-inline="true">
                            <li>
                                <img src="images/ah-logo.png" />
                                <h3>Albert Heijn</h3>
                            </li>
                        </ul>
                        <ul data-role="listview" data-split-icon="plus" data-split-theme="c" data-inline="true">
                            <li>
                                <img src="images/ah-komkommers.jpg" />
                                <h3>Komkommers, 0,39 cent</h3>
                            </li>
                        </ul>
                    </div>
                </div>
            <!-- Einde content -->
                <article id="leeg">
                </article>
            <!-- Footer -->
                <footer data-role="footer">
                    <nav data-role="navbar">
                        <ul>
                            <li><a href="#kortingen-algemeen" class="ui-btn-active ui-btn-persistent" data-icon="grid" data-theme="a">Algemeen</a></li>
                            <li><a href="#kortingen-persoonlijk" data-icon="check" data-theme="a">Persoonlijk</a></li>
                        </ul>
                    </nav>
                </footer>
            </article>
            <!-- Einde footer -->
            </div>
            <!--\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Einde van #kortingen-algemeen /////////////////////////////////////-->

                <!-- ***********************************  #kortingen-persoonlijk ************************************* -->
                <div data-role="page" id="kortingen-persoonlijk">
                    <!-- header -->
                    <header data-role="header" data-theme="b">
                        <a data-rel="back" data-role="button" data-theme="b" data-inline="true" data-iconpos="notext" data-icon="arrow-l" class="ui-btn-left">Terug</a>
                        <h1>Loyalty Kortingen</h1>
                        <a href="#instellingen" data-role="button" data-theme="b" data-inline="true" data-iconpos="notext" data-icon="gear" class="ui-btn-right">Instellingen</a>
                    </header>
                    <!-- einde header -->
                    <article id="kortingen">
                    <!-- Content -->
                        <div class="content">
                        Hier komen de verschillende persoonlijke kortingen te staan.
                        </div>
                    <!-- Einde content -->
                        <article id="leeg">
                        </article>
                    <!-- Footer -->
                        <footer data-role="footer">
                            <nav data-role="navbar">
                                <ul>
                                    <li><a href="#kortingen-algemeen" data-icon="grid" data-theme="a">Algemeen</a></li>
                                    <li><a href="#kortingen-persoonlijk" class="ui-btn-active ui-btn-persistent" data-icon="check" data-theme="a">Persoonlijk</a></li>
                                </ul>
                            </nav>
                        </footer>
                    </article>
                    <!-- Einde footer -->
                </div>
<!--*********************************** Einde #kortingen-persoonlijk *********************************** -->
                           </body>  
   </html>   
?>   

登录.php

session_start();
require "init.inc";

$email=$_POST['email']; 
$wachtwoord=$_POST['wachtwoord']; 

    if (($email&&$wachtwoord) && (isset($_POST['wachtwoord'])))
{
$query = mysql_query("SELECT * FROM user WHERE email='$email'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)//als het aantal rijen niet 0 is
    {
        while($row = mysql_fetch_assoc($query))//zolang er rijen zijn
        {
            $dbid = $row['userId'];
            $dbemail = $row['email']; /
            $dbwachtwoord = $row['wachtwoord']; 
        }

        if ($email==$dbemail&&$wachtwoord==$dbwachtwoord)
        {

                $_SESSION['email']=$dbemail;
                echo'
                    <header><link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css"/></header>
                    <body><script>$.mobile.changePage( "index.php");</script></body>
                ';
                exit;
        }
        else 
        {
            echo"Verkeerd wachtwoord ingevuld. Probeer het opnieuw a.u.b.";
        }   
    }
}
4

1 回答 1

1

您在此处发布的代码存在多个问题。如果我在这里陈述显而易见的事情,请原谅我。

首先,当您提到 login.php 时,您将重定向到 login.html。

改变

if(!isset($email)){header("Location: login.html");} 

if(!isset($email)){header("Location: login.php");}

其次,不要忘记删除 login.php 中的“/”错字:

 $dbemail = $row['email']; /

顺便说一句,最好不要回显您所有的 HTML 布局代码,我看到您在 index.php 中使用它。

最后:你可以使用

header("Location: index.php"); 

在您的登录页面和索引页面之间导航没有任何问题。我已经修改了您的代码,它目前位于以下 URL:单击此处进行演示

供您参考,请在下面找到我的(工作)修改后的 login.php 代码:


登录.php

注意:我添加了一个表单来演示功能

<?php
session_start();
require "init.inc";
if(isset($email)){header( "Location: index.php" ); }
$email=$_POST['email']; 
$wachtwoord=$_POST['wachtwoord']; 

/*****************************************************************************************************
 * 2-11-2012 Shinigami: I'm checking only if the session variable "email" and "wachtwoord" is set,   *
 * I'm not using any database verification at the moment, you should implement that further yourself *
 * Uncommenting the code below should work for you I suppose                                         *
 *****************************************************************************************************/
if (($email&&$wachtwoord))
{



/*
$query = mysql_query("SELECT * FROM user WHERE email='$email'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)//als het aantal rijen niet 0 is
    {
        while($row = mysql_fetch_assoc($query))//zolang er rijen zijn
        {
            $dbid = $row['userId'];
            $dbemail = $row['email']; 
            $dbwachtwoord = $row['wachtwoord']; 
        }

        if ($email==$dbemail&&$wachtwoord==$dbwachtwoord)
        {


    if ($email){ //not neccessary
                */

                /*******************************************************
                * 2-11-2012 Shinigami: This is where the magic happens *
                ********************************************************/
                $_SESSION['email']=$email;
                header( "Location: index.php" );

            /*  

                }
        }
      else 
       {
         echo"Verkeerd wachtwoord ingevuld. Probeer het opnieuw a.u.b.";
       }  */ 
    //}
}

?>
<html>
<head>
<title>Login page</title>
</head>
<body>
<form method="post" action="login.php">
<input type="text" name="email"></input>
<input type="text" name="wachtwoord"></input>
<input type="submit">
</form>
</body>
</html>

于 2012-11-02T18:52:16.270 回答