所以我被要求使用html表單向這個數據庫插入行。以下是表單的代碼:PHP文件多次檢查後沒有顯示任何內容
<html>
<body>
<div id="header1">
<h1>Donar d'alta un client</h1>
</div>
<hr>
<form action="alta.php" method="post">
Numero: <input type="text" name="cnumero" /><br>
Nom: <input type="text" name="cnom" /><br>
Adreca: <input type="text" name="cadreca" /><br>
Codi Postal: <input type="text" name="ccp" /><br>
Poblacio: <input type="text" name="cpob" /><br>
Dni: <input type="text" name="cdni" /><br>
Email: <input type="text" name="cemail" /><br>
<input type="submit" value="Afegeix" />
</form>
<hr>
</body>
</html>
這是一個正常的形式,沒有什麼特別的,它的工作原理。 現在問題來了。在文件alta.php中,我有PHP代碼將所有這些信息插入到現有表的一行中。該表稱爲CLIENT,它具有所有這些參數以及另外3個參數,當您添加新行時,這些參數必須爲NULL。下面是alta.php的代碼:
<html>
<body>
<?php
include 'vars.php';
ini_set('display_errors', 1);
error_reporting(E_ALL);
$numero= $_POST['cnumero'];
$nom= $_POST['cnom'];
$adreca= $_POST['cadreca'];
$codi_postal= $_POST['ccp'];
$poblacio= $_POST['cpoblacio'];
$dni= $_POST['cdni'];
$email= $_POST['cemail'];
$conn = oci_connect('u*******', 'u*******', '********');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['No em connectat a la BD'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, "INSERT INTO client
(client_num, client_nom, client_adreca, client_codi_postal, client_poblacio, client_dni, client_email)
VALUES
(:client_num, :client_nom, :client_adreca, client_codi_postal, :client_poblacio, :client_dni, :client_email)");
oci_bind_by_name($stid, ":client_num", $numero);
oci_bind_by_name($stid, ":client_nom", $nom);
oci_bind_by_name($stid, ":client_adreca", $adreca);
oci_bind_by_name($stid, ":client_codi_postal", $codi_postal);
oci_bind_by_name($stid, ":client_poblacio", $poblacio);
oci_bind_by_name($stid, ":client_dni", $dni);
oci_bind_by_name($stid, ":client_email", $email);
$r = oci_execute($stid);
if ($r) { echo 'Client afegit correctament.'; }
if (!$r){ echo 'Hi ha hagut un error.'; }
oci_free_statement($stid);
oci_close($conn);
?>
<br><br><br>
<div id="tornar">
<li><a href="index2.html">Tornar a l'inici</a></li>
</div>
</body>
</html>
問題是我的瀏覽器口口聲聲說有一個「內部服務器錯誤」。所以顯然有一段這段代碼不起作用。你們能幫我一下嗎?我花了太多時間思考它,我看不出有什麼不對。
非常感謝!
'內部服務器錯誤'表示_go檢查您的錯誤日誌_!這也意味着你需要啓用'display_errors'。 'ini_set('display_errors',1); error_reporting(E_ALL);' –
你在遠程服務器上運行/測試它嗎?如果是這樣,最好的做法是在自己的計算機上編輯它,在那裏調試它,然後進行部署。 – halfer
不要在生產性服務器上啓用display_errors。這會將內部信息暴露給用戶。 – sfx