按钮停止发出POST请求

时间:2016-11-25 14:16:01

标签: php http

我在这里遇到一个奇怪的问题,我有一段代码,直到昨天工作正常。突然我的按钮停止发出POST请求。 下面是示例代码。当我点击按钮btnsubmit时,页面会被重定向到view_teacherupdate.php,但它不会打印“按钮提交”;

<form  method="post" action="view_teacherUpdate.php">
  <input type="submit" name="btnsubmit" value="submit"/>
</form>

view_teacherUpdate.php

if(isset($_POST["btnsubmit"]))
{
  echo "button submitted";
}

我已启用error_reporting(E_ALL);,但我没有收到任何错误或警告。

两个页面都启用了会话。

任何帮助将不胜感激。 提前谢谢。

完整代码:

ViewTeacherUpdatePage:

<?php
session_start();
require_once 'includewisdom/class.user.php';
//require_once 'includewisdom/class.user.php';
error_reporting(E_ALL);
$user_home = new USER();

if(!$user_home->is_logged_in())
{
    $user_home->redirect('includewisdom/login.php');
}
function file_upload_error_message($error_code) {
    switch ($error_code) {
        case UPLOAD_ERR_INI_SIZE:
            return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
        case UPLOAD_ERR_FORM_SIZE:
            return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
        case UPLOAD_ERR_PARTIAL:
            return 'The uploaded file was only partially uploaded';
        case UPLOAD_ERR_NO_FILE:
            return 'No file was uploaded';
        case UPLOAD_ERR_NO_TMP_DIR:
            return 'Missing a temporary folder';
        case UPLOAD_ERR_CANT_WRITE:
            return 'Failed to write file to disk';
        case UPLOAD_ERR_EXTENSION:
            return 'File upload stopped by extension';
        default:
            return 'Unknown upload error';
    }
}

if(isset($_POST["btnUpdateNew"]))
{
    echo "hfvghfhgfhgf enter";
    $TeacherID=5;
    $teachername=trim($_POST["teachername"]);
    $current_address=trim($_POST["current_address"]);
    $teaching_locationsarray=$_POST["teaching_locations"];
    $teaching_locationsarray=array_unique($teaching_locationsarray);
    $teaching_location="";
        foreach($teaching_locationsarray as $temp)
        {
        $teaching_location=$temp.",".$teaching_location;
        }
    $teaching_location=rtrim($teaching_location,",");
        //echo $teaching_location;
    $teachingzone=trim($_POST["teachingzone"]);
    //$TeacherLocation[]
    $TeacherLocationarray=$_POST["TeacherLocation"];
    $TeacherLocationarray=array_unique($TeacherLocationarray);
    $TeacherLocation="";
        foreach($TeacherLocationarray as $temp)
        {
        $TeacherLocation=$temp.",".$TeacherLocation;
        }
    $TeacherLocation=rtrim($TeacherLocation,",");
    //$residenceZone=trim($_POST["residenceZone"]);
    //$Teaching_subject[]
    $Teaching_subjectarray=$_POST["Teaching_subject"];
    $Teaching_subjectarray=array_unique($Teaching_subjectarray);
    $Teaching_subject="";
        foreach($Teaching_subjectarray as $temp)
        {
        $Teaching_subject=$temp.",".$Teaching_subject;
        }
    $Teaching_subject=rtrim($Teaching_subject,",");
    //$residenceZone=trim($_POST["residenceZone"]);
    //$TeachingGroup[]
    $TeachingGrouparray=$_POST["TeachingGroup"];
    $TeachingGrouparray=array_unique($TeachingGrouparray);
    $TeachingGroup="";
        foreach($TeachingGrouparray as $temp)
        {
        $TeachingGroup=$temp.",".$TeachingGroup;
        }
    $TeachingGroup=rtrim($TeachingGroup,",");
    //$residenceZone=trim($_POST["residenceZone"]);
    //$edu_subject[]
    $edu_subjectarray=$_POST["edu_subject"];
    $edu_subjectarray=array_unique($edu_subjectarray);
    $edu_subject="";
        foreach($edu_subjectarray as $temp)
        {
        $edu_subject=$temp.",".$edu_subject;
        }
    $edu_subject=rtrim($edu_subject,",");
    //$residenceZone=trim($_POST["residenceZone"]);
    //$EducationGroup[]
    $EducationGrouparray=$_POST["EducationGroup"];
    $EducationGrouparray=array_unique($EducationGrouparray);
    $EducationGroup="";
        foreach($EducationGrouparray as $temp)
        {
        $EducationGroup=$temp.",".$EducationGroup;
        }
    $EducationGroup=rtrim($EducationGroup,",");
    $residenceZone=trim($_POST["residenceZone"]);
    $gender=trim($_POST["gender"]);
    $board=trim($_POST["board"]);
    $Qualification=trim($_POST["Qualification"]);
    $enrollmentdate=trim($_POST["enrollmentdate"]);
    $dob=trim($_POST["dob"]);
}

ViewTeacherPage(单击按钮的位置)

<?php
session_start();
require_once 'includewisdom/class.user.php';
//require_once 'includewisdom/class.user.php';
error_reporting(E_ALL);
define('PAC_PATH','phpAutocomplete');
require_once("phpAutocomplete/conf.php");
$user_home = new USER();

if(!$user_home->is_logged_in())
{
    $user_home->redirect('includewisdom/login.php');
}
$tutorRequirement=[];

if(isset($_POST["deleteDocs"]))
{
    $TeacherID=trim($_GET["id"]);
    //echo $TeacherID;
    $stmt1 = $user_home->runQuery("UPDATE `teacher_info` SET `idproof`='',`degree`='',`marksheet`='',`tenmarksheet`='',`degreemarksheet`='',
    `additionalDocuments`='',
`addressproof`='' WHERE userid=:uid");
            $stmt1->bindparam(":uid",$TeacherID);
            $stmt1->execute();  
    //echo "sgadjfdgs";
}



if(isset($_POST["submitRequestRequirement"]))
{
    $noteid=trim($_GET["noteid"]);
    $tutorid=trim($_GET["id"]);
    $stmtInsert="";
    $stmtRequest = $user_home->runQuery("SELECT * FROM `TutorRequestRequirement` WHERE TutorID='$tutorid' and RequestID='$noteid'");
    $stmtRequest->execute();
    //fetch(PDO::FETCH_ASSOC)
    $tutorRequirement = $stmtRequest->fetchAll(PDO::FETCH_ASSOC);

    $requestRequirement=trim($_POST["requestRequirement"]);
    if(count($tutorRequirement)>0)
    {
        $stmtInsert = $user_home->runQuery("Update TutorRequestRequirement set Requirement=:Requirement where TutorID=:TutorID and RequestID=:RequestID");
    }
    else
    {
    $stmtInsert = $user_home->runQuery("INSERT INTO `TutorRequestRequirement`(`TutorID`, `Requirement`, `RequestID`) Values
            (:TutorID,:Requirement,:RequestID)");   
    }

            $stmtInsert->bindparam(":TutorID",$tutorid);
            $stmtInsert->bindparam(":Requirement",$requestRequirement);
            $stmtInsert->bindparam(":RequestID",$noteid);
            $result=$stmtInsert->execute();

}
if(isset($_GET["noteid"]))
{
    $noteid=trim($_GET["noteid"]);
    $tutorid=trim($_GET["id"]);
    $stmtRequest = $user_home->runQuery("SELECT * FROM `TutorRequestRequirement` WHERE TutorID='$tutorid' and RequestID='$noteid'");
    $stmtRequest->execute();
    //fetch(PDO::FETCH_ASSOC)
    $tutorRequirement = $stmtRequest->fetchAll(PDO::FETCH_ASSOC);
    //echo count($tutorRequirement);
    //var_dump($tutorRequirement);
}

function file_upload_error_message($error_code) {
    switch ($error_code) {
        case UPLOAD_ERR_INI_SIZE:
            return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
        case UPLOAD_ERR_FORM_SIZE:
            return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
        case UPLOAD_ERR_PARTIAL:
            return 'The uploaded file was only partially uploaded';
        case UPLOAD_ERR_NO_FILE:
            return 'No file was uploaded';
        case UPLOAD_ERR_NO_TMP_DIR:
            return 'Missing a temporary folder';
        case UPLOAD_ERR_CANT_WRITE:
            return 'Failed to write file to disk';
        case UPLOAD_ERR_EXTENSION:
            return 'File upload stopped by extension';
        default:
            return 'Unknown upload error';
    }
}


$stmt = $user_home->runQuery("SELECT * FROM RoleInfoWisdomManagementSystem WHERE id=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$msg = "<div class='alert alert-block' style='background:#48cfad;margin-top:10px'>
                        <button class='close' data-dismiss='alert'>&times;</button>
                        <strong>  Your Profile Updated Successfully. </strong>
                        </div>";
$role=$row['role'];
$name=$row['Name'];

$TeacherID=trim($_GET["id"]);
$stmt = $user_home->runQuery("SELECT * FROM teacher_info WHERE userid=:uid");
$stmt->execute(array(":uid"=>$TeacherID));
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$teachingPreferencearray=explode(",",$row["tution_type"]);

$stmtArea = $user_home->runQuery("SELECT * FROM kolkata_locations");
$stmtArea->execute();
$rowarea = $stmtArea->fetchAll();

$stmt112 = $user_home->runQuery("SELECT distinct `subject_name` FROM `subjects`");
$stmt112->execute();
$rowsubjects = $stmt112->fetchAll();

$stmt1123 = $user_home->runQuery("SELECT * FROM `subjects`");
$stmt1123->execute();
$rowTeachingsubjects = $stmt1123->fetchAll();
//$arrinbox=explode("#",$inbox);

<form  method="post" action="view_teacherUpdate.php">
<button id="btnUpdate" name="btnUpdateNew" value="btnUpdateNew"  type="submit" class="btn btn-success">Save</button>

      </form>

4 个答案:

答案 0 :(得分:4)

您提交的代码包含2个提交按钮(1&lt;按钮&gt;,1&lt;输入类型=&#34;提交&#34;&gt;。根据按下的按钮,实际提交了不同的值。我想表单只添加了实际点击POST数据的按钮(或元素类型=提交)(从UI角度来看是有意义的)

根据按下的按钮,我得到了

Array ( [btnsubmit] => Verzenden )

Array ( [btnUpdateNew] => btnUpdateNew )

(&#34; Verzenden&#34;是Send的荷兰语翻译,因为浏览器翻译了这个)

那么,你是不是有机会按错了按钮?

<form  method="post" action="view_teacherUpdate.php">
  <input type="submit" name="btnsubmit"/>
  <button id="btnUpdate" name="btnUpdateNew" value="btnUpdateNew" type="submit" class="btn btn-success">Save</button>
</form>

答案 1 :(得分:0)

我认为在您的ViewTeacherPage(where button gets clicked)中,您忘记关闭<?php元素前的<form>标记。

答案 2 :(得分:0)

您的ViewTeacherPage.php文件。在此文件中,html代码的最后三行是正确的。但是你可以将这些代码放在php标签中。所以,首先关闭php标签。放完你的HTML代码后。

 <form  method="post" action="view_teacherUpdate.php">
      <button id="btnUpdate" name="btnUpdateNew" value="btnUpdateNew"  type="submit" class="btn btn-success">Save</button>

 </form>
 ?>

替换此

 ?>
<form  method="post" action="view_teacherUpdate.php">
  <button id="btnUpdate" name="btnUpdateNew" value="btnUpdateNew"  type="submit" class="btn btn-success">Save</button>
</form>

答案 3 :(得分:0)

我怀疑所需文件includewisdom/class.user.php出了问题。你最近更改了那个文件吗?在尝试检查用户是否已登录时,用户数据也可能存在损坏的数据库表。检查数据库和托管日志文件是否有任何错误。

要调试此事

  1. error_reporting(E_ALL);置于顶部,然后生成除零警告并抛出自定义错误以查看PHP错误是否正常:

    <?php
    
    error_reporting(E_ALL);
    
    $i = 2 / 0; // Warning: Division by zero in ...
    throw new Exception('Custom error to see if errors are working.'); // Fatal error: Uncaught Exception: Custom error to see if errors are working.
    
    session_start();
    require_once 'includewisdom/class.user.php';
    //require_once 'includewisdom/class.user.php';
    //error_reporting(E_ALL);
    $user_home = new USER();
    

    如果您看到警告致命错误,则可以看到错误,您可以继续。 还要尝试在$user_home = new USER();之后立即抛出自定义错误;也许class.user.php中有一些其他代码会禁用error_reporting

  2. error_reporting(E_ALL);

    之后立即直接放置POST检测
    <?php
    
    error_reporting(E_ALL);
    
    if(isset($_POST["btnUpdateNew"]))
    {
        die("POST btnUpdateNew exists");
    }
    
    session_start();
    require_once 'includewisdom/class.user.php';
    //require_once 'includewisdom/class.user.php';
    //error_reporting(E_ALL);
    $user_home = new USER();
    

    如果您没有看到该消息,则PHP脚本根本不会执行,并且可能对于在该特定站点下运行PHP脚本view_teacherupdate.php的当前用户存在一些服务器用户池限制。 如果您在发布表单后看到POST btnUpdateNew exists,则表单正常,问题出在用户管理调用new USER();$user_home->is_logged_in()的某个位置。 也许有触发exit的东西。要检查这一点,请尝试在检查后打印一些内容并调用$user_home->is_logged_in()函数,如下所示:

    <?php
    session_start();
    require_once 'includewisdom/class.user.php';
    //require_once 'includewisdom/class.user.php';
    error_reporting(E_ALL);
    $user_home = new USER();
    
    if(!$user_home->is_logged_in())
    {
        $user_home->redirect('includewisdom/login.php');
    }
    
    echo "User is logged in<br>";
    

    如果你没有看到这条消息,那么你就会遇到问题并且隐藏了用户管理类;尝试从数据库中读取用户信息时,其代码或逻辑或某些数据损坏。

    如果您看到“用户已登录”消息,则将调试后的调试放在view_teacherupdate.php的顶部,如下所示:

    <pre><?php print_r($_POST) ?></pre>
    

    有了这个,你会发现当脚本收到POST数据时$_POST数组包含的确切内容。

    然后检查POST数据,请用结果更新您的问题!