2016-11-25 26 views
8

Tôi đang gặp phải sự cố lạ ở đây, tôi đã có một đoạn mã hoạt động tốt cho đến hôm qua. Đột nhiên nút của tôi đã ngừng thực hiện Yêu cầu POST. Dưới đây là mã mẫu. Khi tôi nhấp vào nút btnsubmit, trang sẽ được chuyển hướng đến view_teacherupdate.php nhưng nó không in "nút đã gửi";đã ngừng thực hiện yêu cầu POST

<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"; 
} 

tôi đã kích hoạt error_reporting(E_ALL); nhưng tôi không nhận được bất kỳ lỗi hoặc cảnh báo.

Phiên được bật trong cả hai trang.

bất kỳ trợ giúp nào sẽ được đánh giá cao. Cảm ơn trước.

Full Code:

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 (nơi nút được nhấp)

<?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> 
+0

Nhận xét không dành cho thảo luận mở rộng; cuộc hội thoại này đã được [chuyển sang trò chuyện] (http://chat.stackoverflow.com/rooms/129122/discussion-on-question-by-r-r-button-stopped-making-post-request). –

+0

Điều đầu tiên trước tiên. Tôi nghĩ rằng bạn không dán mã chính xác trong trang ViewTeacherPag vì thẻ php không được đóng trước dòng 121 và đưa ra lỗi: Bất ngờ

+0

Tại sao hai nút gửi trong cùng một biểu mẫu? Bạn có đầu vào loại gửi mà không có nhãn văn bản được xác định trước (giá trị = "Nhãn văn bản của nút") và nút gửi loại được gọi là "Lưu". Khi tôi nhấp vào đầu vào của loại gửi tôi không gửi biến "btnUpdateNew" bởi vì đầu vào gửi này không có tên. Khi tôi nhấp vào nút Lưu, tôi gửi biến "btnUpdateNew" vì tên này được xác định trong nút này, do đó, đoạn dưới đây được truy cập: nếu (isset ($ _ POST ["btnUpdateNew"])) { echo "hfvghfhgfhgf enter"; ... –

Trả lời

4

Mã bạn gửi chứa 2 nộp-nút (1 < nút>, 1 < kiểu đầu vào = "submit">. Tùy thuộc vào nút được nhấn, một giá trị khác thực sự được gửi. Tôi đoán rằng biểu mẫu chỉ thêm nút (Hoặc loại element = nộp) mà đã thực sự nhấp vào POST dữ liệu (có ý nghĩa từ một giao diện người dùng quan điểm)

Tùy vào nút ép tôi hoặc là có

Array ([btnsubmit] => Verzenden) 

hoặc

Array ([btnUpdateNew] => btnUpdateNew) 

("Verzenden" là bản dịch tiếng Hà Lan để gửi, khi trình duyệt dịch này)

Vì vậy, có thể bạn đã nhấn nhầm nút bởi bất kỳ cơ hội nào?

<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> 
+0

Câu trả lời của bạn là chính xác. –

0

Tôi nghĩ rằng trong ViewTeacherPage(where button gets clicked) của bạn, bạn quên để đóng thẻ <?php trước phần tử <form>.

+0

Không, đã đóng trong mã ban đầu. –

0

Tệp ViewTeacherPage.php của bạn. Trong tập tin này Ba dòng cuối cùng cho mã html là chính xác. Nhưng bạn có thể đặt mã này bên trong thẻ php. Vì vậy, lần đầu tiên đóng thẻ php. Sau khi đặt mã html của bạn.

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

</form> 
?> 

Để Thay thế này

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

Tôi nghi ngờ có đi một cái gì đó sai trái với các tập tin cần thiết includewisdom/class.user.php. Gần đây bạn có thay đổi tệp đó không? Có thể cũng bị hỏng bảng cơ sở dữ liệu cho dữ liệu người dùng khi cố gắng kiểm tra xem người dùng đã đăng nhập chưa. Hãy kiểm tra cơ sở dữ liệu của bạn và tệp nhật ký lưu trữ xem có bất kỳ lỗi nào không.

Những điều cần làm gì để gỡ lỗi này

  1. Đặt error_reporting(E_ALL); ở phía trên và sau đó tạo ra một phép chia cho không cảnh báo và ném một lỗi tùy chỉnh để xem nếu PHP lỗi đang làm việc:

    <?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(); 
    

    Nếu bạn thấy cảnh báo lỗi nghiêm trọng thì bạn có thể thấy lỗi và bạn có thể tiếp tục e. Cũng cố gắng để ném một lỗi tùy chỉnh imidiately sau $user_home = new USER();; có thể có một số mã khác bên trong class.user.php vô hiệu hóa error_reporting.

  2. Trực tiếp đặt phát hiện POST ngay sau khi error_reporting(E_ALL);

    <?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(); 
    

    Nếu bạn không thấy thông báo, kịch bản PHP không thực hiện ở tất cả và có thể có một số người sử dụng máy chủ hạn chế hồ bơi cho người dùng hiện tại đang chạy tập lệnh PHP view_teacherupdate.php trong trang web cụ thể đó. Nếu bạn thấy số POST btnUpdateNew exists sau khi bạn đăng biểu mẫu, thì biểu mẫu là OK và sự cố ở đâu đó tại quản lý người dùng gọi new USER(); hoặc $user_home->is_logged_in(). Có thể có điều gì đó kích hoạt một số exit. Để kiểm tra điều này, hãy cố gắng in một cái gì đó sau khi kiểm tra và gọi $user_home->is_logged_in() chức năng như thế này:

    <?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>"; 
    

    Nếu bạn không thấy thông báo, sau đó bạn có vấn đề và đó là hidding insinde lớp user managment; tại mã của nó hoặc logic hoặc có thể một số dữ liệu tham nhũng khi cố gắng đọc thông tin người dùng từ cơ sở dữ liệu.

    Nếu bạn thấy thông báo "Người dùng đăng nhập", sau đó đặt một bài debug ở đầu view_teacherupdate.php như thế này:

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

    với điều này, bạn sẽ tìm hiểu chính xác những gì các mảng $_POST chứa khi tập lệnh nhận dữ liệu POST.

    Sau đó kiểm tra dữ liệu POST và vui lòng cập nhật câu hỏi của bạn với kết quả!

Các vấn đề liên quan