theRealGreenz1 Ответов: 1

Сервер и клиент не могут взаимодействовать


Я написал очень простую PHP-программу следующим образом этот руководство. Я использую Панель управления XAMPP v3.2.2, и в ней я использую Apache и MySQL. Когда я пытаюсь отправить for я получаю следующую ошибку
Cannot POST /connect.php
Когда я открываю
localhost/test/connect.php
через браузер, то он показывает следующую ошибку
Fatal error: Function name must be a string in ..\xampp\htdocs\test\connect.php on line 7


Ошибка изолирована только для публикации. Читать до конца

Вот HTML-код.
<?php
include('connect.php');
?>
<!DOCTYPE html>
<html>
    <title>test PHP</title>
    <body>
        <form name="user reg" method="post" action="connect.php">
            <input type="text" name="firstName" value="">
            <input type="text" name="userName" value="">
            <input type="submit" name="submit" value="Submit">
        </form>
    </body>
</html>


И PHP

<?php
$servername = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "testdb";

$firstName = $_POST('firstName');
$userName = $_POST('userName');

$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);

if($conn->connect_error){
    die("Connection Failed: ".$conn->connect_error);
}
if(empty($firstName)){
    echo "enter the first name";
    die();
}
if(empty($userName)){
    echo "enter the user name";
    die();
}

$sql = "INSERT INTO registeredusers (firstName, userName)
    VALUES('$firstName', '$userName')";

if($conn->query($sql) === TRUE){
    echo "data has been entered";
}else{
    echo "error". $sql."<br>".$conn->error;
}

$conn->close;
?>


Что я уже пробовал:

Я также заглянул в этот это не помогло. После выбора предложенных изменений, как показано на рисунке,
$firstName = $_POST['firstName'];
$userName = $_POST['userName'];

Это дало следующую ошибку.

Notice: Undefined index: firstName in C:\xampp\htdocs\test\connect.php on line 7
Notice: Undefined index: userName in C:\xampp\htdocs\test\connect.php on line 8
enter the first name

После аналогичного пост решение и редактирование php. ini. Здесь в нем говорится, что редактирование файла php.ini не требуется, так как XAMPP имеет все необходимые разрешения, необходимые в Windows.

После удаления $_POST из
$firstName = $_POST['firstName'];
$userName = $_POST['userName'];

и установив переменные в какую-то строку, я могу сохранить данные в MySQL

Вы можете следить здесь.

1 Ответов

Рейтинг:
1

Peter Leow

Вы правы для этих исправлений:

$firstName = $_POST['firstName'];
$userName = $_POST['userName'];

Затем посмотрите на поток вашей программы, которую вы включили 'connect.php-и его код будет выполняться каждый раз при загрузке страницы. Что случилось потом? Две переменные $_POST не существуют! Это вызывает ошибку.
Решение состоит в том, чтобы использовать условие if для проверки существования этих двух переменных $_POST, прежде чем приступить к остальной части PHP-кода, т. е.
if(isset($_POST['firstName'] && $_POST['userName']){
    $firstName = $_POST['firstName'];
    $userName = $_POST['userName'];
    // other code
}


theRealGreenz1

Спасибо Питеру Леоу, я внесу эти изменения.