Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Гостевая книга с MySQL, Гостевая книга с MySQL 
:(
    Опции темы
ZuLLeR
Дата 18.7.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Вот решил сам попробовать написать и у меня возникла проблема:
База данных создана, все нормально, отправляю сообщение и оно уходит в никуда, что то я забыл)) подскажите что, и правильно ли я все написал??? Мне кажеться что просто напросто я не создал еще одного файла, или этот не дописал, помогите плз, и что бы вы сделали по другому?
Это типа guestbook.php
Код

<?php
    require($_SERVER["DOCUMENT_ROOT"]."/config/db_config.php");
    $connection = @mysql_connect($db_host, $db_user, $db_password) or die("eroor connecting");
    mysql_select_db($db_name, $connection);
    
    $name = $_POST["txt_name"];
    $len = strlen($name);
    //Only write database if there's a name
    if ($len > 0)
    {
        $email = $_POST["txt_email"];
        $comment = $_POST["txt_comment"];
        $date = time();
        
        $query = "INSERT INTO guestbook (autoID, name, email, comment, date_auto) VALUES (NULL, '$name', '$email', '$comment', '$date')";
        mysql_query($query, $connection) or die(mysql_error());
        
    }
?>
<html>
<head>
    <title>Guestbook</title>
</head>
<body>
<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <font face="arial" size="1">
     Name: <input type="text" name="text_name">&nbsp;
        Email: <input type="text" name="txt_email"><br><br>
        Comment:<br>
        <textarea style="width: 75%" rows="10" name="txt_comment"></textarea>
        <center><input type="submit" value="Submit"</center>
        </font>
</form>
<br><br>

<table bgcolor="#AAAAAA" border="0" width="75%" cellspacing="1" cellpadding="2">
<?php
    $query = "SELECT * FROM guestbook ORDER BY date_auto";
    $result = mysql_query($query, $connection);
    
    for ($i = 0; $i < mysql_num_rows($result); $i++)
    {
        $name = mysql_result($result, $i, "name");
        $email = mysql_result($result, $i, "email");
        $email_len = strlen($email);
        $comment = mysql_result($result, $i, "comment");
        $date = mysql_result($result, $i, "date_auto");
        $show_date = date("H:i:s m/d/Y", $date);
                
        echo '
            <tr>
                <td width="50%" bgcolor="#EEEEEE">
                    <font face="arial" size="2">';
                        if ($email_len > 0)
                        {
                            echo '<b>Name:</b> <a href="mailto:'.$email.'>"'.$name.'</a>';
                        }
                        else
                        {
                            echo '<b>Name:</b> '.$name;
                        }
                        echo '
                        <br>
                        <b>Comment:</b> '.$comment.'
                    </font>
                <td>
                <td width="1%" valign="top" nowrap bgcolor="#EEEEEE">
                    <font>
                        <b>Date: </b> '.$show_date.'
                    </font>
                </td>
            </tr>
        ';
                    
    }
?>

</table>

</center>
</body>
</html>

Это типа config.php
Код

<?php
$db_host = "localhost";
$db_name = "buzzDB";
$db_user = "root";
$db_password = "";
?>

PM MAIL   Вверх
Feldmarschall
Дата 18.7.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



ошибки ищутся не по принципу "правильно ли я все написал", а с помощью отладки.
берешь, разбираешься сам - почему у тебя "уходит в никуда".
запрос выполняется? нормально формируется? 

P.S. С какой книжки списывал?
PM   Вверх
Djinn
Дата 18.7.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 18.5.2007

Репутация: 1
Всего: 1



error_reporting(E_ALL); посомтри что говорит вообще...
PM MAIL   Вверх
ZuLLeR
Дата 18.7.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



С какой книжки, я смотрел во многих, и видео уроки тоже, вот что выходит пока, ша еще пошаманю
PM MAIL   Вверх
snake12
Дата 18.7.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 23.5.2007

Репутация: нет
Всего: нет



PM MAIL   Вверх
ZuLLeR
Дата 20.7.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Итак кто чем может помогайте, я начал писать простенькую гостевуху, пока только написал вот что:
1) Сама База guestbook:
Код

CREATE TABLE `guestbook` (
  `id` int(10) NOT NULL auto_increment,
  `name` varchar(40) NOT NULL default '',
  `email` varchar(30) NOT NULL default '',
  `message` text NOT NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;

2) И конфиг config.php
Код

<?php
//НАСТРОЙКА БАЗЫ ДАННЫХ
$mysqlserver="localhost";
$mysqllogin="root";
$mysqldatabase="guestbook";
$mysqlpassword = "";

// ПОДКЛЮЧЕНИЕ К БАЗЕ
$connection = mysql_connect($mysqlserver,$mysqllogin,$mysqlpassword);
$select = mysql_select_db($mysqldatabase,$connection);
if (!$connection){
die( "соединение не установленно");
}
if (!$select){
die("соединение с табилицой невозможно");
}
?>

Теперь осталось как я понял самое главное)) и для меня самое сложное это файл guestbook.php, но что я хочу сделать у меня есть форма на html:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Гостевая книга</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<body>
<form action="" method="POST" name="guestform">
    Ваше имя:<br>
    <input type="text" name="text_name"><br><br>
    Ваш E-mail:<br>
    <input type="text" name="text_email"><br><br>
    Ваше сообщение:<br>
    <textarea rows="5" cols="30" name="text_message"></textarea><br>
    <input type="submit" name="send" value="Отправить">
</form>
</body>
</head>
</html>

Как я представляю должно это все выглядить:
1) запускаю форму
2) заполняю ее
3) жму кнопку, добавляется сообщение, и перекидывает на форму уже с введеным мною сообщением.
Мне как я понимаю нужно в форму заинклюдить guestbook.php, который я еще не написал и пока не четко представляю как должен он выглядить, у кого есть желание помогите) И правильно ли я мыслю?? Что бы Вы посоветовали?
Есть еще вариант, формы на хтмл не будет, а она будет в самом файле  guestbook.php, Но у меня страничка сама на хтмле как мне тогда все это организовать? просто в страницу сайта заинклюдить guestbook.php?

PM MAIL   Вверх
Feldmarschall
Дата 20.7.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Если ты используешь базу данных, то "страничка сама на хтмле" у тебя быть не может. она должна выводить сообщения гостевой из базы данных. а хтмл пока с базой работать не научился.
поэтому страничка должна быть на пхп. 

на этапе обучения языку, удобнее, чтобы каждое действие было в разных файлах. вывод в одном, запись в другом.
поэтому тебе надо сделать два файла - guestbook.php, который вывордит сообщения из базы, и guestbook_add.php, который записывает полученные из формы поля в базу.
поскольку пока мы ничего не занесли, и выводить нечего, то традиционно сначала пишется добавление.
вот и пиши. только в форме поставь экшен на скрипт добавления.
и пиши его
данные формы лежат в массиве $_POST
обработать их надо функцией mysql_real_escape_string и подставить в запрос.
Вот и все, в общем-то
PM   Вверх
ZuLLeR
Дата 20.7.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Так это я все понял, но прикинь если у меня весь сайт на хтмл, и мне нужно гостевуху вставить как мне проще сделать это будет??? Можно ли заинклюдить или т.п.??? или мне всю страницу на пхп ваять придеться???? а дизайн я бы сказал не особо простой). ТО что ты написал я ша сделаю) Спасибо)
PM MAIL   Вверх
Feldmarschall
Дата 20.7.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



А какая разница, какой дизайн?
что значит "ваять на пхп"?
PM   Вверх
ZuLLeR
Дата 20.7.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Ваять это писать) Можно же как нить вставить в хтмл сам пхп и что бы работало) типа страница на хтмл в нее вставлен пхп код
PM MAIL   Вверх
MuToGeN
Дата 20.7.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



Цитата(ZuLLeR @  20.7.2008,  13:35 Найти цитируемый пост)
как мне проще сделать это будет???

Проще будет самомтоятельно немного напрячь собственный мозг, а не орать "сделайте все за меня". Тут не решают чужие проблеиы. Тут только подсказывают пути их решения.

/* а не попросить ли мне Вову дать мне в руки плюсомет, что будет и в этом разделе действовать? а то чем дальше в лес, тем больше партизан */


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Feldmarschall
Дата 20.7.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(ZuLLeR @  20.7.2008,  14:03 Найти цитируемый пост)
Можно же как нить вставить в хтмл сам пхп

нет, нельзя.
но можно наоборот.

PM   Вверх
ZuLLeR
Дата 20.7.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Цитата(MuToGeN @ 20.7.2008,  14:04)
Цитата(ZuLLeR @  20.7.2008,  13:35 Найти цитируемый пост)
как мне проще сделать это будет???

Проще будет самомтоятельно немного напрячь собственный мозг, а не орать "сделайте все за меня". Тут не решают чужие проблеиы. Тут только подсказывают пути их решения.

/* а не попросить ли мне Вову дать мне в руки плюсомет, что будет и в этом разделе действовать? а то чем дальше в лес, тем больше партизан */

Я спросил совета а не просил делать за меня
PM MAIL   Вверх
Feldmarschall
Дата 20.7.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



я тебе дал совет. еще вопросы будут?
PM   Вверх
ZuLLeR
Дата 20.7.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Пока нет. Вот посмотри написал еще guestbook_add.php
Код

<html>
<head>
    <title>Гостевая</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
     Ваше Имя:<br>
        <input type="text" name="text_name"><br><br>
        Ваш E-mail:<br>
        <input type="text" name="txt_email"><br><br>
        Ваше сообщение:<br>
        <textarea rows="5" cols="30" name="text_message"></textarea>
        <input type="submit" name="send" value="Отправить">
</form>
</body>
</head>
</html>

<?php
require_once('./config.php');
if ($_POST[action] == 'OK'){
$message = mysql_real_escape_string($_POST[message]);
$name = mysql_real_escape_string($_POST[name]);
$email = mysql_real_escape_string($_POST[email]);
$date = time();

$query = "INSERT INTO guestbook (ID, name, email, message, date) VALUES (NULL, '$name', '$email', '$message', '$date')";
mysql_query($query);  /////Можно вот так я еще видел: mysql_query($query, $connection) or die(mysql_error());
}
?>

Шас вот напишу файл для просмотра. Я надеюсь не отнимаю у тебя много времени.
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.