Это моя первая попытка сделать что-то простое с php и mysql. Я в основном просто научился основам модифицировать некоторый пример кода и заставить его работать для моих данных, поскольку я не профессиональный программист.
Во-первых, вот простой код, с которым я работаю:
<?php
$db = mysqli_connect('localhost','root','mypass','test') or die("Error connecting to database: ".mysqli_error());
?>
<?php
$query = $_GET['query'];
$query2 = $_GET['query2'];
$min_length = 3;
if(strlen($query) >= $min_length && (strlen($query2) >= $min_length)){
$query = htmlspecialchars($query);
$query = mysqli_real_escape_string($db, $query);
$raw_results = mysqli_query($db, "SELECT * FROM hope
WHERE ('name' LIKE '%".$query."%') AND ('boop' LIKE '%".$query2."%')") or die(mysqli_error($db));
if(mysqli_num_rows($raw_results) > 0){ // if one or more rows are returned do following
while($results = mysqli_fetch_array($raw_results)){
echo "<p><h3>".$results['name']."</h3>".$results['boop']."</p>";
}
}
else{ // if there is no matching rows do following
echo "No results";
}
}
else{ // if query length is less than minimum
echo "Minimum length is ".$min_length;
}
?>
То, что я пытаюсь сделать, состоит в том, что у меня есть база данных пользователей с их именем и уникальным идентификационным кодом как уникальная личная информация, и у них есть список точек, оставшихся в их учетной записи. Я хочу, чтобы они вводили две части уникальной (но не чувствительной) информации, такие как их идентификационный номер и фамилию, и могли получать количество доступных точек в своем аккаунте. В настоящий момент код не отражает все данные в моем плане, но с ним я могу выполнить поиск, где две части информации должны быть правильными, чтобы отобразить результат.
Моя главная забота заключается в том, что я что-то упустил в отношении безопасности. Информация, доступная в базе данных, не очень чувствительна. Фамилии обычно используются, а уникальный идентификационный номер не имеет большого значения, даже если он известен другому человеку. В худшем случае, если другой пользователь сможет сопоставить кому-то еще фамилию с их идентификационным номером, они смогут найти, сколько точек осталось в их учетной записи, что опять же имеет очень мало значения.
Правильно ли я в этой линии мышления? Или я должен попытаться реализовать что-то более безопасное и сложное для этого проекта? Я ценю любую помощь.
Вы правы в том, что пользователи смогут получать доступ к информации других пользователей, поэтому вам нужно знать, будете ли вы хранить какую-либо конфиденциальную информацию пользователя, которая будет позже доступна между пользователями. Если это так, вы просто реализуете некоторые базовые функции/безопасность регистрации пользователей, которые, если вы начинающий программист, вам захочется заглянуть в это, в конце концов, в любом случае.