내 "양식"을 실행하려고하는데 빈 페이지가있는 두 번째 페이지에서 멈춰 세 번째 페이지로 데이터를 전달하지 못했습니다.

Sai

이것은 내 PHP 코딩입니다. 내 템플릿 양식에서 가져 왔습니다.

가장 이상한 점은 템플릿에서이 코딩을 실행하려고 할 때 출력을 얻었고 데이터를 검색했지만이 코딩을 프로젝트 할당에 실행하려고하면 빈 페이지가 나옵니다.

 <?php
    include"conn.php";
    $conn = connect();
    $db = connectdb();

    $wardID =$_REQUEST["wardID"];
    $RequestName = $_REQUEST["RequestName"];
    $Department =$_REQUEST["Department"];
    $Position = $_REQUEST["Position"];
    $Date = $_REQUEST["Date"];
    $TypeOfRequest = $_REQUEST["TypeOfRequest"];
    $PleaseSpecify = $_REQUEST["PleaseSpecify"];
    $DateRequire = $_REQUEST["DateRequire"];
    $DateReturn = $_REQUEST["DateReturn"];

    mysqli_select_db($conn,"misadmin") or die (mysqli_connect_error()."\n");

    //select from the table student
    $query = "select * from misform" ;
    //to return the query that has been request from the database 
    $result = $conn ->query($query);

    //Fetch a result row as an associative array
    $row=mysqli_fetch_assoc($result);
    //Select a MySQL database
    mysqli_select_db($conn,"misadmin")or die (mysqli_connect_error()."\n");

    $insert ="insert into misform(WardID,RequestName,Department,Postion,Date,TypeOfRequest,PleaseSpecify,DateRequire,DateReturn) values ('$wardID','$RequestName','$Department','$Position','$Date','$TypeOfRequest','$PleaseSpecify','$DateRequire','$DateReturn')";
    $rowinsert =$conn ->multi_query($insert) or die (mysqli_connect_error()."\n");

    header("Location:requestform3.php");
    ?>

여기 내 인맥이있다

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$host_user="localhost";
$user_user="root";
$password_user="";

function connect (){
    $conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
return $conn;
}

function connectdb(){
    $conndb="misadmin";
    return $conndb;
}
?>
</body>
</html>

여기 내 HTML입니다

<body>
<form id="requestform" action="requestform2.php" method="post" >
<div><center><table border = "0" cellspacing="0" cellpadding"4"><tr><td>
<fieldset>
<legend>Request Form</legend>
<div id="errorDiv"></div>

<table><tr>
<td><label for="wardID">Ward ID:*</label></td>
<td><input type="text" id="wardID" name="wardID">
<span class="errorFeedback errorSpan" id="WardIDError"> Ward ID is required</span></td>
</tr>

<tr>
<td><label for="RequestName">Request Name:</label></td>
<td><input type="text" id="RequestName" name="RequestName"></td>
</tr>

<tr>
<td><label for="Department">Department:</label></td>
<td><input type="text" id="Department" name="Department"></td>
</tr>

<tr>
<td><label for="Position">Position:</label></td>
<td><input type="text"id="Position" name="Position"></td>
</tr>

<tr>
<td><label for="Date">Date:</label></td>
<td><input type="date" id="Date" name="Date"></td>
</tr>

<tr>
<td><label for="request">Type of request:* </label></td>
<td><select name="TypeOfRequest" id="request">
<option></option>
<option>Hardware</option>
<option>Software</option>
<option>Network</option>
<option>Others</option></select>
<span class="errorFeedback errorSpan" id="requestError">Please choose one</span>
</td></tr>

<tr>
<td></td>
<td><textarea name="PleaseSpecify" id="specify"> Please Specify </textarea>
<span class="errorFeedback errorSpan" id="specifyError">you not specify yet!</span>
</td></tr>

<tr>
<td><label for="DateRequire">Date Require:</label></td>
<td><input type="date" id="DateRequire" name="DateRequire">
</td></tr>

<tr>
<td><label for="DateReturn">Date Return:</label></td>
<td><input type="date" id="DateReturn" name="DateReturn">
</td></tr>

산출

사용자 7941334

1) SQL 문 Postion에서 INSERT잘못된 것 같습니다.

'필드 목록'의 알 수없는 '위치'열

다음을 사용하여 이것을 발견했습니다.

$rowinsert = $conn->multi_query($insert) or die($conn->error . "\n");

대신에:

$rowinsert = $conn->multi_query($insert) or die(mysqli_connect_error() . "\n");

2) header(Location:...)가 처리 될 다음 경고가 발생합니다.

(!) 경고 : 헤더 정보를 수정할 수 없습니다-32 행의 ... / requestform2.php에서 (... / conn.php : 9에서 시작된 출력) 이미 보낸 헤더

문제는 header(Location:...)이 처리 될 때 PHP 엔진이 표시하기 위해 이미 클라이언트 (예 : 브라우저)로 전송 된 것을 발견합니다. 그리고 이것은 허용되지 않습니다. 코드에서 이러한 상황은 "conn.php"내에 HTML 코드가 있기 때문에 나타납니다. 이것은 클라이언트에 대한 출력으로 인식되므로 허용되지 않습니다. 따라서 "conn.php"는 다음과 같아야합니다.

<?php
    $host_user="localhost";
    $user_user="root";
    $password_user="";

    function connect (){
        $conn =mysqli_connect("localhost","root","") or die (mysqli_connect_error()."/n");
        return $conn;
    }

    function connectdb(){
        $conndb="misadmin";
        return $conndb;
    }
?>

내가 어떻게 알았지? 오류보고 및 표시를 활성화했습니다. 그래서 저는이 문장을 사용했습니다

error_reporting(E_ALL);
ini_set('display_errors', 1);

"errorReporting.php"파일에 넣고 개발할 때 "conn.php"앞에 포함시킵니다. 웹 사이트가 제작중인 경우 포함하지 마세요! 오류를 표시하도록 선택하지 않으면 예를 들어 세 번째 페이지로의 리디렉션이 발생하지 않는 이유를 모른 채 빈 페이지 만 수신하는 것입니다.

권장 사항 :

오류 + 예외 처리는 앱에서 가장 중요한 부분 중 하나이며 매우 올바르게 구현되어야합니다. 사용자 입력의 필터링 및 삭제와 함께. 그래서:

  • MySQL 주입을 피하기 위해 준비된 문을 사용하십시오!
  • 예외 처리를 사용하여 앱에서 발생한 예외를 항상 포착하세요.

게시 된 전체 예제 (OOP 및 절차)를 참조하고 내가 보여준 단계를 적용 해보십시오.

그러나 MySQLi 대신 PDO로 변경하는 것이 좋습니다. 이를 위해 해당 예제도 게시했습니다.

행운을 빕니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관