【发布时间】:2023-03-24 10:55:01
【问题描述】:
我已经在本地服务器上运行它并且运行良好,但是当我将它上传到我的虚拟主机时,它停止运行。 基本上,当我提交表单时,浏览器只会继续加载,而当我检查数据库时,没有插入任何数据。 我检查了我的数据库连接,我能够连接它,但无法从中获取数据。
这是我的 php:
<?php
$servername = "localhost";
$username = "itclubac_root";
$password = "*******";
$dbname = "itclubac_itclub";
$tnp = 0;
$name = $_POST['name'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$phone = $_POST['phone'];
$id = $_POST['id'];
$section = $_POST['section'];
$skills = $_POST['skills'];
$interests = $_POST['interests'];
$expectations = $_POST['expectations'];
$tnp = $_POST['tnp'];
$ip = $_SERVER['REMOTE_ADDR'];
if ( $tnp == 0 ) {
header('Location: ../../get_involved.php');
} else {
// Create connection
$con = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
$query = mysqli_query($con, "SELECT * FROM member_registration WHERE email = '".$email. "'");
if ( mysqli_num_rows($query) > 0 ) {
header('Location: ../../get_involved.php?status=exist');
} else {
$query = mysqli_query($con, "SELECT * FROM member_registration WHERE college_id = '".$id. "'");
if ( mysqli_num_rows( $query) > 0 ) {
header('Location: ../../get_involved.php?status=exist');
} else {
$sql = "INSERT INTO member_registration (name, email, gender, phone_no, college_id, section, skills, interests, expectations, ip_address) VALUES ('$name', '$email', '$gender', '+880$phone', '$id', '$section', '$skills', '$interests', '$expectations', '$ip')";
if ($con->query($sql) === TRUE) {
header('Location: ../../get_involved.php?status=success');
}
}
}
}
$con->close();
?>
编辑
这是网站:Form Pagehttp://itclub.acc.edu.bd/get_involved.php 如果您在这里注册,页面将继续加载。但是,如果您尝试直接访问registration.php,它会将您发送到我所说的表单页面 页面。当我在本地对其进行测试时,它运行良好,但是在上传到主机后出现了这个问题。
【问题讨论】:
-
您意识到您忘记了
'skills', 'interests', 'expectations'的$符号 -
另外,我们也不知道您的 POST 数组是否包含值。你根本没有错误检查。
-
Little Bobby 说 your script is at risk for SQL Injection Attacks. 了解有关 MySQLi 的 prepared 语句。即使escaping the string 也不安全!
-
我不会猜到这个,但我可以,但我不会。祝你好运。
-
@Fred-ii- 我修正了错字,但它仍然不起作用:/