TheBigBearNow Ответов: 1

Phpmyadmin простой вопрос


У меня есть очень простая PHP-программа, над которой я работаю только для того, чтобы немного освежиться, и я не могу получить никаких эхо-сигналов, а также данные не вставляются в базу данных. Может ли кто-нибудь объяснить мне мою ошибку? Также для отладки php я просто добавляю “error_reporting(-1); " в PHP-код?

Вот что у меня есть для простых данных.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>login test</title>
		
	</head>
	<body>
		<form action="signup.php" method="POST">
			<input type="text" name="first" id="first" placeholder="first name" /><br>
			<input type="text" name="user" id="user" placeholder="user name" /><br>
			<input type="password" name="pass" id="pass" placeholder="password" /><br>
			<button type="submit">Sign up</button>
		</form>
	</body>
</html>

Conn.php
<?php
		
	$conn = mysqli_connect("localhost", "root", "", "test");
	
	if(!$conn) {
		die("Connection failed: " . mysqli_connect_error());
	}

Signup.php
<?php

	include 'conn.php';
	
	$first = $_POST['first'];
	$user = $_POST['user'];
	$pass = $_POST['pass'];
	
	echo $first;
	echo $user;
	echo $pass;
	
	$sql = "INSERT INTO user (first, user, pass) 
			VALUES ('$first', '$user', '$pass')";
			
	$result = mysqli_query($conn, $sql);
	
	header("Location: register.php");


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

обработка ошибок php
повторение данных из текстовых полей на экран и экран остается пустым
я не знаю, почему мое эхо не работает.

1 Ответов

Рейтинг:
0

Peter Leow

Цитата:
я не уверен, почему мое эхо не работает
это происходит потому, что он был перенаправлен на register.php из-за
header("Location: register.php");
Если вы действительно хотите увидеть Эхо-сообщения, то временно закомментируйте их:
//header("Location: register.php");
Цитата:
а также данные не вставляются в базу данных
За исключением других других ошибок, одна очевидная ошибка заключается в том, что вы используете зарезервированное слово в MySQL[^], то есть пользователь как имя таблицы. Большинство зарезервированных слов запрещено стандартным SQL в качестве имени столбца или таблицы. Чтобы обойти его, окружите его парой задних клещей, т. е.
`user`

И последнее, но не менее важное: вы должны усыновить ребенка PHP подготовленные заявления[^] чтобы минимизировать риск SQL-инъекции.