Как выполнить скрипт php для веб-приложения в IntelliJ? - PullRequest
0 голосов
/ 31 января 2019

Я создал скрипт php для своей страницы регистрации, чтобы вставить новые регистрационные данные в базу данных MySQL Workbench, однако, когда я пытаюсь выполнить этот скрипт с помощью кнопки отправки на странице регистрации jsp, весь код php выглядит такочевидно, он не был выполнен.

Я использую редакцию IntelliJ Ultimate, в которой есть плагин PHP.Это веб-приложение, которое я развертываю с помощью tomcat

. Я также пытался поместить теги до и после кода PHP, чтобы проверить, не было ли это просто ошибкой в ​​отображении вывода, но это не решило проблему.

Это соответствующие части jsp-страницы регистрации, которые собирают вводимые пользователем данные и затем публикуют их:

<form action="registered.php" method="POST">
 .............
 <input type="submit" value="Submit"/>
</form>

Вот скрипт php, который я пытаюсь выполнить:

<?php
$host_name = $_POST[host_name];
$host_password = $_POST[host_password];
$f_name = $_POST[f_name];
$s_name = $_POST[s_name];
$gender = $_POST[gender];
$house_num = $_POST[house_num];
$road = $_POST[road];
$city = $_POST[city];
$postcode = $_POST[postcode];
$country = $_POST[country];
$mobile = $_POST[mobile];
$dob = $_POST[dob];

if (!empty($host_name) || !empty($host_password) ||!empty($f_name) ||!empty($s_name) || !empty($gender) || !empty($house_num) || !empty($road) || !empty($city) || !empty($postcode) || !empty($country) || !empty($mobile) || !empty($dob)) {

$host = "jdbc:mysql://localhost/project";
$username = "projectuser";
$password = "test123";

$conn = new mysqli($host, $username, $password);
if (mysqli_connect_error()) {
    die('Connect Error(' . mysqli_connect_errno() . ')' . mysqli_connect_error());
} else {
    $SELECT = "SELECT host_name FROM hosts WHERE host_name = ? Limit 1";
    $INSERT = "INSERT INTO hosts (host_name, host_password, f_name, s_name, gender, house_num, road, city, postcode, country, mobile, dob) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    $stmt = $conn->prepare($SELECT);
    $stmt->bind_param("s", $host_name);
    $stmt->execute();
    $stmt->bind_result($host_name);
    $stmt->store_result();
    $rnum = $stmt->num_rows;
    if ($rnum == 0) {
        $stmt->close();
        $stmt = $conn->prepare($INSERT);
        $stmt->bind_param("sssssissssss", $host_namename, $host_password, $f_name, $s_name, $gender, $house_num, $road, $city, $postcode, $country, $mobile, $dob);
        $stmt->execute();
        echo "You have registered successfully";
    } else {
        echo "Someone already registered with this username";
    }
    $stmt->close();
    $conn->close();
}
}else{
    echo "All field are required";
    die();
}
?>

Это результат: enter image description here

1 Ответ

0 голосов
/ 31 января 2019

Ваша проблема здесь в том, что Apache Tomcat является контейнером Java-приложения и не выполняет код PHP.

Запускает ли этот сценарий через PHP и не вставляет данные через JSP или сервлет, не вариант?

Если вам по какой-то причине нужно запустить PHP, возможно Этот вопрос поможет вам

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