简体   繁体   English

从数据库中检索值并将其存储为会话变量

[英]retreive values from database and store it as session variable

I have created a form for payment in html. 我已经在html中创建了一个付款表单。 The values in the form are added automaticaly usng session. 表单中的值会自动添加会话。 when the user logs in, the values are added using the user infromation. 当用户登录时,使用用户信息添加值。 my html is below: 我的html如下:

 <table> <form name="postForm" action="form_process.php" method="POST" > <tr><td><input type="hidden" name="txnid" value="<?php echo $txnid=time().rand(1000,99999); ?>" /></td></tr> <tr><td>amount</td><td><input type="text" name="amount" value="<?php echo $_SESSION['amount']; ?>" /></td></tr> <tr><td>firstname</td><td><input type="text" name="firstname" value="<?php echo $_SESSION['firstname']; ?>" /></td></tr> <tr><td>email</td><td><input type="text" name="email" value="<?php echo $_SESSION['email']; ?>" /></td></tr> <tr><td>phone</td><td><input type="text" name="phone" value="<?php echo $_SESSION['phone']; ?>" /></td></tr> <tr><td>productinfo</td><td><input type="text" name="productinfo" value="<?php echo $_SESSION['productinfo']; ?>" /></td></tr> <tr><td><input type="hidden" name="surl" value="success.php" size="64" /></td></tr> <tr><td><input type="hidden" name="furl" value="fail.php" size="64" /></td></tr> <tr><td><input type="submit" /></td><td><input type="reset" /></td></tr> </form> </table> 

in the login page, i have stored the session as below: 在登录页面中,我已将会话存储如下:

 <?php session_start(); include("config.php"); if(isset($_POST['login'])) { $user_email=$_POST['email']; $user_pass=$_POST['pass']; $check_user="select * from users WHERE user_email='$user_email'AND user_pass='$user_pass'"; $run=mysqli_query($dbcon,$check_user); if(mysqli_num_rows($run)>0) { $result=mysqli_fetch_array($run); $_SESSION['email']=$user_email; $_SESSION['access']=$result['access']; //here session is used and value of $user_email store in $_SESSION. echo "<script>window.open('index.php','_self')</script>"; } else { echo "<script>alert('Email or password is incorrect!')</script>"; } } ?> <html> <head lang="en"> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="bootstrap-3.2.0-dist\\css\\bootstrap.css"> <title>Login</title> <link rel="icon" type="image/png" href="images/imageedit_2_5125240109.gif"/> <link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="all" /> <link href="css/style.css" rel="stylesheet" type="text/css" media="all" /> <link href="css/appointment_style.css" rel="stylesheet" type="text/css" media="all" /> <link href="css/font-awesome.css" rel="stylesheet"> <!-- //for bootstrap working --> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,300i,400,400i,600,600i,700" rel="stylesheet"> </head> <style> .login-panel { margin-top: 150px; } </style> <body> <div class="container"> <div class="row"> <div class="col-md-4 col-md-offset-4"> <div class="login-panel panel panel-success"> <div class="panel-heading"> <h3 class="panel-title">Sign In</h3> </div> <div class="panel-body"> <form role="form" method="post" action="login.php"> <fieldset> <div class="form-group" > <input class="form-control" placeholder="E-mail" name="email" type="email" autofocus> </div> <div class="form-group"> <input class="form-control" placeholder="Password" name="pass" type="password" value=""> </div> <input type="submit" value="login" name="login" > <!-- Change this to a button or input when using this as a form --> <!-- <a href="index.html" class="btn btn-lg btn-success btn-block">Login</a> --> </fieldset> </form> </div> </div> </div> </div> </div> </body> </html> 

the user email is correctly inputted in the form , but the mobile number and other details are not being added into the form. 用户电子邮件在表单中正确输入,但手机号码和其他详细信息未添加到表单中。 i tried string them as variables like above, but its not displaying. 我尝试将它们串起来作为上面的变量,但它没有显示。 i think i need to fetch the details from database. 我想我需要从数据库中获取详细信息。 can anyone tell me how to do this? 谁能告诉我怎么做?

I have done alot of research and finally go the answer myself. 我做了很多研究,最后自己回答了问题。

i used the $_SESSION and the select query to get the information of the current user from the database. 我使用$ _SESSION和select查询从数据库中获取当前用户的信息。 and used the while loop to put them in variable. 并使用while循环将它们放在变量中。 the updated code is below: 更新后的代码如下:

 <div class="sing"><?php session_start(); if (isset($_SESSION['email']) && $_SESSION['email'] == true) { echo " &nbsp Welcome " . $_SESSION['email'] ; echo "<div style='float: right;'><a href='logout.php'>Logout</a>&nbsp</div>"; } else { } ?> </div> <!DOCTYPE html> <html> <head> </head> <body> <div> <h2>Payment Gateway Testing Sample</h2> <h3>Fill the form and submit it for starting the transaction...</h3> </div> <div> <?php include("config.php"); $user_email=$_SESSION['email']; $check_user="select * from users WHERE user_email='$user_email'"; $run=mysqli_query($dbcon,$check_user); while($row = $run->fetch_assoc()) { $user_name=$row['user_name']; $user_mobile=$row['user_mobile']; } //here session is used and value of $user_email store in $_SESSION. ?> <table> <form name="postForm" action="form_process.php" method="POST" > <tr><td><input type="hidden" name="txnid" value="<?php echo $txnid=time().rand(1000,99999); ?>" /></td></tr> <tr><td>amount</td><td><input type="text" name="amount" value="" /></td></tr> <tr><td>Name</td><td><input type="text" name="firstname" value="<?php echo $user_name; ?>" /></td></tr> <tr><td>email</td><td><input type="text" name="email" value="<?php echo $_SESSION['email']; ?>" /></td></tr> <tr><td>phone</td><td><input type="text" name="mobile" value="<?php echo $user_mobile; ?>" /></td></tr> <tr><td>productinfo</td><td><input type="text" name="productinfo" value="" /></td></tr> <tr><td><input type="hidden" name="surl" value="success.php" size="64" /></td></tr> <tr><td><input type="hidden" name="furl" value="fail.php" size="64" /></td></tr> <tr><td><input type="submit" /></td><td><input type="reset" /></td></tr> </form> </table> </div> </body> </html> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM