2016-11-22 2 views
0

Я видел много похожих вопросов на этом сайте, но еще не нашел решение для моего кода. Я использовал if (isset ($ _ POST ['submit'])) {}, а инструкции if - вместе с ним, чтобы попытаться остановить мой скрипт от вставки пустых данных поля формы, но он еще не сработал. Просто примечание; Я знаю о недостатках безопасности в моем коде. Я просто пытаюсь держать его просто так будет проще для всех, чтобы помочь мне :) Вот что у меня есть:MySQL и PHP-код, позволяющий заполнять полевые данные формы

<body> 

    <?php 

    if (isset($_POST['submit'])) { 

    $dbc = mysqli_connect('localhost', 'username', 'password', 'bcd_email_app') 
    or die('Error connecting to MySQL server'); 

    $query = "INSERT INTO email_subscribers (name, username, email)" . 
    "VALUES ('$name', '$username', '$email')"; 

    mysqli_query($dbc, $query) 
    or die('Error querying database'); 

    echo 'Thanks for subscribing '. $username .'!!<br />'; 
    echo '<a href="index.php">Go Back</a>'; 

    mysqli_close($dbc); 

    $name = $_POST['name']; 
    $username = $_POST['username']; 
    $email = $_POST['email']; 

    $output_form = false; 

    //checking that all form fields have been filled out and if not displaying the form with sticky data 
    if (empty($name) && (empty($username) && (empty($email)))) { 
     echo 'Please enter your information for all fields. <br />'; 
     $output_form = true; 
    } 
    if (empty($name) && (!empty($username) && (!empty($email)))) { 
     echo 'Please enter your name. <br />'; 
     $output_form = true; 
    } 
    if (!empty($name) && (empty($username) && (!empty($email)))) { 
     echo 'Please enter your username. <br />'; 
     $output_form = true; 
    } 
    if (!empty($name) && (!empty($username) && (empty($email)))) { 
     echo 'Please enter your email address. <br />'; 
     $output_form = true; 
    } 
    if (empty($name) && (empty($username) && (!empty($email)))) { 
     echo 'Please enter your name and username. <br />'; 
     $output_form = true; 
    } 
    if (empty($name) && (!empty($username) && (empty($email)))) { 
     echo 'Please enter your name and email address. <br />'; 
     $output_form = true; 
    } 
    if (!empty($name) && (empty($username) && (empty($email)))) { 
     echo 'Please enter your username and email. <br />'; 
     $output_form = true; 
    } 
} else { 
    $output_form = true; 
} 
if ($output_form) { 

    ?> 

Форма Markup Здесь

</body> 

Я также попытался сказать, если имя & & имя пользователя & & электронной почты не пуста, как это:

if (isset($_POST['submit'])) && (!empty($_POST['name'])) && (!empty($_POST['username'])) && (!empty($_POST['email']))) {...} 

Wi й пост, и это ничего не делало. Есть ли решение? Я сделал это совершенно неправильно? lol

Заранее благодарим за вашу помощь!

+0

Почему бы вам не ввести поле ввода? Также отсутствует разметка формы? – Mitch

+0

'' и вы закончили – Irvin

+0

подтвердите поля ввода на стороне клиента – user3040610

ответ

0

Как вы предполагаете не вставить пустые данные, если вы проверяете после вставки его в БД?

Сначала подтвердите данные и покажите сообщение об ошибке, если ваши данные пустые и вставьте их в db, только если ваша проверка прошла успешно.

+1

Это было действительно очень полезно! Я закончил создание другого, если в конце пустых полевых проверок проверено, чтобы убедиться, что ни одно из полей не было пустым, и если ни один из них не был подключен к базе данных. Кажется, все отлично работает. Благодаря!! – artwired

0

Я использую StrLen

if (strlen($_POST['name']) > 0 and strlen($_POST['email']) > 0){ 
    //do stuff 
} 

или

if (strlen($_POST['name']) < 1){ 
    //do other stuff 
} 
+0

и почему это лучше, чем пусто? – 2oppin

+0

Я столкнулся с ситуациями, когда пустые не совпадали. Я не помню точного сценария. Мне просто не нравится идея, если isset, потому что var установлен, его просто ничего не значит. он может быть таким же, как и с использованием пустого, я только что нашел больше успеха с strlen – bart2puck

+0

, рассмотрев это: strlen (0) , и я говорю о пустом не isset. – 2oppin

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