Я использую Win XP os и XAMPP. Я использовал eclipse в качестве редактора. В Eclipes мне не удалось перенаправить следующую страницу, поэтому теперь я установил среду разработки Zend.
Теперь также я получаю ту же проблему.
Мой код
HomePage.php
<html> <body> <form name="Form1" id="FormId" action="Welcome.php" method="post"> name : <input type="text" name="txtName"> Phone Number : <input type="text" name="txtPnum"> <input type="submit" name="SubmitIt" value="Submit It"> </form> </body> </html> And Welcome.php is <?php ob_start(); session_start(); if(!($_SESSION['UName'])) { $_SESSION['UName']=$_POST['txtName']; } if(!($_SESSION['Ph Num'])) { $_SESSION['Ph Num']=$_POST['txtPnum']; } ?> <html> <body> Welcome <?php if(isset($_SESSION['UName'])) { echo $_SESSION['UName']; } else { echo "Session not set<br/>"; echo "{$_SESSION['UName']}"; echo "The session contains <br>"; print_r($_SESSION); } ?> </body> </html>
Его рабочий режим (перенаправление на следующую страницу) в браузере, но он не работает в режиме отладки. Как в Eclipse, так и в Zend Development Environment.
Вместо того, чтобы показывать содержимое следующей страницы, он показывает имя страницы. (Welcome.php в моем примере).
Должен ли я установить любые другие дополнительные программы или сам код worng …. В чем проблема. Пожалуйста, предложите мне.
Заранее спасибо….!
какая часть должна сделать перенаправление, я не вижу никакого заголовка ('Location: redirect.php') или что-то
и почему вы используете ob_start () здесь.
вы не выпустили выходной буфер add ob_get_clean (); в конце
<?php ob_start(); session_start(); if(!($_SESSION['UName'])) { $_SESSION['UName']=$_POST['txtName']; } if(!($_SESSION['Ph Num'])) { $_SESSION['Ph Num']=$_POST['txtPnum']; } ob_end_flush(); ?> <html> <body> Welcome <?php if(isset($_SESSION['UName'])) { echo $_SESSION['UName']; } else { echo "Session not set<br/>"; echo "{$_SESSION['UName']}"; echo "The session contains <br>"; print_r($_SESSION); } ?> </body> </html>
попробуйте добавить это в конце вашего кода. Я уверен, что это потому, что вы не выпускаете выходной буфер, хотя я думаю, что он должен был сделать это автоматически
echo ob_get_clean();
Обновить:
Я не уверен, почему вы используете переменную $ _SESSION здесь, но хотите ли вы исправить эту проблему, вы можете использовать, например, $ uname вместо $ _SESSION ['UName'];
Welcome.php <?php // at the beginning of your file, no spaces or newline session_start(); $uName=$_POST['txtPnum']; $txtPnum=$_POST['txtPnum']; $_SESSION['UName'] = $uName; $_SESSION['PhNum'] = $uName; ?> <html> <body> Welcome <?php echo $_SESSION['UName']; ?> </body> </html>
вы избавляетесь от старта, поскольку вы все еще отлаживаете свой код. и попробуйте шаг за шагом. Желаю вам хорошего взгляда.