Пустые данные, хранящиеся по запросу MySQL на странице формы - PullRequest
0 голосов
/ 18 октября 2018

Форма предназначена для захвата нового пользователя и сохранения пользовательских данных в базе данных, за исключением того, что она не сохраняет никаких данных, хотя форма все еще возвращает успешное сообщение.

Страница формы:

<?php

$servername = "*****";
$username = "*****";
$password = "*****";
$database = "*****";

// Create connection
$conn = new mysqli($servername, $username, $password, $database);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";


 ?>


<div class="row">
<div class="col-xs-12">
    <section class="panel">
        <header class="panel-heading">
            <h2 class="panel-title">Laai Nuwe Lid</h2>
        </header>
        <div class="panel-body">
            <form class="form-horizontal form-bordered" action="" 
method="post">

                <p><strong>ID:</strong> Nuwe lid</p>


                                    <div class="form-group">
                    <label class="col-md-3 control-label" 
for="FirstName">Naam:</label>
                        <div class="col-md-6">
                            <input type="text" class="form-control" 
name="FirstName" id="FirstName" value="<?php echo $firstname; ?>">
                        </div>
                </div>  


                                    <div class="form-group">
                    <label class="col-md-3 control-label" 
for="LastName">Van:</label>
                        <div class="col-md-6">
                            <input type="text" class="form-control" 
name="LastName" id="LastName" value="<?php echo $lastname; ?>"'>
                        </div>
                </div>

                <div class="form-group">
                    <label class="col-md-3 control-label" 
for="Cell">Selfoon:</label>
                        <div class="col-md-6">
                            <input type="text" class="form-control" 
name="Cell" id="Cell" value="<?php echo $cell; ?>">
                        </div>
                </div>

                <div class="form-group">
                    <label class="col-md-3 control-label" 
for="Address">Addres:</label>
                        <div class="col-md-6">
                            <input type="text" class="form-control" 
name="Address" id="Address" value="<?php echo $adress; ?>">
                        </div>
                </div>

                                    <div class="row">
                        <div class="col-sm-9 col-sm-offset-3">
                            <button value="submit" type="submit" 
name="submit" class="btn btn-primary">Stoor nuwe lid</button>
                            <button type="reset" class="btn btn- 
default">Kanselleer</button>
                        </div>
                </div>

            </form>
        </div>
    </section>
</div>
</div>


<?php

// check if the form has been submitted. If it has, start to process the 
form and save it to the database

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

// get form data, making sure it is valid

$firstname = 
mysql_real_escape_string(htmlspecialchars($_POST['firstname']));
$lastname = 
mysql_real_escape_string(htmlspecialchars($_POST['lastname']));
$cell = mysql_real_escape_string(htmlspecialchars($_POST['cell']));
$address = mysql_real_escape_string(htmlspecialchars($_POST['address']));


$sql = "INSERT INTO `tblusers` (FirstName, LastName, Cell, Address) VALUES 
('$firstname','$lastname', '$cell','$address')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
 echo "Error: " . $sql . "<br>" . $conn->error;
}

// once saved, redirect back to the view page

header("Location: index.php");

}      
?>  

Я не уверен, связана ли проблема с PHP или кодом SQL, поскольку я не получаю сообщений об ошибках.

База данных подключается нормально.Запрос работает в MySQL напрямую, но когда я объединяю PHP с HTML-формой, он сохраняет пустые строки.

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Код не работает, потому что, когда вы пытались закомментировать часть проверки ', если условие ', вы забыли закомментировать ее ' else условие '.

Я говорю об этой строке:

//if ($firstname == '' || $lastname == '' || $cell == '' || $address == '') {
0 голосов
/ 18 октября 2018

Причина, по которой он не работал, состоит в том, что переменные не были одинаковыми, PHP чувствителен к регистру.Например, фамилия, когда HTML был LastName.

$firstname = 
mysql_real_escape_string(htmlspecialchars($_REQUEST['FirstNameirstname']));
$lastname = mysql_real_escape_string(htmlspecialchars($_REQUEST['LastName']));
$cell = mysql_real_escape_string(htmlspecialchars($_REQUEST['Cell']));
$address = mysql_real_escape_string(htmlspecialchars($_REQUEST['Address']));
0 голосов
/ 18 октября 2018

Пожалуйста, используйте следующую функцию:

$con->mysqli_real_escape_string ( $_POST['...'])

вместо

mysql_real_escape_string(htmlspecialchars($_POST['...']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...