Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Гоcтевая книга

67K
30 мая 2011 года
V@D
4 / / 18.02.2011
Добрый день!
Помогите разобраться, не работает тренировочная "Гостевая книга"
В результате гостевая книга должна принимать name - (Vadim), emai - (vadim@mail.rul), msg(Hello, World!!!) и записывать в файл gbook.db
Пример того что должно:
Это записывает в файл в любом случае
** This file contains an SQLite 2.1 database **
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
msg TEXT,
datetime INTEGER,
ip TEXT)
И плюс то что передает пользователь:
Vadim [email]vadim@mail.ru[/email] Hello, World!!! временная метка и ip(127.0.0.1)

А у меня получается кракозябра: &1;Vadim


гостевая книга состоит из:
1. IGbookDB.class.php
<?php
/**
* IGbookDB
* содержит основные методы для работы с Гостевой книгой
*/
interface IGbookDB{
/**
* Добавление новой записи в Гостевую книгу
*
* @param string $name - имя пользователя
* @param string $email - адрес электропочты пользователя
* @param string $msg - текст послания пользователя
*
* @return boolean - результат успех/ошибка
*/
function savePost($name, $email, $msg);
/**
* Выборка всех записей из Гостевой книги
*
* @return array - результат выборки в виде массива
*/
function getAll();
/**
* Удаление записи из Гостевой книги
*
* @param integer $id - идентификатор удаляемой записи
*
* @return boolean - результат успех/ошибка
*/
function deletePost($id);
}
?>
//там где форум поставил смайл - это Д англ.
2. GbookDB.class.php
<?php
include "IGbookDB.class.php";
class GbookDB implements IGbookDB{
const DB_NAME = "gbook.db";
protected $_db;
function __construct(){
if(!file_exists(self::DB_NAME)){
$this->_db = new SQLiteDatabase(self::DB_NAME);
$sql = "CREATE TABLE msgs(
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
msg TEXT,
datetime INTEGER,
ip TEXT)";
$this->_db->query($sql);
}else{
$this->_db = new SQLiteDatabase(self::DB_NAME);
}
}
function __destruct(){
unset($this->_db);
}
//фильтрация даных
function clearData($data){
$data = stripslashes($data);//фильтрует кавычки в именах типа O'Brayen
$data = strip_tags($data);
$data = trim($data);
$data = sqlite_escape_string($data);
return $data;
}
function savePost($name, $email, $msg){
$ip = $_SERVER["REMOTE_ADDR"];
$dt = time();
$sql = "INSERT INTO msgs(
name,
email,
msg,
ip,
datetime)
VALUES(
'$name',
'$email',
'$msg',
'$ip',
$dt)";
$this->_db->query($sql);
}
function getAll(){}
function deletePost($id){}
}
3. savepost.inc.php
*/
//если человек решит поставить вместо символов пробелы, фильтруем через clearData
$name = $gbook->clearData($_POST["name"]);
$email = $gbook->clearData($_POST["email"]);
$msg = $gbook->clearData($_POST["msg"]);

if(!empty($name) and !empty($email) and !empty($msg)){
//после фильтрации передаем данные
$gbook->savePost($name, $email, $msg);
header("Location: gbook.php");

}else{
$errMsg = "Заполните все поля формы!";
}

4. gbook.php
<?php
//подключаем файл
include "GbookDB.class.php";
$gbook = new GbookDB();
$errMsg = "";

if($_SERVER["REQUEST_METHOD"]=="POST")
include "savepost.inc.php";


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Гостевая книга</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<h1>Гостевая книга</h1>
<?php
//Проверка, не является ли переменная $errMsg пустой строкой
if($errMsg)
echo $errMsg;
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">

Ваше имя:<br />
<input type="text" name="name" /><br />
Ваш e-mail:<br />
<input type="text" name="email" /><br />
Сообщение:<br />
<textarea name="msg" cols="50" rows="5"></textarea><br />
<br />
<input type="submit" value="Добавить!" />

</form>

</body>
</html>
67K
30 мая 2011 года
V@D
4 / / 18.02.2011
Как настроить?
244
31 мая 2011 года
UAS
2.0K / / 19.07.2006
Вбить в гугле "SQLite charset utf 8" или "SQLite encoding utf 8" и читать что пишут
67K
01 июня 2011 года
V@D
4 / / 18.02.2011
Вопрос снят с повестке дня.
Разобрался сам, проблема в редакторе, надо пользоваться не одним - каждый редактор показывает записи по разному, и с данным заданием отлично справился NotePad++
366
01 июня 2011 года
int
668 / / 30.03.2005
Цитата: V@D
каждый редактор показывает записи по разному

Это говорит только о том, что ты не разобрался в вопросе. Редакторы не могут иметь субъективного мнения о том, как показывать текст.

67K
01 июня 2011 года
V@D
4 / / 18.02.2011
А субъективного мнения как пере сохранить текст?
244
01 июня 2011 года
UAS
2.0K / / 19.07.2006
В том же Notepad++ есть прям сверху вкладка "Кодировки".
366
02 июня 2011 года
int
668 / / 30.03.2005
Цитата: V@D
А субъективного мнения как пере сохранить текст?

Это не имеет отношения к вопросу об отображении текста.

//Пересохранить - слитно.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог