2013-02-11 4 views
0

Я новичок в PHP. Я пытаюсь выполнить этот простой код. Принимая значение текстового поля с одной php-страницы, я хочу отобразить его на другой php-странице. Но это не работает. Где моя ошибка?

new1.php

<html xmlns="http://www.w3.org/1999/xhtml"> 

    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>Untitled Document</title> 
    </head> 

    <body> 
     <form action="welcome1.php" method="POST"> 
      <input name="Name" type="text" /> 
      <input name="submit" type="submit" value="Submit" /> 
     </form> 
    </body> 
    <?php 
     SESSION_START(); 
     $var=""; 
      if(!empty($_POST['Name'])){ 
      $var=$_POST['Name']; 
     } else { 
      $var="NOT SET"; 
     } 
     $_SESSION['name11']=$var; 
    ?> 
</html> 

welcome1.php

<html> 
    <body> 
     <?php 
     session_start(); 
     $n=""; 
     if(isset($_SESSION['name11'])){ 
      $n=$_SESSION['name11']; 
      echo $n; 
     } else { 
      echo "no session"; 
     } 
     ?> 
    </body> 
</html> 
+0

Ответ дается Montycarlo ниже. Я хотел бы предположить, что 'session_start()' должна быть первой строкой страницы, это хорошая практика и облегчает отладку. Также читайте больше о 'session' и' forms' в PHP. – vedarthk

+0

Что содержит весь суффикс '1' –

+0

и он не показывает никаких ошибок ????? –

ответ

1

Ваш код находится в неправильном файле.

Это все должно быть в формате welcome1.php, в настоящее время оно находится в файле new1.php.

<?php 
    SESSION_START(); 
    $var=""; 
    if(!empty($_POST['Name'])){ 
     $var=$_POST['Name']; 
    } 
    else 
    { 
     $var="NOT SET"; 
    } 
    $_SESSION['name11']=$var; 
?> 
+0

Нет, именно то, что я хочу сделать, это доступ к значению текстового поля с одной страницы (здесь new1.php), отображение его на другой странице (welcome1.php). Если вы любезно разработали свое решение ... –

+0

PHP не работает так, как вы верите в это. Он выполняется один раз, на стороне сервера. Если вы будете следовать моему решению, текстовое поле будет по-прежнему находиться на странице new1.php, но будет обработано в welcome1.php. – Montycarlo

+0

Большое вам спасибо. Я виноват. –

0

Ваш код является неправильным. Просто потому, что session_start() должен быть запущен до отправки заголовков.

Решение в вашем случае:

Move session_start(); выше < HTML ...

Пожалуйста, посетите: Why can't I use session_start() in my php script? It says headers are already sent

+0

Нет, он все еще не работает. Я поставил часть скрипта выше всех. '

0

Проблема в том, что вы отправляете форму на welcome1.php (действие вашей формы) и код, чтобы получить пост значение в new1.php.

Изменить вы файлы:

new1.php

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>Untitled Document</title> 
    </head> 
    <body> 
     <form action="welcome1.php" method="POST"> 
      <input name="Name" type="text" /> 
      <input name="submit" type="submit" value="Submit" /> 
     </form> 
    </body> 
</html> 

welcome1.php

<?php 
    session_start(); 
    $var=""; 
    if(!empty($_POST['Name'])){ 
     $var=$_POST['Name']; 
    } else { 
     $var="NOT SET"; 
    } 
    $_SESSION['name11']=$var; 

    echo $_SESSION['name11']; /// you get this $_SESSION['name11'] in all the pages. 
?> 
+0

Я предлагаю вам ознакомиться с основами представления и сеансов формы, см. Http://www.w3schools.com/ –

+0

спасибо много. Это работает. –

+0

В стеке мы благодарим, приняв ответ и голосуя: D –

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