Сонник (Толкование снов) на PHP
02.11.2017 07:26:28 pm
Сценарий толкования снов
Значит, делаем так: создаем таблицу
Теперь пишем форму, куда будем вписывать искомое слово для получения определения, я написал такую:
И сам скрипт, который будет выполнять запрос с заданным словом:
Вот собственно весь движок Сонника (Толкование сна). Остается лишь наполнить таблицу определениями.
Значит, делаем так: создаем таблицу
exegesis
с тремя полями: dream_id
- идентификатор определения сна, dream
- слово из сна, value
- значение слова (сна). Можно запросом:
CREATE TABLE IF NOT EXISTS `exegesis` (
`dream_id` int(11) NOT NULL AUTO_INCREMENT,
`dream` varchar(255) NOT NULL,
`value` TEXT,
PRIMARY KEY (`dream_id`));
Теперь пишем форму, куда будем вписывать искомое слово для получения определения, я написал такую:
<form action="index.php" method="post">
<input type="text" name:"dream">
<input type="submit" name:"enter" value="Отправить">
</form>
И сам скрипт, который будет выполнять запрос с заданным словом:
$connect = mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname); # Подключаемся к БД
if (!$connect) # Если соединения нет, выводим ошибку на экран
{
mysqli_error();
}
if (isset($_POST['enter'])) # Условие сработает только после нажатия на кнопку
{
if (empty($_POST['dream'])) # Проверяем введено ли слово в форму
{
echo 'Введите слово из своего сна.';
}
else
{
$dream = trim($_POST['dream']); # Убираем пробелы перед и после слова
# Составляем запрос
$sql = "SELECT *
FROM exegesis
WHERE dream = '$dream'";
$query = mysqli_query($connect, $sql); # Выполняем запрос
if (!$query) # Сработает при не удачи выполнения запроса
{
mysqli_error();
}
else # Если запрос выполнен удачно
{
$row = mysqli_fetch_assoc($query);
if (!$row) # Если слово не найдено
{
echo 'Значение <strong>' . $dream . '</strong> не найдено.';
}
else # Если слово найдено, выводим само слово и его (сна) значение
{
echo 'Значение сна <strong>' . $dream . '</strong>:<br />' . $row['value'];
}
}
}
}
Вот собственно весь движок Сонника (Толкование сна). Остается лишь наполнить таблицу определениями.
- Жалоба
02.11.2017 07:31:50 pm
На всякий случай. Форма осталась та же. Делаем так SQL:
Сам скрипт немного переписал:
Теперь у каждого толкования есть своя страница, такого вида:
Если надо такой вид адреса:
В php скрипте меняем строку:
на:
Все готово.
CREATE TABLE IF NOT EXISTS `exegesis` (
`dream_id` int(11) NOT NULL AUTO_INCREMENT,
`dream` varchar(255) NOT NULL,
`value` TEXT,
PRIMARY KEY (`dream_id`));
INSERT INTO `exegesis` (`dream_id`, `dream`, `value`) VALUES
(1, 'Танк', 'Сон, в котором Вы наблюдаете за танками, едущими по городским улицам, говорит о том, что Вас ждут некие трудности, причина которых будет заключаться в масштабных переменах в мире или в стране. Сон, в котором Вы застреваете, пытаясь вылезти из танка, указывает на то, что наяву Вы стали участником некой аферы и теперь не можете найти выход из сложившейся в связи с этим ситуации. Предупреждением о возможных изменах со стороны возлюбленного становится сон, в котором девушка видит его в роли танкиста.'),
(2, 'Какао', 'Видит во сне какао человек, который вынужден поддерживать дружбу даже с неприятными для него людьми, для того чтобы добиться успеха в жизни. Видимо, вы отчаялись в жизни и стремитесь воспользоваться не очень порядочными средствами, чтобы ваши мечты воплотились в жизнь. Вы мечтаете войти в доверительные отношения с одним человеком, но делаете это исключительно в корыстных целях. Какао снится не только тем, кто мечтает дослужиться до высших чинов. Может быть, вы ветреный и взбалмошный человек, которому приятно знакомиться со всеми на свете. Новые знакомые, шумные вечеринки — вот ваше любимое занятие. Скорее всего, какао приснилось перед очередной подобной встречей, которая, однако, может сказаться на вашей дальнейшей судьбе.'),
(3, 'Чай', 'Заваривать во сне чай — к наказанию за неблаговидные поступки и сожалениях о содеянном. Пить во сне чай с друзьями — к тому, что спящему надоест благополучная жизнь, у него возникнет желание получить новые ощущения. Разлитый чай снится к огорчениям, связанным с домом и семьей. Сильное желание выпить чаю снится к нежданным гостям.');
Сам скрипт немного переписал:
<?php
$connect = mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname); # Подключаемся к БД
if (!$connect) # Если соединения нет, выводим ошибку на экран
{
mysqli_error();
}
if (isset($_GET['dream']))
{
$dream = isset($_GET['dream']) ? $_GET['dream'] : '';
if (!$dream)
{
exit('Неверный URL.');
}
# Составляем запрос
$sql = "SELECT *
FROM exegesis
WHERE dream = '$dream'";
$query = mysqli_query($connect, $sql); # Выполняем запрос
if (!$query) # Сработает при не удачи выполнения запроса
{
mysqli_error();
}
else # Если запрос выполнен удачно
{
$row = mysqli_fetch_assoc($query);
if (!$row) # Если слово не найдено
{
echo 'Значение <strong>' . $dream . '</strong> не найдено.';
}
else # Если слово найдено, выводим само слово и его (сна) значение
{
echo 'Значение сна <strong>' . $dream . '</strong>:<br />' . $row['value'];
}
}
}
else
{
if (isset($_POST['enter'])) # Условие сработает только после нажатия на кнопку
{
if (empty($_POST['dream'])) # Проверяем введено ли слово в форму
{
echo 'Введите слово из своего сна.';
}
else
{
$dream = trim($_POST['dream']); # Убираем пробелы перед и после слова
header('Location: index.php?dream=' . $dream);
}
}
}
Теперь у каждого толкования есть своя страница, такого вида:
http://mysite.ru/index.php?dream=весна
Если надо такой вид адреса:
http://mysite.ru/весна
, то это можно сделать так: в файл .htaccess, что находится в корне сайта вставляем:RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?dream=$1 [L,QSA]
Options +FollowSymlinks
В php скрипте меняем строку:
header('Location: index.php?dream=' . $dream);
на:
header('Location: ' . $dream);
Все готово.