Для разработчиков Epic Games | Store.
Для разработчиков Epic Games | Store. Если вы не можете сделать отзывы сами, то зайдите в Google/Yandex и напишите "скрипт отзывов для сайта php". Дальше выбираете понравившеюся вам ссылку и Ctrl+C = Ctrl+V. А если вы не умеете пользоваться поисковиками, то я вам помогу.
В первую очередь, нам необходимо создать базу данных и таблицу, где будет копиться информация:
CREATE TABLE IF NOT EXISTS `shoutbox` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date_time` datetime NOT NULL, `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `message` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM
Простая форма:
<h2>Shoutbox</h2>
<form method="post" action="shout.php">
Name: <input type="text" id="name" name="name" />
Message: <input type="text" id="message" name="message" class="message" />
<input type="submit" id="submit" value="Submit" />
</form>
<div id="shout"></div>Данный код создаст нам форму, которая удовлетворяет всем условиям. Теперь я покажу вам код jQuery, который будет извлекать и отсылать данные:
$(function() {
$("#submit").click(function() {
// получаем то, что написал пользователь
var name = $("#name").val();
var message = $("#message").val();
// Формируем строку запроса
var data = 'name='+ name +'&message='+ message;
// ajax вызов
$.ajax({
type: "POST",
url: "shout.php",
data: data,
success: function(html){ // после получения результата
$("#shout").slideToggle(500, function(){
$(this).html(html).slideToggle(500);
$("#message").val("");
});
}
});
return false;
});
});Всё что является на мой взгляд важным, я отметил комментарием. Этот код собирает ту информацию, которую пользователь ввёл в форму, и отправляет в файл shout.php, который в свою очередь вставляет новые данные в БД и возвращает результат. Выражение return false используется для того чтобы определить, была ли отправлена форма.
А теперь я покажу вам, как использовать расширение PDO, для того чтобы обезопасить себя при помощи подготовленных выражений и других вещей.
PHP Data Objects (PDO) - расширение для PHP, предоставляющее разработчику простой и универсальный интерфейс для доступа к различным базам данных.
Вашему вниманию представляю файл shout.php:
/*** mysql хост ***/
$hostname = 'localhost';
/*** mysql пользователь ***/
$username = 'root';
/*** mysql пароль ***/
$password = '';
$dbname = 'shout';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
if($_POST['name']) {
$name = $_POST['name'];
$message = $_POST['message'];
/*** превратить все ошибки в исключения ***/
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO shoutbox (date_time, name, message)
VALUES (NOW(), :name, :message)";
/*** готовим выражение ***/
$stmt = $dbh->prepare($sql);
/*** вставляем параметры ***/
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':message', $message, PDO::PARAM_STR);
/*** запускаем sql выражение ***/
if ($stmt->execute()) {
populate_shoutbox();
}
}
}
catch(PDOException $e) {
echo $e->getMessage();
}
/***** --- *****/
if($_POST['refresh']) {
populate_shoutbox();
}
/********************************/
function populate_shoutbox() {
// нам не нужно снова подключаться
global $dbh;
$sql = "select * from shoutbox order by date_time desc limit 10";
echo '<ul>';
foreach ($dbh->query($sql) as $row) {
echo '<li>';
echo '<span class="date">'.date("d.m.Y H:i", strtotime($row['date_time'])).'</span>';
echo '<span class="name">'.$row['name'].'</span>';
echo '<span class="message">'.$row['message'].'</span>';
echo '</li>';
}
echo '</ul>';
}Оказывается это так просто.
Вы спросите зачем я это все написал, ответ очень прост из-за спора с друзьями. Epic Games | Store полная параша, тут нет отзывов и т.д. Друзья мне говорят Steam не сразу стал таким какой он есть сейчас, это то да. Только steam развивался сам. Это как Менделеев который открыл периодическую систему химических элементов. А Epic Games | Store будет говно.
