php、mysql、会话

Posted

技术标签:

【中文标题】php、mysql、会话【英文标题】:Php, mysql, session 【发布时间】:2018-05-25 10:31:39 【问题描述】:

我在从网站上的表单接收数据时遇到问题。我的意思是,在成功注册后,用户必须看到这样的字符串:Hello“name”,但我收到的不是这个,而是所有字符串,但每个字符串对于每个新用户都必须是特殊的。我怎么能用会话做到这一点?帮助。谢谢。

【问题讨论】:

您在此处未向我们提供足够的信息来回答问题。文件中有什么? “运作良好”是什么意思? 您是否尝试过或至少想过将您的确切问题标题输入谷歌或任何其他搜索引擎? php include_once("db.php"); if(isset($_POST['add'])) $username = htmlspecialchars(strip_tags(trim($_POST['username']))); $email = htmlspecialchars(strip_tags(trim($_POST['email']))); $password = md5($_POST['password']); mysql_query(" INSERT INTO users(username,email,password) VALUE ('$username','$email','$password') ");header('Location:main.php/');出口; mysql_close(); ?> 那么,我需要在哪里写 header(''Location main.php"); exit();? @FranzGleichmann 是的,我有,但我找不到任何东西。你能帮我解决这个问题吗? 【参考方案1】:

这是执行适用于所有情况的重定向的好方法:

// $url contains the page to which you want to redirect the user

function redirect($url)

    if (!headers_sent())
        header('Location: '.$url);
    else
      
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'"/>';
        echo '</noscript>';
    

    exit();

用户注册完成后使用:

redirect('successfull_registration.php');

【讨论】:

【参考方案2】:

header 函数用于重定向。

<?php header('Location: thispage.php'); ?>

在您要重定向到thispage.php的页面中包含这一行。

或者如果你在某个变量中有 URL,那么这样写

<?php header('Location: '.$URL); ?>

警告!!

不要在页面顶部添加不必要的NewLine,否则header函数将不起作用并返回header已经发送。

【讨论】:

如果您要在答案中添加警告,至少手头有具体原因,而不是“有时由于某种原因它不起作用”。 原因是,如果您开始从 PHP 发送输出并 然后 尝试设置标头,您将收到 2nd paragraph of the documentation 中所述的错误。

以上是关于php、mysql、会话的主要内容,如果未能解决你的问题,请参考以下文章

这对于用户登录和验证是不是足够安全? (PHP、MySQL、会话)

如何在 PHP + MySQL 中正确实现自定义会话持久化器?

我如何在 php、mysql 和 ajax 的会话中显示用户在线或离线

主要的 PHP/MySQL 登录项目,带有会话变量

从数据库而不是会话中获取特定产品的数量 - 购物车(PHP 和 MySQL)

如何通过创建会话使用 PHP、MYSQL 和 HTML 创建登录系统 [关闭]