PHP скрипт работал, теперь второй $ _POST вдруг не работает

0

Я новичок в php и искал три дня, чтобы найти свою проблему. Сценарий ниже работал в течение двух лет, и теперь внезапно вторая команда POST никогда не заполняется (это последние строки кода, и когда я повторяю $_POST['input']; ничего не происходит.) Я посмотрел на var_dump$[_$POST] и он получает $formType, но не $input.

Почему это вдруг перестанет работать? Он переходит к следующей форме, но ничего не работает, потому что все рассчитывается на перенос $input.

Я работаю на сервере unix, Network Solutions.

Любая помощь очень ценится !!

вот код (санированные имена каталогов и баз данных, очевидно):

<?php
    session_start();
    if ($_SESSION['auth'] != "yes") {
        header("Location: login.php");
        exit();
    }

    if (isset($_REQUEST['Enter'])) {
        header("Location: http://www.mysite.com/subdirectory/nextform.php");
    } else if (isset($_REQUEST['Delete'])) {
        header("Location: http://www.mysite.com/subdirectory/deleterow.php");
    }
    ########################################
    ####checks what kind of service request######
    #########################################

?>

<form name="form" method="post" action="<?php
echo htmlentities($_SERVER['PHP_SELF']);
?>"> 
<p><legend>Form Type</legend></p>
<p> <basefont size = "4"></p>
<p><label for="formType" required>*Select Type of Form:</label></p>
<p><select name="formType"></p>
<p><option value="">select</option></p>
<p><option value="Garda">Security Officer</option></p>
<p><option value="Surveil">Surveil</option></p>
<p><option value="EmployApp">Employment Application</option></p>
<p></select></p>
<p><input type="submit" name="Submit" value="Submit" /></p>
</form> 
    <?php

    $formType = $_POST['formType'];

    SESSION_register("formType");


    if ($formType == Garda) {

        // Connects to your Database 
        include("introGardaform.php");
        $database = "Gardaform"; // provide your database name 
        $db_table = "GardaINQ"; // leave this as is 

        $db = mysql_connect($hostname, $db_user, $db_password);
        mysql_select_db($database, $db);

        $data = mysql_query("SELECT * FROM GardaINQ") or die(mysql_error());

        // puts the "GardaINQ"database table info into the $info array 
        //$info = mysql_fetch_array( $data ); 

        Print "<table border cellpadding=15>";
        while ($info = mysql_fetch_array($data)) {
            Print "<tr>";
            Print "<th>Inquiry Number:</th> <td>" . $info['Inquiry_num'] . "</td> ";
            Print "<th>Contact Name:</th> <td>" . $info['contactName'] . " </td>";
            Print "<th>Contact Number:</th> <td>" . $info['contactNum'] . " </td></tr>";
        }
        Print "</table>";
    }

    if ($formType == Surveil) {

        // Connects to your Database 
        include("investfm.php");
        $database = "investigateform"; // provide your database name 
        $db_table = "surveil"; // leave this as is 

        $db = mysql_connect($hostname, $db_user, $db_password);
        mysql_select_db($database, $db);

        $data = mysql_query("SELECT * FROM surveil") or die(mysql_error());

        // puts the "surveil"database table info into the $info array 
        //$info = mysql_fetch_array( $data ); 

        Print "<table border cellpadding=15>";
        while ($info = mysql_fetch_array($data)) {
            Print "<tr>";
            Print "<th>Inquiry Number:</th> <td>" . $info['Inquiry_num'] . "</td> ";
            Print "<th>Contact Name:</th> <td>" . $info['contactName'] . " </td>";
            Print "<th>Contact Number:</th> <td>" . $info['contactNum'] . " </td></tr>";
        }
        Print "</table>";
    }

    if ($formType == EmployApp) {

        // Connects to your Database 
        include("introhires.php");
        $database = "hires"; // provide your database name 
        $db_table = "hiresentry"; // leave this as is 

        $db = mysql_connect($hostname, $db_user, $db_password);
        mysql_select_db($database, $db);

        $data = mysql_query("SELECT * FROM hiresentry") or die(mysql_error());

        // puts the "hiresentry"database table info into the $info array 
        //$info = mysql_fetch_array( $data ); 

        Print "<table border cellpadding=15>";
        while ($info = mysql_fetch_array($data)) {
            Print "<tr>";
            Print "<th>First Name:</th> <td>" . $info['firstName'] . " </td>";
            Print "<th>Last Name:</th> <td>" . $info['lastName'] . " </td>";
            Print "<th>Date:</th> <td>" . $info['date'] . " </td></tr>";
        }
        Print "</table>";
    }

?>

<form name="finddata" method="POST" action="<?php
echo htmlentities($_SERVER['PHP_SELF']);
?>"> 
<p> <basefont size = "4"></p>
<p><label for="finddata" required>Enter Inquiry Number for Garda or Surveil, Last name for Employment 

Application:</label></p>
<p><input type = "text" size="20" maxlength="40" required onKeyPress="return noenter()" 

name="input"></p>
<p><input type="hidden" value="<?php
echo $formType;
?>" name="formType"></p>
<p><input type="submit" name="Enter" value="Enter" ></p><br/>
<p><input type="submit" style="font-face: 'Comic Sans MS'; font-size: larger; color: red; background-color: #FFFFC0; border: 3pt ridge lightgrey"   name = "Delete" value="Delete"></p>
</form> 

<?php

    $input = $_POST['input'];
    SESSION_register("input");
    echo $_POST['input'];

?>
Теги:

3 ответа

3

Вы использовали SESSION_register("formType"); undefined function, и эта функция была DEPRECATED с PHP 5.3.0 и удалена с PHP 5.4.0.

Таким образом, вы можете использовать $_SESSION["formType"]=$formType; , также

Необходимо обернуть " или ' чтобы проверить строку. Попробуйте это,

if($formType=="Garda"){

и if($formType=="EmployApp"){

вместо

if($formType==Garda){

if($formType==EmployApp){
  • 0
    PHP автоматически превращает подобные токены в кавычки в строки, так что это не должно вызывать сбой скрипта. Это может вызвать предупреждение, вот и все.
  • 0
    Спасибо Вам за информацию. Я изменил СЕССИИ, как вы упомянули, и добавил двойные кавычки, но все еще получаю только formType в POST ... Я никогда не получаю ввод в POST.
2

У вас много проблем с кодом.

  • Вместо этого вы сравниваете переменную $formtype с константой. Это должно быть так. if($formType=="Garda"){ и if($formType=="Surveil"){ и if($formType=="EmployApp"){ добавьте двойные кавычки ко всем операторам if как показано.
  • Вы используете устаревшую версию, т.е. session_register
  • 1
    Спасибо. Я знаю, что мой код не очень красивый, но он работал 2 года. Сделал обновления, до сих пор не получил вход в POST
1

вы можете попробовать следующее:

  1. Удалите атрибут действия полностью из обеих форм, поскольку по умолчанию он является POST для себя.
  2. замените свойство font-face css на свойство font-family в последнем элементе второй формы. однако это не должно быть причиной проблемы, с которой вы сталкиваетесь.
  3. Поскольку на странице есть 2 формы и есть 2 блока кода в зависимости от сообщения формы, я предполагаю, что ваше второе сообщение формы создает проблему в первой части кода, поскольку данные для первого из них не будут опубликованы из отправить кнопку во второй форме. поэтому перед выполнением части кода вы должны определить, должен ли выполняться этот фрагмент кода или нет. Простое создание нескольких форм должно выглядеть примерно так:
     <form name="form1" method="post">
         <input type="text"/>
         <input type="submit" name="form1-submit" value="Submit Name" />
     </form>

     <!-- form1 specific code -->
     <?php
         if(isset($_POST["form1-submit"]))
         {
             // do your stuff here
         }
     ?>

     <form name="form2" method="post">
         <input type="text"/>
         <input type="submit" name="form2-submit" value="Submit Name" />
     </form>

     <!-- form2 specific code -->
     <?php
         if(isset($_POST["form2-submit"]))
         {
             // do your stuff here
         }
     ?>

     <!-- independent code -->
     <?php
         // do your common code here.
     ?>

Если вы можете написать код указанным выше способом, вы сможете самостоятельно решить проблему. сообщите нам об этом в случае, если это поможет.

  • 0
    Я попробовал эти обновления, но я все еще не получаю "form2-submit" для публикации ... первая форма form1submit выясняет, какую базу данных открыть и показать пользователю. вторая выбирает, какую строку базы данных хочет пользователь, и отправляет ее в другой сценарий для форматирования и печати. этот другой скрипт вызывается в заголовке. По какой-то причине данные, которые вводит пользователь, никогда не публикуются.
  • 0
    ХОРОШО. Я пропустил что-то в первый раз. Теперь я получаю обе переменные для отправки и эха, но чтобы это работало, мне пришлось переместить страницу перенаправления сверху вниз. Если я оставляю его сверху, он перенаправляется, когда я нажимаю Enter, а переменные POST не переносятся. Если я поставлю его внизу, уже есть вывод php, а header не работает. Извините, что так неграмотен об этом!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню