Подскажите, где проблема.

  • Автор темы Ростин
  • Дата начала

Ростин

Guest
Подскажите, где проблема.

Подскажите, где проблема. Проблема в следующем: просмотр страницы через localhost на php 4.3.10 все работает, а на серверном php 4.0.3 в строке "<form method="POST" action="'.$_SERVER['PHP_SELF'].'">" action выдает пустое значение, а при заполненной вручную всеравно не попадает в "if ($_SERVER['REQUEST_METHOD'] == 'POST')".
PHP:
<html>
<body>
<?php
  $check_form = 0;
  $fam = '';
  $ima = '';
  
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $fam = $_POST['fam'];
    $ima = $_POST['ima'];
    $otch = $_POST['otch'];
    if (empty($fam) | empty($ima) | empty($otch) {
      echo '<font color=red><strong>Заполнены не все поля.</strong></font>';
      echo '<hr size=1>';
      $check_form = 0;
    } else {
      $check_form = 1;
      echo '<font color=red><strong>Заполнены все поля.</strong></font>';
    }
  }
  
  if ($check_form == 0) {
    echo '
<div align=center>
  <table border="0" cellspacing="0">
    <tr>
      <td>
        <fieldset>
          <legend>Анкета</legend>
          <form method="POST" action="'.$_SERVER['PHP_SELF'].'">
            <table border="0" cellspacing="0" cellpadding=5>
              <tr>
                <td>Фамилия:</td>
                <td><input type="text" name="fam" value="'.$fam.'" style="width: 250px"></td></tr>
              <tr>
                <td>Имя:</td>
                <td><input type="text" name="ima" value="'.$ima.'" style="width: 250px"></td></tr>
              <tr>
                <td>Отчество:</td>
                <td><input type="text" name="otch" value="'.$otch.'" style="width: 250px"></td></tr>
              <tr>
                <td>&nbsp;</td>
                <td><input type="submit" value="Отправить" style="width: 250px"></td></tr></table></form></fieldset></td></tr></table></div>';
  }
?>
</body>
</html>
 

Кром

Новичок
>а на серверном php 4.0.3

Я бы в первую очередь занялся обновлением php или сменой сервера/хостера.
 

Фанат

oncle terrible
Команда форума
в 4.0.3 нет массива $_SERVER
В начала скрипта вставь код:
if(!isset($_POST)) $_POST=$HTTP_POST_VARS
 

Ростин

Guest
Господи, как быстро ответили. Спасибо.
Фанат: Завтра доберусь до сервера, проверю и обязательно дам комментарий.
Кром: я, в данном случае, разовый наемник.

-~{}~ 10.03.05 18:53:

Как и обещал, комментарий: заработало. Проверку на post сделал следующим образом:
...
$ima = '';
$post_size = sizeof($HTTP_POST_VARS);
if ($post_size != 0) {...}
 

Novar

Guest
Может проще будет в твоем случаии юзать
$HTTP_POST_VARS вместо $_POST
$HTTP_GET_VARS вместо $_GET
и.т.д
Тогда будет работать и на старом php и на новых версиях.
и не надо будет проверки делать.
 
Сверху