2015-05-10 3 views
-1

Мой модальный для спрашивать Nameпеременная Session не устанавливается в первый раз

<?php session_start(); ?> 
<div class="modal name fade modal-scrollable" id="name" role="dialog" aria-labelledby="basicModal" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      <h4 class="modal-title myModalLabel">Your name!</h4> 
      </div> 
      <div class="modal-body"> 
    <form id="nameForm" action="index.php" method="post"> 
    <div class="form-group"> 
     <label class="col-xs-3 control-label">Your name : </label> 
     <div class="col-xs-4"> 
      <input type="text" class="form-control name" name="name" required/> 

     </div> 
    </div></div><br/><br/> 
      <div class="modal-footer"> 
           <button type="submit" class="btn btn-primary" id="ok">Ok</button> 
     </div> 
    </form> 
    </div> 
    </div> 
    </div> 

код сценария

<?php 
if(!$_SESSION['user']['name']){ 
echo "<script> 
$(window).load(function(){ 
    $('#name').modal({ 
    backdrop: 'static', 
    keyboard: true 
}) 
     $('#name').modal('show'); 
    }); 
</script>"; 
} 
?> 

<script> 
$('#ok').submit(function(){ 
<?php 
$_SESSION['user']['name']=$_POST['name']; 
print"location.reload();"; 
?> 
}); 
</script> 

Этот код на самом деле работает отлично. Код состоит в том, что при загрузке страницы он запрашивает имя пользователя и устанавливает переменную сеанса для установки введенного имени. Он откроет модальное значение только в том случае, если переменная сеанса не установлена. Но на самом деле пользователь должен ввести свое имя дважды. Я даже пытался перезагрузить(), но он не работал. Пожалуйста помоги!

+0

Где ваш 'session_start()'? –

+0

Его там! В начале моего кода! –

+1

Вы имеете в виду, что он существует с 3-х минут назад, когда вы его добавили ... –

ответ

0

Ваша сессия настроена правильно. Однако вы не инициализируете сеанс. Первая строка после <?php тега должно быть:

session_start(); 

Пожалуйста, также обратите внимание, что в этой части вашего кода, вы должны напечатать ваш код JavaScript:

<?php 
$_SESSION['user']['name']=$_POST['name']; 
print "location.reload();"; 
?> 
+0

Еще раз спрашивает имя! –

+0

Это может быть причиной того, что вы не используете функцию isset(), чтобы проверить, была ли ранее задана $ _SESSION. Попробуйте, если (! Isset ($ _ SESSION ['user'] ['name'])) {на вашем первом, если Statement @SaranshSeth –

+0

Сделал это! Не имеет значения! –