私はWebサイトをcPanelホスティングに、PHP 5.1から5.4に移動しています。この動きで動かないのは、MySqlデータ挿入後にindex.phpページに戻ることだけです。データはOKに挿入されますが、index.phpページの代わりに空白のページが表示されます。cPanel PHP 5.1から5.4の変更、ヘッダー(場所:index.php)
私はフォーラムを研究し、私が観察したアイデアを使用しています:PHPコードのスペースを削除しました。スクリプトの中でヘッダ(Location:index.php)を動かしました。 Location:とindex.phpの間にスペースがありますが、挿入後にindex.phpページを表示することはできません。 URLはブラウザの行にあり、クリックするとページが更新されます。これは過去に自動的に起こりました。ここで
はコードです:
<?php
function renderForm($mscdate, $mscname, $mscaffirm, $mscstatus, $error)
{
?>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script type="text/javascript">
$(function() {
$('#datepicker').datepicker({dateFormat: 'MM d, yy', altField: '#dbDate', altFormat: 'yy-mm-dd'});
});
</script>
<?php
}
include('connect to database');
if (isset($_POST['submit']))
{
$mscdate = mysqli_real_escape_string(htmlspecialchars($_POST['mscdate']));
$mscname = mysqli_real_escape_string(htmlspecialchars($_POST['mscname']));
$mscaffirm = mysqli_real_escape_string(htmlspecialchars($_POST['mscaffirm']));
$mscstatus = mysqli_real_escape_string(htmlspecialchars($_POST['mscstatus']));
if ($mscdate == '' || $mscname == '' || $mscaffirm == '')
{
$error = 'ERROR: Please fill in all required fields!';
renderForm($mscdate, $mscname, $mscaffirm, $mscstatus, $error);
} else {
mysqli_query("INSERT mscrides SET mscdate='$mscdate', mscname='$mscname', mscaffirm='$mscaffirm', mscstatus='$mscstatus'")
or die(mysqli_error());
header("Location:index.php");
}
}else { // if the form hasn't been submitted, display the form
renderForm('','','','','');
}
?>
ブラウザに送信される出力がないことを確認し、 'header()'関数を呼び出す前に空白行がないことを確認してください。https://secure.php.net/manual/en/function.header.php –
あなたがそれを見逃した場合:http://php.net/supported-versions.php –
SQLパラメータのエスケープは理想的ではなく、セキュリティ上の脆弱性の影響を受ける可能性があります。 – halfer