Разрешена вставка формы PHP в пустые значения MySQL - PullRequest
0 голосов
/ 12 августа 2011

У меня есть форма, которая отправляет в файл php, который вставляет данные в таблицу в MySQL, есть некоторые поля в этой форме, которые могут не заполняться, и если это так, запись не вставляется, даже если я установили поле в MySQL, чтобы принимать нули

Мой код

<?php
    session_start();
    include "includes/connection.php";

    $title          = $_POST['inputTitle'];
    $firstname      = $_POST['inputFirstname'];
    $lastname       = $_POST['inputLastName'];
    $address1       = $_POST['inputAddress1'];
    $address2       = $_POST['inputAddress2'];
    $city           = $_POST['inputCity'];
    $county         = $_POST['inputCounty'];
    $postcode       = $_POST['inputPostcode'];
    $email          = $_POST['inputEmail'];
    $homephone      = $_POST['inputHomephone'];
    $mobilephone    = $_POST['inputMobilephone'];
    $userid         = $_POST['inputUserID'];

    if($title == '' || $firstname == '' || $lastname == '' || $address1 == '' || $address2 == '' || $city == '' || $county == '' || $postcode == '' || $email == '' || $homephone == '' || $mobilephone == '' || $userid == ''){
        $_SESSION['status'] = 'error';
    } else {
        mysql_query("INSERT INTO contact
                (`id`,`user_id`,`title`,`firstname`,`lastname`,`address1`,`address2`,`city`,`county`,`postcode`,`email`,`homephone`,`mobilephone`)
VALUES(NULL,'$userid','$title','$firstname','$lastname','$address1','$address2','$city','$county','$postcode','$email','$homephone','$mobilephone')") or die(mysql_error());
        $_SESSION['status'] = 'success';
    }
    header("location: contacts.php");
?> 

Может кто-нибудь сказать мне, что мне нужно изменить, чтобы решить эту проблему?

Лучший

Justin

P.s Извините, если кодовый блок немного длинный, но я думаю, что он уместен в этом вопросе.

1 Ответ

2 голосов
/ 12 августа 2011

Вы должны изменить свое назначение (для пустых столбцов), например

$title = empty( $_POST['inputTitle'] )
 ? 'NULL'
 : "'" . mysql_real_escape_string( $_POST['inputTitle'] ) . "'"
;

И в своем запросе вы должны удалить кавычки вокруг переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...