Ваш код полон дыр в безопасности. Это склонно к SQL-инъекциям, xss-атакам, CSRF, HTML-инъекциям.
Я переписал его, чтобы обойти все проблемы.
1.) Sql Injection теперь смягчается с помощью подготовительных запросов
2.) Внедрение HTML смягчается с помощью intval для целочисленных переменных и strip_tags для строк. Вы можете прочитать больше о проверке и очистке данных в php, чтобы увидеть больше доступных опций
3.) xss атака была смягчена с помощью htmlentities () . Вы также можете использовать htmlspecialchars () . Узнайте больше обо всех этих вещах
см. Более надежные коды ниже
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ur dbname";
// Create connection
$connect = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($connect->connect_error) {
die("Connection failed: " . $connect->connect_error);
}
// ensure that the Id is integer using intval
$id = intval($_GET["id"]);
// if id is a string. you can strip all html elements using strip_tags
//$id = strip_tags($_GET["id"]);
//Avoid sql injection using prepared statement
// prepare and bind
$stmt = $connect->prepare("SELECT name, age , xxxxx, image FROM profiles WHERE id = ? LIMIT 1");
// id is integer or number use i parameter
$stmt->bind_param("i", $id);
// id is integer or number use s parameter
//$stmt->bind_param("s", $id);
$stmt->execute();
$stmt -> store_result();
$stmt -> bind_result($name, $age, $xxxxx, $image);
while ($stmt -> fetch()) {
// ensure that xss attack is not possible using htmlentities
echo "your Name: .htmlentities($name). <br>";
echo "your age: .htmlentities($age). <br>";
echo "your xxxxx: .htmlentities($). <br>";
echo "your image name: .htmlentities($image). <br>";
}
$stmt->close();
$connect->close();
?>