Недавно я пытался реализовать свой новый проект веб-приложения. У меня весь код работал на локальном сервере XAMPP с использованием типичного стека LAMP. Но теперь, когда я делаю его живым, я заметил, что когда у меня есть оператор INSERT в моем PHP-коде, сервер всегда будет возвращать ошибку 500. Но когда у меня есть статическая страница или просто инструкция SELECT, все работает нормально.
Я уже предоставил все привилегии и даже вошел в систему как пользователь root в своем заявлении о подключении php/mysql, но это не помогло.
<?php
$conn= new mysqli ('localhost','username','password','ips');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$insert = "INSERT INTO ipaddr (ip) VALUES ($_POST['ip'])"; ?>
<form action = "index.php" method = "POST" style = "visibility: visible;">
<input type = "password" name = "ip" value=<?php echo($_SERVER['REMOTE_ADDR'])?>/>
это приводит к ошибке 500, но аналогичный скрипт только с оператором SELECT (например, с трюком в интернет-магазине) работает нормально.
Обновлено: мне было указано, что я использовал неправильное имя переменной в сценарии, однако это не исправило его, поэтому вопрос остается в силе.
Вы пытались удалить скобки из эха ($_SERVER['REMOTE_ADDR'])
if (isset($_POST['ip'])) { $insert = "INSERT ...@AlonEitan упс, это была проверка работоспособности, которую я скопировал и вставил откуда-то еще, но даже если я ее исправлю, это не решит проблему






Вы должны использовать инициированную переменную $mysqli ниже вместо $conn,
$mysqli = new mysqli ('localhost','username','password','ips');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
Я отформатировал ваш код, как показано ниже,
<?php
$mysqli = new mysqli ('localhost','username','password','ips');
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
if (isset($_POST['ip'])) {
$ip_address = $_POST['ip'];
$insert = "INSERT INTO ipaddr (ip) VALUES ('{$ip_address}')";
}
?>
<form action = "index.php" method = "POST" style = "visibility: visible;">
<input type = "password" name = "ip" value = "<?= $_SERVER['REMOTE_ADDR'] ?>"/>
</form>
да, я только что заметил это, однако, если я исправляю имя переменной, я все равно получаю ошибку 500, и я не получаю сообщения об ошибке. Спасибо хоть
И не интерполируйте, связывайте.
Почему вы сохраняете соединение в
$mysqli, а затем используете$conn- Откуда это взялось?