2016-04-03 3 views
-1

Здесь отображаются введенные данные. На данный момент он отображает только электронную почту, он не будет дисплей телефона, город и county.I хотел бы показать всю эту информацию для конкретного пользователяКак получить информацию о сеансе с другой страницы в PHP?

<?php 
    session_start(); 

    if(!($_SESSION['email'])){ 
     header("location: login.php"); 

    } 
    ?> 
    <html> 
    <head> 
    <title>Login Page</title> 
    </head> 
    <style type='text/css'> 
    body{ 
     background:url('wellcome.png'); 
    } 
    </style> 
    <body><b>Welcome you have succesfully logged into your account</b> 
    <p></p> 
    <font color='red' size='5'><?php echo $_SESSION['email'];?> 
    </font> 
    <font color='red' size='5'><?php echo $_SESSION['name'];?> 
    <font color='red' size='5'><?php echo $_SESSION['phone'];?> 
    <font color='red' size='5'><?php echo $_SESSION['city'];?> 
    <font color='red' size='5'><?php echo $_SESSION['county'];?> 
    </font> 
    <h1 align='right' style='margin-right:50px; margin-top:50px'> 
    <a href='logout.php'>Logout Here</a></h1> 
    </body> 
    </html> 

Это где пользователь вводит данные:

<html> 

    <head> 
    <title>Registration Forma</title> 
    </head> 

    <body> 
    <form method='post' action='registration.php'> 
    <table width='400' border='5' align='center'> 
      <tr> 
      <td colspan = '5'><h1>Registration Form</h1></td> 

      </tr> 
      <tr> 
      <td align = 'center'>User Name:</td> 
      <td><input type='text' name='name'/></td> 
      </tr> 

      <td align = 'center'>Phone Number:</td> 
      <td><input type='text' name='phone'/></td> 
      </tr> 
      <td align = 'center'>County:</td> 
      <td><input type='text' name='county'/></td> 
      </tr> 
      <td align = 'center'>City/Town:</td> 
      <td><input type='text' name='city'/></td> 
      </tr> 
      <tr> 

      <td align = 'center'>User Paswword:</td> 
      <td><input type='password' name='pass'/></td> 
      </tr> 

      <tr> 
      <td align = 'center'>Email:</td> 
      <td><input type ='text' name='email' /></td> 
      </tr> 

      <tr> 
      <td colspan='5' align='center'><input type='submit' name='submit' value='sign up' /></td> 
      </tr> 
    </table> 
    </form> 
    <center><B>Already Registered </b> <a href='login.php'>Login here</a></center> 
    </center> 
    </body> 
    </html> 

    <?php 

     $servername = "localhost"; 
    $username = "root"; $password = ""; 
    $dbname = "users_db"; 
    $conn = new mysqli($servername, $username, $password, $dbname); 

    if (mysqli_connect_errno()) 
     { echo "MySQLi Connection was not established: " . mysqli_connect_error(); 
    } 
    if(isset($_POST['submit'])) 
    { $user_name = $_POST['name']; 
    $user_pass = $_POST['pass']; 
    $user_email = $_POST['email']; 
    $Phone = $_POST['phone']; 
    $County = $_POST['county']; 
    $City = $_POST['city']; 
    if($user_name=='') 
    { echo "<script>alert('Please enter your name!')</script>"; 
    exit(); } 
    if($user_pass=='') 
    { echo "<script>alert('Please enter your password!')</script>"; 
    exit(); } if($user_email=='') 
    { echo "<script>alert('Please enter your email!')</script>"; 
    exit(); } 
    //CHECKING FIELDS 
    $check_username = "SELECT * FROM users WHERE user_name = '$user_name'"; 
    $result_username= mysqli_query($conn, $check_username) or die (mysqli_error($conn)); 
    if (mysqli_num_rows($result_username) > 0) { 
     echo "Username already exists, please try another one!"; 
    exit(); 
    } 
    $check_email = "SELECT * FROM users WHERE user_email = '$user_email'"; 
    $result_email = mysqli_query($conn, $check_email) or die (mysqli_error($conn)); 
    if (mysqli_num_rows($result_email) > 0) 
    { echo "Email already exists, please try another one!"; 
    exit(); } 
    //INSERTING DATA TO DATABASE 
    $insertquery = "INSERT INTO users (user_name,user_pass,user_email,Phone,County,City) 
    VALUES ('$user_name','$user_pass','$user_email','$Phone','$County','$City')"; 
    if (mysqli_query($conn, $insertquery)) 
     { echo "<script>window.open('welcome.php','_self')</script>"; } else { 
      echo "Error: " . $insertquery . "<br>" . mysqli_error($conn); 
      } 
      } 

      ?> 

Это моя страница входа. Здесь пользователь вводит свой адрес электронной почты и пароль для входа в систему. Когда пользователь входит в систему, они входят на страницу приветствия, поэтому я хочу, чтобы они увидели их личные данные, например имя, телефон, город и округ.

<?php 
session_start() 

?> 

<html> 
<head> 
<title>Login Page</title> 
</head> 
<style type='text/css'> 
body{ 
    background:url('back.jpg'); 
} 
</style> 
<body> 
<form method='post' action='login.php'> 
<table width='400' border='5' align='center'> 
     <tr> 
     <td colspan = '5'><h1>Login Form</h1></td> 

     </tr> 

     <tr> 

     <td align = 'center'>Paswword:</td> 
     <td><input type='password' name='pass'/></td> 
     </tr> 

     <tr> 
     <td align = 'center'>Email:</td> 
     <td><input type ='text' name='email' /></td> 
     </tr> 

     <tr> 
     <td colspan='5' align='center'><input type='submit' name='login' value='login' /></td> 
     </tr> 
</table> 
</form> 
<center> 
<font color='red' size='6'>registered yet? 
</font><a href ='registration.php'>Sign up here</a> 
</body> 
</html> 

<?php 
$servername = "localhost"; 
$username = "root"; $password = ""; 
$dbname = "users_db"; 
$conn = new mysqli($servername, $username, $password, $dbname); 

if(isset($_POST['login'])){ 
    $password = $_POST['pass']; 
    $email = $_POST['email']; 


    $check_email = "select * from users where user_pass='$password' AND user_email='$email'"; 


    $run = mysqli_query($conn, $check_email) or die (mysqli_error($conn)); 

    if (mysqli_num_rows($run) > 0) 

{

$data = mysqli_fetch_array($check_email); 

$_SESSION['email']=$data['user_email']; 
$_SESSION['name']=$data['user_name']; 
$_SESSION['phone']=$data['Phone']; 
$_SESSION['county']=$data['County']; 
$_SESSION['city']=$data['City']; 

     echo 
     "<script>window.open('welcome.php','_self')</script>"; 
     } 
     else{ 
     echo "<script>alert('Email or password is incorrect!')</script>"; 
     } 


} 

?> 
+0

Я не вижу, где вы установили СЕССИЯ – Mihai

+0

** Это вы имеете в виду?Это из моей страницы входа ** if (isset ($ _ POST ['login'])) { \t $ пароль = $ _POST ['pass']; \t $ email = $ _POST ['email']; \t \t \t $ check_email = "select * от пользователей, где user_pass = '$ password' AND user_email = '$ email'"; \t \t \t $ run = mysqli_query ($ conn, $ check_email) или die (mysqli_error ($ conn)); \t если (mysqli_num_rows ($ бег)> 0) \t { \t \t $ _SESSION [ 'электронная почта'] = $ по электронной почте; \t \t \t \t \t \t эхо \t \t "; \t \t} \t еще {\t \t \t эхо ""; \t \t} \t } > – artur

+0

Любопытное, вы только установить сессию для электронной почты здесь '$ _SESSION [ 'электронная почта'] = $ электронная почта;?' Сделайте то же самое для всех остальных – Mihai

ответ

0

Попробуйте добавить error_reporting в начале PHP:

<?php 
    error_reporting(-1); 
    session_start(); 

это будет отображать любые ошибки, которые возникают, Я предполагаю, что проблема заключается в страницу входа. Скорее всего, вы задаете значение электронной почты только в переменной сеанса, но не в других.

если вы добавите error_reporting, это скажет вам, что происходит не так.

Вы должны найти код, где вы установили $_SESSION['email'] и добавить код для добавления других атрибутов к $_SESSION переменной

if(isset($_POST['login'])){ 
$password = $_POST['pass']; 
$email = $_POST['email']; 

$check_email = "select * from users where user_pass='$password' AND user_email='$email'"; 


$run = mysqli_query($conn, $check_email) or die (mysqli_error($conn)); 

if (mysqli_num_rows($run) > 0) 
{ 
    // here is where you need to add all the other variables but you need to retrieve them from the mysql request and not the post data which you set above 
    $data = mysqli_fetch_array($check_email); 
    // now i don't know the column names for these but i'm guessing they are user_variable 
    $_SESSION['email']=$data['user_email']; 
    $_SESSION['name']=$data['user_name']; 
    $_SESSION['phone']=$data['user_phone']; 
    $_SESSION['city']=$data['user_city']; 
    $_SESSION['county']=$data['user_county']; 


    echo 
    "<script>window.open('welcome.php','_self')</script>"; 
    } 
    else{ 
    echo "<script>alert('Email or password is incorrect!')</script>"; 
    } 

}

+1

Хотя полезно, это должен быть комментарий. Это не отвечает на вопрос. – ceejayoz

+0

@ceejayoz это должно/могло определенно привести его к ответу, хотя, и если он получит сообщения об ошибках, он может отредактировать свой вопрос, и я продолжу редактирование своего ответа? или это не правильный способ справиться с этим? – Jester

+0

Я пробовал это, и я получил этот ответ на странице: Примечание: Undefined index: name in D: \ xampplite \ htdocs \ registration \ welcome.php в строке 23 Примечание: Неопределенный индекс: телефон в D: \ xampplite \ htdocs \ registration \ welcome.php в строке 24 Примечание: Неопределенный индекс: город в D: \ xampplite \ htdocs \ registration \ welcome.php в строке 25 Примечание: Неопределенный индекс: графство в D: \ xampplite \ htdocs \ регистрация \ welcome.php в строке 26 – artur

0

я не могу себе представить, что вы имеете в виду под «другой странице " в точку. Являются ли оба веб-страницы хранятся на одном и том же веб-сервере (например, mywebsite.com/pageA и mywebsite.com/pageA) или на разных веб-серверах (например, google.com и bing.com)?

Если вы хотите использовать $ _SESSION [] - http://php.net/manual/en/reserved.variables.session.php , который работает только на том же сайте.

Также вам нужно назначить где-нибудь (возможно, на странице/функции checkLogin) значения из базы данных в значение $ _SESSION. Возможно, вы ищете место, где $ _SESSION ['email'] = $ databaserow ['email'] или что-то подобное есть и распространяется на значения, которые вы хотите. Код, который вы отправили, не соответствует этому.

+0

На другой странице я имею в виду страницу, в которую пользователь входит в свой аккаунт и показаны их личные данные – artur

Смежные вопросы