ALEX8998 Ответов: 2

Проблемы с подключением к базе данных


Добрый день! Я изучаю новости PHP.Здесь у меня возникли проблемы с подключением к базе данных.Пожалуйста, помогите мне решить эту проблему. Я пытался подключить HTML-шаблон к своей базе данных.

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

<pre>
<html>
<head>
	<title>Insert new post</title>
</head>


<body>
<form method="center" action="insert_post.php" enctype="multipart/form-data">
<table width="600" align="center" border="10">
<tr>
	<td align="center" bgcolor="yellow" colspan="6" ><h1>Inset new post here</h1></td>
</tr>
<tr>
	<td align="center">Post title</td>
	<td ><input type="text" name="title" size="30"></td>
</tr>
<tr>
	<td align="center">Post keywords</td>
	<td ><input type="text" name="title" size="30"></td>
</tr>
<tr>
	<td align="center">Post content</td>
	<td ><textarea name="content" cols="60" rows="15"></textarea></td>
</tr>
<tr>
	<td align="center" colspan="6"><input type="submit" name="submit" value="Publish now"></td>
 
</tr>
</table>
</form>


</body>
</html>

<?php
$db = mysqli_connect('localhost','root','','template');


if(isset($_POST['submit'])){
echo $post_title=$_POST['title'];
 echo $post_keywords=$_POST['keywords'];
echo $post_content=$_POST['content'];


if($post_title=='' or $post_keywords=='' or $post_content==''){ 
	
		echo "<script>alert('any of the fields is empty')</script>";


exit();

}
else{
$insert_query="INSERT INTO posts(post_title,post_keywords,post_content) values('$post_title','$post_keywords','$post_content')";

if(mysqli_master_query($insert_query)){

		echo"<center><h1>POST PUBLISHED succesfully</h1></center>";
}

}


}
?>

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
$insert_query="INSERT INTO posts(post_title,post_keywords,post_content) values('$post_title','$post_keywords','$post_content')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL Injection-руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL-OWASP[^]


Рейтинг:
13

Jochen Arndt

Прочтите документацию по используемым функциям: PHP: mysqli_master_query-руководство пользователя[^]

Цитата:
mysqli_master_query — принудительное выполнение запроса на ведущем устройстве в настройке master/slave
Предупреждение
Эта функция в настоящее время не документирована; доступен только ее список аргументов.
Предупреждение
Эта функция устарела и удалена с версии PHP 5.3.0.
Вы, вероятно, хотите использовать РНР: в mysqli::запрос - руководство по эксплуатации[^] вместо.

Чтобы узнать, где код терпит неудачу, вы должны оценить возвращаемые значения функций и сообщить об ошибках, как показано в приведенных выше примерах mysqli_query ссылка. Если вам все еще нужна помощь, добавьте код ошибки и/или полное сообщение к вашему вопросу (помогите другим помочь вам).