2017-02-17 11 views
0
<?php 
    include("includes/connections.php"); 

    if(isset($_POST['sign_in'])) { 


     $password = mysqli_real_escape_string($con,$_POST['pass']); 
     $email = mysqli_real_escape_string($con,$_POST['email']); 


     $get_user = "SELECT * FROM users WHERE user_email = '$email' AND user_password = '$password'"; 
     $run_user = mysqli_query($con,$get_user); 

     $check = mysqli_num_rows($run_user); 

     if ($check==1) { 

      $_SESSION['user_email']=$email; 
      echo "<script>window.open('welcome.php','_self');</script>"; 

     } 
     else { 

      echo "<script>alert('Password or email is not correct');</script>"; 
      echo "<script>window.open('index.php','_self');</script>"; 

     } 
    } 

?> 

Это был один из дней, когда я начал изучать php. Я застрял здесь. Код кажется прекрасным, но он не запускает сеанс при регистрации или входе в систему. Он говорит Неопределенный индекс: user_email.Undefined index: user_email .. читать все остальные ответы. все еще не могу вычислить

<h1>welcome : <?php echo $_SESSION['user_email']; ?></h1> 

Может ли кто-нибудь помочь?

+1

Возможные дубликатом? [PHP: "Обратите внимание: Undefined переменной", "Обратите внимание: Undefined индекс" и "Извещение: Undefined смещение"] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-notice-undefined-index-and-notice-undef) – MrDarkLynx

+0

[session_start()] (http://php.net/manual/en/function.session-start.php) – Mohammad

+0

_Hint: _ Перед использованием любых сеансов необходимо иметь ['session_start()'] (http://php.net/manual/en/function.session-start.php). –

ответ

0

В вашем коде в точке, где 'check = 1', вам нужно поместить эту строку кода: session_start();

Когда вы получите сообщение об ошибке, сеанс уже запущен, вам нужно поместить эту строку кода вверху документа: ob_start();

<?php 
ob_start(); //Put ob_start(); here on this line 


include("includes/connections.php"); 

     if(isset($_POST['sign_in'])) { 


     $password = mysqli_real_escape_string($con,$_POST['pass']); 
     $email = mysqli_real_escape_string($con,$_POST['email']); 


     $get_user = "SELECT * FROM users WHERE user_email = '$email' AND user_password = '$password'"; 
     $run_user = mysqli_query($con,$get_user); 

     $check = mysqli_num_rows($run_user); 

     if ($check==1) { 
      session_start(); //Put session_start(); on this line 
      $_SESSION['user_email']=$email; 
      echo "<script>window.open('welcome.php','_self');</script>"; 

     } 
     else { 

      echo "<script>alert('Password or email is not correct');</script>"; 
      echo "<script>window.open('index.php','_self');</script>"; 

     } 
    } 

>

+0

не проще ли поставить 'session_start()' вверху, до выхода? –

+0

Спасибо. Это сработало. – Himakar

+0

Добро пожаловать! С той же проблемой в начале, когда я начал с сеансов –

0

Вы забыли положить session_start() в верхней части страницы.

+0

, когда я добавляю session_start(), он дает мне уведомление о том, что сессия уже началась и игнорирует ее. – Himakar

+0

Положите ob_start() выше session_start(); – Blasty

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

  • Нет связанных вопросов^_^