Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 读取会话变量以写入数据库_Php_Jquery_Mysql_Session - Fatal编程技术网

Php 读取会话变量以写入数据库

Php 读取会话变量以写入数据库,php,jquery,mysql,session,Php,Jquery,Mysql,Session,如果有人能帮我解决这个问题,我会非常感激的——我几乎让它工作了 基本上,我有一段时间在构思自己的应用程序,之所以这样做是因为我对编码还不熟悉,所以我觉得这会教我很多关于不同元素的知识(即添加、更新和删除记录) 因此,在这个例子中,我有一个用户成功登录,它正在创建一个会话,该会话将通过其他表单传递。我希望他们能够增加一笔交易——我几乎已经有了这笔交易,但似乎有一部分很难达成 我的HTML代码是: <!DOCTYPE html> <html> <head> <

如果有人能帮我解决这个问题,我会非常感激的——我几乎让它工作了

基本上,我有一段时间在构思自己的应用程序,之所以这样做是因为我对编码还不熟悉,所以我觉得这会教我很多关于不同元素的知识(即添加、更新和删除记录)

因此,在这个例子中,我有一个用户成功登录,它正在创建一个会话,该会话将通过其他表单传递。我希望他们能够增加一笔交易——我几乎已经有了这笔交易,但似乎有一部分很难达成

我的HTML代码是:

<!DOCTYPE html>
<html>
<head>
<title>Find A Deal</title>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<link rel="stylesheet" href="http://localhost/findadeal/themes/deal.css" />
<style>
    #login-button {
        margin-top: 30px;
    }        
</style>
<script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>    
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="js/custom3.js"></script>
<script src="js/custom4.js"></script>

       <?php
    if( !isset( $_SESSION ) ){
     session_start();
        }

    if( isset( $_SESSION['username'] ) ){
      /* User is logged in */
      echo "IT WORKS!";
        } ?>

</head>


<body>
<div data-role="page" id="login">
    <div data-theme="a" data-role="header">
        <h3>Find A Deal</h3>
    </div>

    <div data-role="content">

        <label for="username">Enter your username:</label>
        <input type="text" value="" name="username" id="username"/>
        <label for="password">Enter your password:</label>
        <input type="password" value="" name="password" id="password"/>  
        <a data-role="button" id="login-button" data-theme="b">Login</a>
    </div>

    <div data-theme="a" data-role="footer" data-position="fixed">

    </div>
</div>

<!--Newly rendered page after successful login!-->

<div data-role="page" id="index">
    <div data-theme="a" data-role="header">
        <h2>Find A Deal</h2>
    </div>

    <div data-role="content">

           <?php
    if( !isset( $_SESSION ) ){
     session_start();
        }

    if( isset( $_SESSION['username'] ) ){
      echo "IT WORKS!";
        } ?>


    <h3></h3>
    <a href="#view" data-role="button" data-icon="search">View Deals</a>
    <a href="#add" data-role="button" data-icon="plus">Add Deals</a>

    </div>
</div>

<!--View Deal Page-->

    <div data-role="page" id="view">
    <div data-role="header">
        <h2>Find A Deal</h2>
    </div>

    <div data-role="content">

           <?php
    if( !isset( $_SESSION ) ){
     session_start();
        }

    if( isset( $_SESSION['username'] ) ){
      echo "IT WORKS!";
        } ?>


    <h3></h3>
    <p>test so I know I'm onto a new page</p>
    <a href="#view" data-role="button" data-icon="search">View Deals</a>
    <a href="#add" data-role="button" data-icon="plus">Add Deals</a>
    </div>

<div data-role="footer">

</div>
</div>

<!--Add Deal Page-->

    <div data-role="page" id="add">
    <script src="js/custom4.js"></script>
    <div data-role="header">
        <h2>Find A Deal</h2>
    </div>

    <div data-role="content">

           <?php
    if( !isset( $_SESSION ) ){
     session_start();
        }

    if( isset( $_SESSION['username'] ) ){
        echo "It's working!";
        } ?>

    <label for="name">Deal Name:</label>
        <input type="text" value="" name="name" id="name"/>
        <label for="desc">Description</label>
        <input type="text" value="" name="desc" id="desc"/>  
        <a data-role="button" id="submit-button" data-theme="b">Submit</a>
    </div>





</div>
</body>
</html>
然后将其反馈到一个PHP文件,准备将输入写入数据库,如下所示:

<?php

$var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine ajax action nature
$jsonObject = json_decode($_REQUEST['utputJSON']); // Decode JSON object into readable PHP object

$name = $jsonObject->{'name'}; // Get name from object
$desc = $jsonObject->{'desc'}; // Get desc from object

mysql_connect("localhost","root","");  // Conect to mysql, first parameter is location, second is mysql username and a third one is a mysql password
@mysql_select_db("findadeal") or die( "Unable to select database"); // Connect to database called test

$query = "INSERT INTO deal (dname, description) VALUES ('$name' ,'$desc')";
$result=mysql_query($query);
$num = mysql_numrows($result);

if($num != 0) {

    echo "true";

} else {

    echo "false"; 

}
?>

如果我理解的很好,你现在更感兴趣的是学习东西,而不是创建应用程序。我建议您尝试在单独的测试文件中一次学习一件事情,当您获得必要的知识后,将所有知识整合到一个应用程序中,将您所学的所有知识应用到实际测试中


我是一名教练,培训了许多学生,并帮助他们认识到一些他们可以自豪的产品,因此,如果你有兴趣一件一件地学习,我想我可以帮助你,如果你愿意。

如果我正确理解了你的逻辑,你必须这样做:

<?php

$var1 = $_REQUEST['action']; // We dont need action for this tutorial, but in a complex code you need a way to determine ajax action nature
$jsonObject = json_decode($_REQUEST['utputJSON']); // Decode JSON object into readable PHP object

$name = $jsonObject->{'name'}; // Get name from object
$desc = $jsonObject->{'desc'}; // Get desc from object

mysql_connect("localhost","root","");  // Conect to mysql, first parameter is location, second is mysql username and a third one is a mysql password
@mysql_select_db("findadeal") or die( "Unable to select database"); // Connect to database called test

$query = "INSERT INTO deal (dname, description) VALUES ('$name' ,'$desc')";
$result=mysql_query($query);
$num = mysql_numrows($result);

if($num != 0) {

    echo "true";

} else {

    echo "false"; 

}
?>
在登录HTML/PHP页面上,从以下内容开始:

<?php
    if( !isset( $_SESSION ) ){ session_start(); }
?>
THE REST OF YOUR CODE FOLLOWS HERE

其余代码如下所示
在登录操作PHP脚本中,再次:

<?php
    if( !isset( $_SESSION ) ){ session_start(); }
    // now you look up your user - how ever you do this...
    // might be something like this...
    // this is not a real function it should just demonstrate
    // the possible logic.
    if(!isset($_SESSION['userid'])) {
        // you just have to check in case no session userid is set:
        function getUser( $username, $password ) {
            $db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS);
            $sql = 'SELECT id FROM users WHERE username=:username AND pwd=:pwd';
            $statement = $db->prepare($sql);
            $statement->bindParam(':username', $username, PDO::PARAM_STR);
            $statement->bindParam(':pwd', $password, PDO::PARAM_STR);
            $statement->execute();
            $result = $statement->fetch(PDO::FETCH_ASSOC);
            if(!empty($result)) {
                return $result['id'];
            }
            return false;
        }
        // call your login logic (here getUser) and 
        // if you have a result, set the session...
        $userExists = getUser($_POST['user'], $_POST['pwd']);
        if($userExists) {
            $_SESSION['userid'] = $userExists;
        }
    }
?>

在交易操作中,再次:

<?php
    if( !isset( $_SESSION ) ){ session_start(); }
    // you check if the username session exists
    if(isset($_SESSION['userid'])) {
        // in case you have...
        // proceed with your deal logic
        // and use $_SESSION['userid'] to fill it to the DB
    }
?>


如果已经有HTML输出,则无法正确处理会话。在写任何一行HTMLHi@axel.michel之前,请确保您已经开始了会话(在每一页上),谢谢您的回复。我没有正确处理会议吗?我在登录读取的PHP上有一个session_start()变量,然后我有sessions if语句处理所有其他呈现的页面,是否保留该变量?到目前为止,它似乎一直在为我工作?还有什么我应该注意的吗?你为什么不试试饼干?饼干?我会查一查,看看能查到什么!我希望我能正确地解释我自己,我要做的是将会话$\u session['username']带到PHP文件,该文件正在将其他数据写入数据库。这通常会有帮助吗?你太好了,谢谢!一件一件地做每件事是我迄今为止构建学习的方式!(也是这样,我不会去打破可能要花很长时间才能开始工作的东西:P)在我完成一件作品后,我把所有的东西都放在一起,看看整个练习的流程,这就是我所处的阶段。我已经做了一个用户注册,我使用的是几乎相同的概念(将数据写入数据库)但是我想知道的是我是如何将usersid写入该表的,因为它存储在会话变量中。我想做的很多事情以及下一步学习的内容都围绕着查看哪个用户登录并呈现特定于其ID的数据等这一想法展开的——这就是为什么我要学习如何在这个会话中使用变量练习将帮助我在以后的阶段操纵它!您好@axel.michel-谢谢您的回复。你的回答中有一点我想我可能会用到。但是,我的用户在登录表单中输入用户名和密码,然后点击登录。在您给我的登录操作PHP脚本中,这是否只是将数据库中的'u USER_ID'字段保存到会话中?是的?因为它将读取并保存它,而用户不必首先输入准确的字段?@user2025934我不确定我是否正确理解您的问题。不过我已经更新了我的答案。我发布的不是一个工作脚本,而是一个基本的操作方法。假设您有一个登录逻辑,它测试用户是否存在,并在成功时返回userid。这是您在会话中保存的内容,然后您可以使用它,您可以在所有其他PHP文件中读取该值(只要您启动会话)。不再需要用户的交互。