2

我正在尝试创建一个移动站点,并且正在使用会话来获取用户名。当我在桌面上查看移动网站时,它工作正常,我可以从一个页面到另一个页面获取用户的用户名。但是当我在移动浏览器上查看同一个站点时,会话不会从一个页面转移到另一个页面。

这是我的登录页面:

<?php
//allow sessions to be passed so we can see if the user is logged in
session_start();

ob_start();

//connect to the database so we can check, edit, or insert data to our users table
$con = mysql_connect(***info to connect to database) or die(mysql_error());
$db = mysql_select_db('dbname', $con) or die(mysql_error());

//include out functions file giving us access to the protect() function made earlier
include "./functions.php";

$userid = $_SESSION['uid'];
$lookupusername = mysql_query("SELECT * FROM users WHERE ID='$userid'");
$row = mysql_fetch_assoc($lookupusername);
$username = $row['username'];
$usercountry = $row['country'];


?>

<!DOCTYPE html> 
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>15:11 Project Mobile</title>

<link rel="stylesheet" href="css/jquery.mobile-1.3.0.css" />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jquery.mobile-1.3.0.js"></script>
</head> 
<body> 





<!-- BEGIN LOGIN PAGE -->

<div data-role="page" id="login" style="background: #c66200;">

    <div data-role="header">
    </div>
    <div data-role="content">

                <center>

        <div class="ui-grid-b">
                <img src="images/logo_white.png">
        </div>
                </center>

        <?

        //check if the login session does no exist
        if(strcmp($_SESSION['uid'],'') == 1){
            //if it doesn't display an error message
            header('Location: feed.php');
        }

else {


        //If the user has submitted the form
        if($_POST['submit']){
            //protect the posted value then store them to variables
            $username = protect($_POST['username']);
                        $thepassword = md5($_POST['password']);
            $password = protect($thepassword);

            //Check if the username or password boxes were not filled in
            if(!$username || !$password){
                //if not display an error message
                echo "<center>You need to fill in a <b>Username</b> and a <b>Password</b>!</center>";
            }else{
                //if the were continue checking

                //select all rows from the table where the username matches the one entered by the user
                $res = mysql_query("SELECT * FROM `users` WHERE `username` = '".$username."'");
                $num = mysql_num_rows($res);

                //check if there was not a match
                if($num == 0){
                    //if not display an error message
                    echo "<center>The <b>Username</b> you supplied does not exist!</center>";
                }else{
                    //if there was a match continue checking

                    //select all rows where the username and password match the ones submitted by the user
                    $res = mysql_query("SELECT * FROM `users` WHERE `username` = '".$username."' AND `password` = '".$password."'");
                    $num = mysql_num_rows($res);

                    //check if there was not a match
                    if($num == 0){
                        //if not display error message
                        echo "<center>The <b>Password</b> you supplied does not match the one for that username!</center>";
                    }else{
                        //if there was continue checking

                        //split all fields fom the correct row into an associative array
                        $row = mysql_fetch_assoc($res);

                        //check to see if the user has not activated their account yet
                        if($row['active'] != 1){
                            //if not display error message
                            echo "<center>You have not yet <b>Activated</b> your account!</center>";
                        }else{
                            //if they have log them in

                            //set the login session storing there id - we use this to see if they are logged in or not
                            $_SESSION['uid'] = $row['id'];
                            //show message
                            echo "<center>You have successfully logged in!</center>";

                            //update the online field to 50 seconds into the future
                            $time = date('U')+50;
                            mysql_query("UPDATE `users` SET `online` = '".$time."' WHERE `id` = '".$_SESSION['uid']."'");

                            //redirect them to the usersonline page
                            $loginpage="#feed";
                            header("Location: feed.php" . $loginpage);
                            exit();
                        }
                    }
                }
            }
        }
}

        ?>
                <center>

        <form action="index.php#feed" method="post" data-ajax="false">
            <div style="width: 75%; border-top: 1px solid #ffffff; margin-top: 20px; padding-top: 20px; border-bottom: 1px solid #ffffff; margin-bottom: 20px; padding-bottom: 20px;">
            <div class="ui-hide-label">
                <label for="username">Username:</label>
                <input type="text" name="username" id="username" value="" placeholder="username" data-mini="true" style="color: #c66200;"/><br>
                <label for="password">password:</label>
                <input type="password" name="password" id="password" value="" placeholder="password" data-mini="true" style="color: #c66200;"/><br>
            </div>

            <div style="width: 40%;">
                <input type="submit" data-role="button" name="submit" value="Login" data-mini="true" style="color: #c66200 !important;"/>
            </div>
            </div>

                </center>

        <?
        ob_end_flush();
        ?>


    </div>
    <div data-role="footer">
    </div>
</div>

<!-- END LOGIN PAGE -->

</body>
</html>

这是登录页面路由到的 feed.php 页面的内容。我可以在此页面上获取用户信息。每当我单击链接转到“浏览器结果”页面时,信息都不会保留。

<?php
//allow sessions to be passed so we can see if the user is logged in
session_start();

ob_start();

//connect to the database so we can check, edit, or insert data to our users table
$con = mysql_connect(***db info***) or die(mysql_error());
$db = mysql_select_db('dbname', $con) or die(mysql_error());

//include out functions file giving us access to the protect() function made earlier
include "./functions.php";

$userid = $_SESSION['uid'];
$lookupusername = mysql_query("SELECT * FROM users WHERE ID='$userid'");
$row = mysql_fetch_assoc($lookupusername);
$username = $row['username'];
$usercountry = $row['country'];


?>

<!DOCTYPE html> 
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>15:11 Project Mobile</title>

<link rel="stylesheet" href="css/jquery.mobile-1.3.0.css" />
<link href="font-awesome/css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jquery.mobile-1.3.0.js"></script>
</head> 
<body> 




<!-- BEGIN PAGE 3 -->

<div data-role="page" id="browse">
    <div data-role="panel" id="settingspanel" data-position="left" data-display="overlay">
        <ul data-role="controlgroup">
            <li><a href="#submit" data-role="button">Page Two</a></li>
                    <li><a href="#browse" data-role="button">Page Three</a></li>
            <li><a href="#projects" data-role="button">Page Four</a></li>
            <li><a href="log_out.php" data-role="button">Logout</a></li>
        </ul>
    </div>

    <div data-role="header" data-position="fixed" data-theme="c" data-tap-toggle="false" data-id="foo1" style="padding-top: 5px; border-bottom: 1px solid #eccfb3; padding-bottom: 5px;">
        <a href="#settingspanel" data-role="button" data-iconpos="notext" class="icon-reorder icon-2x" style="background: none; margin-left: 20px;"></a>
        <center><img src="images/logo_app_white.png" width="30px"></center>
    </div>
    <div data-role="content">   





<?php
$fquery = "SELECT state, city, count(city) as num FROM needs WHERE country='$usercountry' AND status='posted' GROUP BY state, city ORDER BY state, city";
if ($result = mysql_query($fquery)) {
    $num_rows = mysql_num_rows($result);

    echo "<table>";
    $i = 1;
    $cols = 2;
$prev = "";

    while ($frows = mysql_fetch_array($result)) {
        $fcity = $frows['city'];
        $fstate = $frows['state'];
        $fcitycount = $frows['num'];  // num is holding your count by city

if ($fstate != $prev) {
echo "<tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr><th align='left'>$fstate</th></tr><tr>";
}

        echo "<td><a href='browseresults.php?city=$fcity&state=$fstate'>$fcity, $fstate ($fcitycount)</a> </td>";
echo ($i < $num_rows) ? ((($i % $cols) == 0) ? '</tr>' : '') : '';
        $i++;


$prev = $fstate;
    }
    echo "</table>";
}

?>





    </div>
    <div data-role="footer" data-position="fixed" data-theme="c" data-tap-toggle="false" data-id="foo1" style="border-top: 1px solid #eccfb3; padding-top: 5px;">
        <div data-role="navbar" style="background: #ce8339;">
            <ul>
                <li><a href="#feed" class="icon-tasks icon-2x">My Feed</a></li>
                <li><a href="#submit"class="icon-upload icon-2x">Submit</a></li>
                <li><a href="#browse" class="icon-search icon-2x">Browse</a></li>
                        <li><a href="#projects" class="icon-folder-open-alt icon-2x">Projects</a></li>
            </ul>
        </div><!-- /navbar -->  
    </div>


</div>

<!-- END PAGE 3 -->







</body>
</html>

这是 browseresults.php 页面,该页面没有获取会话数据。

<?php
//allow sessions to be passed so we can see if the user is logged in
session_start();

ob_start();

//connect to the database so we can check, edit, or insert data to our users table
$con = mysql_connect(***dbinfo***) or die(mysql_error());
$db = mysql_select_db(dbname, $con) or die(mysql_error());

//include out functions file giving us access to the protect() function made earlier
include "./functions.php";

$userid = $_SESSION['uid'];
$lookupusername = mysql_query("SELECT * FROM users WHERE ID='$userid'");
$row = mysql_fetch_assoc($lookupusername);
$username = $row['username'];
$usercountry = $row['country'];


?>

<!DOCTYPE html> 
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>15:11 Project Mobile</title>

<link rel="stylesheet" href="css/jquery.mobile-1.3.0.css" />
<link href="font-awesome/css/font-awesome.css" rel="stylesheet">
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jquery.mobile-1.3.0.js"></script>
</head> 
<body> 


<!-- BEGIN PAGE 1 -->

<?
echo "$username";
?>

<!-- END PAGE 1 -->



</body>
</html>

不输出用户名。任何人都可以帮助解释原因并帮助我解决这个问题吗?

4

0 回答 0