Прогресс генерирует 500 внутренних ошибок сервера на сайте файла PHP (vip_reg.php), я упростил и удалил некоторые избыточные коды/комментарии, но все равно получаю 500 ошибка. Как только я сделал недопустимые данные (неверный номер телефона/неверный формат электронной почты) и отправил на сервер, он ничего не показывает и останавливается на php-странице. Вызывает ли инструкция mysqli сбой программы, или HTML не является хорошо структурированным?Публикация формы на PHP получает 500 ошибок (Внутренняя ошибка сервера)
Я очень новичок в PHP и mysqli, извините, если это глупый вопрос. Итак, любой намек или предложение будут очень благодарны и благодарны. Спасибо всем.
HTML файл:
......<div class='rows'>
<div class='col_left'>
<img src='imageabc.jpg' id='left_img' alt='test'>
</div>
<form action="vip_reg.php" method="POST"><!--Post data to PHP-->
<div class='col_right'>
<p><span class="txtDesc">Your Name</span><span class="txtField"><input type='text' name='vipName' id='vipName' size='40' autocomplete="off" /></span></p> <?php echo $errorMsg; ?><br/><br/>
<p><span class="txtDesc">Phone Number</span><span class="txtField"><input type='tel' name='telNum' id='telNum' size='40' maxlength='8' autocomplete="off"/></span></p><?php echo $errorTel; ?><br/><br/>
<p><span class="txtDesc">Email Address </span><span class="txtField"><input type='text' name='email' id='email' size='40' autocomplete="off"/></span></p><?php echo $errEmail; ?><br/><br/>
<p><span class="txtDesc">Car Number</span><span class="txtField"><input type='text' name='carNum' id='carNum' size='40' autocomplete="off"/></span></span></p><?php echo $errCarNum; ?><br/><br/>
<p><span class="txtDesc">Verification</span><span class="txtField"><span class='g-recaptcha' data-sitekey='xxxxxxxx Google recaptcha-secret-key'></span></span></p><?php echo $errorMsg; ?><br/>
</div>
</div>
<div class='rows'>
<div class='button_Style'>
<input type="image" name="submit" id="submit"src="image/submit_btn.jpg" alt="submit" />
</div>
</form>......
PHP файл:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(!empty($_POST['vipName'])&& !empty($_POST['telNum'])&& !empty($_POST['email']&& !empty($_POST['carNum']))){
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){ //detect user clicks recaptcha or not
$recaptcha=$_POST['g-recaptcha-response'];
include("getCurlData.php");
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='google-secret-key';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=getCurlData($url);
$res= json_decode($res, true);
if($res['success']){ //Get POST Data
$name_vip = htmlspecialchars($_POST['vipName']);
$telNumber = htmlspecialchars($_POST['telNum']);
$email = htmlspecialchars($_POST['email']);
$carNum = htmlspecialchars($_POST['carNum']);
//validation
$result = mysqli_query($con, "SELECT car_num FROM vip_register WHERE username='$carNum'");
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result)==1){ //unique
$errorCarNum = "The Car Plate Number is existed, please check.";
return true;
}elseif(strlen($telNumber)!=8){
$errTel = "Telephone number must be 8 digits.";
return false;
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) { //validate email
$errEmail = "The format of Email address is invalid.";
return false;
}else{ //success
echo "OK";
$vip = mysqli_real_escape_string($_POST['$name_vip']);
$tel = mysqli_real_escape_string($_POST['telNumber']);
$emailAddress = mysqli_real_escape_string($_POST['$email']);
$carNumber = mysqli_real_escape_string($_POST['$carNum']);
//insert into DB
$sql_vip="INSERT INTO `vip_register` (`name`, `tel`, `email`, `car_num`) VALUES ('$vip', '$tel', '$emailAddress', '$carNumber')";
$uploadSQL = $dbConn->prepare($sql_vip);
$uploadSQL->execute();
//clear the error msg
$name_vip = $telNumber = $email = $carNum = "";
$errorMsg = $errTel = $errEmail = $errCarNum = "";
//turn it to success page
//header("Location:xxx.php");
}
}
}else{
$errorMsg = $errTel = $errEmail = $errCarNum = "It should not be blank.";
return false;
}
}
Вы проверили журналы ошибок сервера? PHP * обычно * очень хорошо говорит вам, что сломано. –
'mysqli_real_escape_string()' RTM для этой функции. http://php.net/manual/en/mysqli.real-escape-string.php –
Затем вы используете 'mysqli_query ($ con' <<< и' $ uploadSQL = $ dbConn' <<< so, что один из них? '$ con' или' $ dbConn'? –