2015-07-27 2 views
-1

После нескольких проб и ошибок, мне удалось определить PHP код, который создает проблемы:

<?php 
    if isset($_POST['hoponhopoff']){ 
    $adults = intval($_POST['bilet_intreg']); 
    $price_adults = $adults * 10; 
    $children= intval($_POST['bilet_redus']); 
    $price_children = $children * 4; 
    $free= intval($_POST['bilet_gratis']); 
    // Added on 27.07.2015 
    $fname= mysqli_real_escape_string($connect, $_POST['fname']); 
    $lname= mysqli_real_escape_string($connect, $_POST['lname']); 
    $email= mysqli_real_escape_string($connect, $_POST['email']); 
    $phone= mysqli_real_escape_string($connect, $_POST['phone']); 
    $address= mysqli_real_escape_string($connect, $_POST['address']); 
    } 
    ?> 

Я попытался удалить условный оператор, попытался с помощью только одной из переменных , пробовал без mysqli_real_escape_string ... ничего не работает. После этой части кода есть куча HTML-кода, и если я удалю эти строки, она отобразится так, как должна. Если я оставлю их нетронутыми, тогда страницы будут отображаться пустым, а не показывать его содержимое. Любые идеи, почему это произойдет?

Примечание: Из-за опечаток в первом коде, который я разместил, я обновил код. Результаты те же, пустая страница.

+2

Проверьте свой '()' ваш недостающий, и у вас слишком много. – Daan

+1

'& _POST' должен быть' $ _POST' в ваших 'mysqli_real_escape_string()' функциях. Кроме того, вам не хватает '()' в вашей инструкции 'if'. – D4V1D

+0

Спасибо, что заметили эти проблемы. Обновил мой вопрос, так как это не решило проблему. –

ответ

2

У вас есть две проблемы в коде.

Во-первых, ваше заявление if должно содержать (): if($bool). Таким образом, ваша первая линия должна быть:

if (isset($_POST['hoponhopoff'])) { // notice the() enclosing the condition 

Во-вторых, вы должны были ваши $_POST[] переменные неправильно в ваших mysqli_real_escape_string() функций. Переменные вызываются с $, а не &. Таким образом, ваш код должен быть такой:

$fname = mysqli_real_escape_string($connect, $_POST['fname']); // notice the $ instead of & 
$lname = mysqli_real_escape_string($connect, $_POST['lname']); // notice the $ instead of & 
$email = mysqli_real_escape_string($connect, $_POST['email']); // notice the $ instead of & 
$phone = mysqli_real_escape_string($connect, $_POST['phone']); // notice the $ instead of & 
$address = mysqli_real_escape_string($connect, $_POST['address']); // notice the $ instead of & 

Использование & перед тем $var (т.е. &$var.) Делает reference к этой переменной.

Смежные вопросы