【问题标题】:Is it possible to get 'Session User" to display是否可以显示“会话用户”
【发布时间】:2014-11-03 20:39:46
【问题描述】:

您好,我正在尝试让一个用户登录并登录到他们的帐户,以便在他们发表评论时显示他们的“登录名”,当用户想要发表评论时,它会询问他们的姓名和评论。是否可以显示从会话中获取的名称以显示它?谢谢!

http://puu.sh/cByNU/697e58cdf6.jpg http://puu.sh/cByNU/697e58cdf6.jpg

在我以“测试”身份登录的图像上,是否可以删除“名称”字段,当他们发表评论时,搜索框所在的位置会显示他们的名字(测试)。

谢谢!

我的代码:

<?php
 session_start();
 include "../includes/config.php";
  include "function.php";
  include ('../includes/header.php'); 
?>

<!DOCTYPE HTML>

<html>
<head>
<title>Honda</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href='http://fonts.googleapis.com/css?family=Julius+Sans+One' rel='stylesheet' type='text/css'>
<link href="../css/style.css" rel="stylesheet" type="text/css" media="all" />
<!--start lightbox -->
<link rel="stylesheet" type="text/css" href="../css/jquery.lightbox.css">
<script src="../js/jquery.min.js"></script>
<script src="../js/jquery.lightbox.js"></script>
<script>
  // Initiate Lightbox
  $(function() {
    $('.gallery1 a').lightbox(); 
  });
</script>

</head>
<body>
<!--start header-->
<div class="h_bg">
<div class="wrap">
<div class="wrapper">
<div class="header">
    <div class="logo">
         <a href="index.php"><img src="../images/logo.png"> </a>
    </div>
    <div class="cssmenu">
    <ul>
       <li><a href="index.php"><span>Home</span></a></li>
        <li><a href="about.php"><span>About</span></a></li>
       <li class="active" class="has-sub"><a href="service.php"><span>Gallery</span></a>
       </li>
       <li class="last"><a href="contact.php"><span>Contact</span></a></li>
     <div class="clear"></div>

     <form action="search.php" method="GET">
                     <div class="search">
                    <h2>search</h2>
            <form>

                <input type="text" name="query" placeholder="Enter Your search..." />
                <input type="submit" value="">
            </form>
        </div>
        </form>

                                 <div class="search1">


            <form action="" method="POST">
        <br>
 <h2>Welcome, <?=$_SESSION['sess_user'];?>!</h2><br><br>
                                <div class="pw">
                <a href="changepassword.php"><h3>Change details</h3></a>
                </div>

                <br><br>
 <h2><a href="logout.php">Logout</a></h2>
    </form> 
    </div>



    </div>
     </ul>
    </div>
    <div class="clear"></div>
</div>
</div>
</div>
</div>
<!-- start content -->
<div class="content_bg">
<div class="wrap">
<div class="wrapper">
    <div class="main">
<div class="ser-main">
        <h2 class="style">Gallery of honda</h2>
        <div class="ser-grid-list img_style">
        <div class="gallery1">
            <a href="../images/ser_pic1.jpg"><img src="../images/ser_pic1.jpg" alt=""></a>
        </div>
        </div>
        <div class="ser-grid-list img_style">
        <div class="gallery1">
            <a href="../images/ser_pic2.jpg"><img src="../images/ser_pic2.jpg" alt=""></a>
        </div>
        </div>
        <div class="ser-grid-list img_style">
        <div class="gallery1">
            <a href="../images/ser_pic3.jpg"><img src="../images/ser_pic3.jpg" alt=""></a>
        </div>
        </div>
        <div class="ser-grid-list img_style">
        <div class="gallery1">
            <a href="../images/ser_pic4.jpg"><img src="../images/ser_pic4.jpg" alt=""></a>
        </div>










        </div>
        <div class="clear"></div>
    </div>
</div>
</div>
</div>
<div class="footer_bg">
<div class="wrap">
<div class="wrapper">
    <div class="footer">

                <div class="search69">


        <?php

if(isset($_POST['submit'])  
    && !empty($_POST['name']) 
    && !empty($_POST['comment']) ){

$name=$_POST['name'];
$comment=$_POST['comment'];
$submit=$_POST['submit'];


$insert=mysql_query("INSERT INTO comment (name,comment) VALUES ('$name','$comment') ");
echo "<meta HTTP-EQUIV='REFRESH' content='0; url=service.php'>";
}
else
{
echo "";
}
?>





        <form class="comments" action="service.php" method="POST">



<h2>Name: </h2><br><input type="text" name="name" required/><br><br>
<h2>Comment:</h2><textarea name="comment" rows="10" cols="50"  required></textarea><br><br><br>
<input type="submit" name="submit" value="Comment">

</form>



<?php


$getquery=mysql_query("SELECT * FROM comment ORDER BY id DESC");
while($rows=mysql_fetch_assoc($getquery))
{
$id=$rows['id'];
$date=$rows['date'];
$name=$rows['name'];
$comment=$rows['comment'];
echo '<h2><hr size="1"/><br><font color="green">' . $name .  '</font><h2><br/>' . '<br/>' . $comment .  '<br/><br><font color="red">' . $date. '</font><br/>' . '<hr size="1"/>'
;}



?>





</div>
        <div class="copy">
            <p class="w3-link">2014&nbsp;</p>
            <a href="terms.php">Privacy & Policy</a>



        </div>
                <div class="f_nav">
        <ul>
            <li><a href="#">Skype</a></li>
            <li><a href="#">Linked in</a></li>
            <li><a href="#">Twitter</a></li>
            <li><a href="#">Facebook</a></li>
        </ul>
        </div>
        <div class="clear"></div>
    </div>
</div>
</div>
</div>
</body>
</html>

(该页面上的所有代码)

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    更新:

    这里的人会杀了我,因为现在我只是编辑了你的代码,而不是重写为 mysqli 或 PDO,但正如我所见,你卡住了,所以我刚刚更新,因为我不想混淆那个也是。我做了一些修改,检查我的 cmets。 (将插入块移动到文件顶部,添加错误消息,删除不必要的变量,将 rows 变量重命名为 row 等...)

    <?php
    session_start();
    include "../includes/config.php";
    include "function.php";
    include ('../includes/header.php');
    
    //Set an empty errorMsg because later we will check it.
    $errorMsg = '';
    
    //If everything is set, or the SESSION["sess_user"] not empty.
    //I moved this whole thing here, because if there are no output, we can
    //redirect user from PHP, and do not need to use META REFREHS...
    if (isset($_POST['submit']) && !empty($_POST['comment']) && (!empty($_POST["name"]) || !empty($_SESSION["sess_user"]))) {
        if (!empty($_SESSION["sess_user"])) {
            $name = $_SESSION["sess_user"];
        } else {
            $name = $_POST["name"];
        }
        //$comment = $_POST['comment']; //Use $_POST["comment"] directly
        //$submit = $_POST['submit']; //Do not use it anywhere
        $insert = mysql_query("INSERT INTO comment (name,comment) VALUES ('" . mysql_real_escape_string($name) . "','" . mysql_real_escape_string($_POST["comment"]) . "')");
        Header("Location: service.php");
    } else {
        $errorMsg = "You need to fill all the fields.";
    }
    ?>
    <!DOCTYPE HTML>
    <html>
        <head>
            <title>Honda</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
            <link href='http://fonts.googleapis.com/css?family=Julius+Sans+One' rel='stylesheet' type='text/css'>
            <link href="../css/style.css" rel="stylesheet" type="text/css" media="all" />
            <!--start lightbox -->
            <link rel="stylesheet" type="text/css" href="../css/jquery.lightbox.css">
            <script src="../js/jquery.min.js"></script>
            <script src="../js/jquery.lightbox.js"></script>
            <script>
                // Initiate Lightbox
                $(function() {
                    $('.gallery1 a').lightbox();
                });
            </script>
        </head>
        <body>
            <!--start header-->
            <div class="h_bg">
                <div class="wrap">
                    <div class="wrapper">
                        <div class="header">
                            <div class="logo">
                                <a href="index.php"><img src="../images/logo.png"> </a>
                            </div>
                            <div class="cssmenu">
                                <ul>
                                    <li><a href="index.php"><span>Home</span></a></li>
                                    <li><a href="about.php"><span>About</span></a></li>
                                    <li class="active" class="has-sub"><a href="service.php"><span>Gallery</span></a>
                                    </li>
                                    <li class="last"><a href="contact.php"><span>Contact</span></a></li>
                                    <div class="clear"></div>
    
                                    <form action="search.php" method="GET">
                                        <div class="search">
                                            <h2>search</h2>
                                            <form>
    
                                                <input type="text" name="query" placeholder="Enter Your search..." />
                                                <input type="submit" value="">
                                            </form>
                                        </div>
                                    </form>
                                    <div class="search1">
                                        <form action="" method="POST">
                                            <br>
                                            <h2>Welcome, <?= $_SESSION['sess_user']; ?>!</h2><br><br>
                                            <div class="pw">
                                                <a href="changepassword.php"><h3>Change details</h3></a>
                                            </div>
                                            <br><br>
                                            <h2><a href="logout.php">Logout</a></h2>
                                        </form> 
                                    </div>
                            </div>
                            </ul>
                        </div>
                        <div class="clear"></div>
                    </div>
                </div>
            </div>
        </div>
        <!-- start content -->
        <div class="content_bg">
            <div class="wrap">
                <div class="wrapper">
                    <div class="main">
                        <div class="ser-main">
                            <h2 class="style">Gallery of honda</h2>
                            <div class="ser-grid-list img_style">
                                <div class="gallery1">
                                    <a href="../images/ser_pic1.jpg"><img src="../images/ser_pic1.jpg" alt=""></a>
                                </div>
                            </div>
                            <div class="ser-grid-list img_style">
                                <div class="gallery1">
                                    <a href="../images/ser_pic2.jpg"><img src="../images/ser_pic2.jpg" alt=""></a>
                                </div>
                            </div>
                            <div class="ser-grid-list img_style">
                                <div class="gallery1">
                                    <a href="../images/ser_pic3.jpg"><img src="../images/ser_pic3.jpg" alt=""></a>
                                </div>
                            </div>
                            <div class="ser-grid-list img_style">
                                <div class="gallery1">
                                    <a href="../images/ser_pic4.jpg"><img src="../images/ser_pic4.jpg" alt=""></a>
                                </div>
                            </div>
                            <div class="clear"></div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="footer_bg">
                <div class="wrap">
                    <div class="wrapper">
                        <div class="footer">
                            <div class="search69">
                                <?php
                                //Added here the errorMsg
                                if (!empty($errorMsg)) {
                                    ?>
                                    <div class="error"><?php echo $errorMsg; ?></div>
                                    <?php
                                }
                                ?>
                                <form class="comments" action="service.php" method="POST">
                                    <?php
                                    if (!empty($_SESSION['sess_user'])) {
                                        //If user logged in, use the name of it
                                        ?>
                                        <h2>Name: </h2><br><?php echo $_SESSION['sess_user']; ?>
                                        <br><br>
                                        <?php
                                    } else {
                                        //Else, ask it
                                        ?>
                                        <h2>Name: </h2><br><input type="text" name="name" required/><br><br>
                                        <?php
                                    }
                                    ?>
    
                                    <h2>Comment:</h2><textarea name="comment" rows="10" cols="50"  required></textarea><br><br><br>
                                    <input type="submit" name="submit" value="Comment">
                                </form>
    
                                <?php
                                $getquery = mysql_query("SELECT * FROM comment ORDER BY id DESC");
                                //This is one row, not rows
                                while ($row = mysql_fetch_assoc($getquery)) {
                                    /*
                                     * These are not necessary
                                    $id = $rows['id'];
                                    $date = $rows['date'];
                                    $name = $rows['name'];
                                    $comment = $rows['comment'];
                                     */
                                    echo '<h2><hr size="1"/><br><font color="green">' . $row['name'] . '</font><h2><br/>' . '<br/>' . $row['comment'] . '<br/><br><font color="red">' . $row['date'] . '</font><br/>' . '<hr size="1"/>'
                                    ;
                                }
                                ?>
    
                            </div>
                            <div class="copy">
                                <p class="w3-link">2014&nbsp;</p>
                                <a href="terms.php">Privacy & Policy</a>
                            </div>
                            <div class="f_nav">
                                <ul>
                                    <li><a href="#">Skype</a></li>
                                    <li><a href="#">Linked in</a></li>
                                    <li><a href="#">Twitter</a></li>
                                    <li><a href="#">Facebook</a></li>
                                </ul>
                            </div>
                            <div class="clear"></div>
                        </div>
                    </div>
                </div>
            </div>
    </body>
    </html>
    

    注意:不要使用 mysql 函数,因为它们已被弃用。请改用 mysqli 或 PDO 函数。

    对 sql 注入不感兴趣,所以转义你的数据!

    【讨论】:

    • 你建议我把第二段代码放在哪里?
    • 查看我编辑的代码。在将评论插入数据库之前。
    • 请原谅我的无知,但我很挣扎:(我在这里插入,如果我错了请纠正我。puu.sh/cBzpj/b1447349ec.png
    • 啊,好的,我知道是什么问题了。因为如果您使用$_SESSION["sess_user"],那么$_POST["name"] 将为空。等我更新我的代码。
    • 现在检查。我修改的是:if (isset($_POST['submit']) &amp;&amp; !empty($_POST['comment']) &amp;&amp; (!empty($_POST["name"]) || !empty($_SESSION["sess_user"]))) { 这意味着,如果设置了$_POST["submit"],并且注释不为空,并且(如果$_POST["name"] OR $_SESSION["sess_user"] 不为空),那么.. . 所以它检查,是否设置了所有必填字段,或者如果没有$_POST["username"],那么是否设置了$_SESSION["sess_user"]。明白了吗?
    【解决方案2】:

    如果我做得好,您希望表单自动获取登录用户的名称。你应该:

    <?php $username = isset($_SESSION['sess_user']) ? $_SESSION['sess_user'] : "";?>
    

    将用户名或 "" 存储到 $username 中,具体取决于用户是否经过身份验证。然后在表单内的输入行中:

    <h2>Name: </h2><br><input type="text" name="name" value="<?php echo $username; ?>" required/><br><br>
    

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多