[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт коментариев на PHP с использованием MySQL
Гость_Zmey
Всем привет.

У меня возникла проблема.
Я хочу поставить на свой сайт скрипт коментариев, с использованием MySQL. Я нашел скрипт, сделал как все сказано и в итоге ниче не работает.

Вот такие ошибки:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/ruRU/show_news.php on line 102

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/ruRU/show_news.php on line 103

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/ruRU/show_news.php on line 107


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

Итак сам код скрипта и соединение с базой данных:
<?php 

$res = mysql_query ("SELECT * FROM ".$tbl." ORDER BY id DESC",$db); // Вытаскиваем комментарии из БД
$row = mysql_fetch_array ($res); // Формируем массив из полученных данных

?>
<?php

if (mysql_num_rows($res) > 0) {
do {printf ("<div class='comment'><div class='top'>Добавил: <strong>%s</strong> (%s) в %s</div><div class='text'>%s</div></div>",$row["name"],$row[""],$row["date"],$row["text"]);}
while($row = mysql_fetch_array ($res));
}
?>

<noindex><h3 class="title">Добавление комментария:</h3>
<
form name="comment_f" class="comment-form" method="post" action="submit.php">
<
p>Имя:<br/><input name="name" type="text"/></p>
<
p>Email:<br/><input name="email" type="text"/></p>
<
p>Текст:<br/><textarea name="text" rows="5" cols="30"></textarea></p>
<
p>Вставьте символы:<br/>
<
img class="spam-img" align="middle" src="images/spam.jpg" alt="Включите изображение"/>
<
input type="text" size="9" name="spam"/></p>
<
p><input class="button" name="button" type="submit" value="Добавить"/></p></form>
</
noindex>

Вот так же cfg.php
<?php
$base = "Proverki"; //База данный, в котоорой хранится таблица с комментаориями
$user = ""; //Пользолватель, созданный в привилегиях
$password = ""; //Пароль к пользователю
$host = "localhost"; //Хост. Как правило, это localhost
$tbl = "comment"; // Название таблицы, в которой хранятся комментария
$tbl2 = "advanced"; // Название таблицы, в которой хранятся настройки

$db = mysql_connect ("$host","$user","$password");
mysql_select_db ("$base","$db");
?>


Подскажите в чем ошибка.



Спустя 38 минут, 47 секунд (2.08.2011 - 15:48) kristall написал(а):
Последние две строчки замени на такие:

$db = mysql_connect ("$host","$user","$password");
if (!$db) {
die('Чёта я к базе не могу прицепиться: ' . mysql_error());
}
$selected=mysql_select_db ("$base","$db");
if (!$selected) {
die('Чёта я базу выбрать не могу: '.mysql_error());
}


И посмотри, что пишет. Скорее всего у тебя пароль с логином не указаны. И вместо локалхоста надо IP указывать, бывает.

Спустя 20 минут, 26 секунд (2.08.2011 - 16:08) walters написал(а):
не ставь лучше это на сайт.... этот скрипт очень старый + никакой защиты.
щас ставят с аяксом без обновления и с защитой)) если поставиш етот скрипт через месяца 3-4 одни спам сообщения будут на сайте

Спустя 7 минут, 49 секунд (2.08.2011 - 16:16) Guest написал(а):
Kristall, я добавил строчки, но безполезно, нет IP не надо указывать, с localhostom содинение с базой было до затеи с коментами
Дык на нем же стоит спам система, хоть и не очень крутая. Мне нужно поставить именно этот.

Вот кстати немного другой конфиг, который реально работает, пароль я светить не буду на всякий).

<?php
/*-----------------------------------------------------------------*/
/*LES VARIABLES A MODIFIER :
/*-----------------------------------------------------------------*/

// SERVEUR SQL

$sql_serveur="localhost";

// LOGIN SQL
$sql_user="usr_portail";

// MOT DE PASSE SQL
$sql_passwd="ПАРОЛь";

// NOM DE LA BASE DE DONNEES
$sql_bdd="atak";"Proverki";

// SI L'UTILISATEUR ENTRE UN LOGIN OU MOT DE PASSE ERRONNE, DIRECTION VERS LA PAGE :
$url_erreur="erreur.htm";



$motdepasse="passe";

// 111111

?>



В него я добавил три строчки для работы скрипта и всеравно пока нифига не получается:

$tbl = "comment"; // Название таблицы, в которой хранятся комментария
$tbl2 = "advanced"; // Название таблицы, в которой хранятся настройки

$db = mysql_connect ("$host","$user","$password");

Спустя 1 час, 13 минут, 34 секунды (2.08.2011 - 17:29) kristall написал(а):
Если скрипт успешно цепляется и базу выбирает, попробуй вместо

$res = mysql_query ("SELECT * FROM ".$tbl." ORDER BY id DESC",$db);


написать

$res = mysql_query ("SELECT * FROM ".$tbl." ORDER BY id DESC");


Да, и где у тебя в первом файле
include 'cfg.php';


Спустя 14 часов, 34 минуты, 49 секунд (3.08.2011 - 08:04) Гость_Zmey написал(а):
Во разобрался, нужно было дополнительно вписать в скрипт
mysql_select_db('Proverki', $db_link);


Оказывается он не знал в какую базу входить.

Но появилась новая проблема. Файл с помощью которого выполняется действие "Добавить комментарий" не пашет. После нажатия на кнопку джобавить выдает:

Warning: include(./include/conf.php) [function.include]: failed to open stream: Permission denied in /var/www/ruRU/submit.php on line 3

Warning: include() [function.include]: Failed opening './include/conf.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/ruRU/submit.php on line 3

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/ruRU/submit.php on line 4

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/ruRU/submit.php on line 5



Код того файла submit.php:

<link href="./style.css" rel="stylesheet" type="text/css">
<?php
include "./include/conf.php";
$res=mysql_query("SELECT spam FROM comment",$db);
$row=mysql_fetch_array($res);
$spam = trim ($_POST["spam"]);
$spam = htmlspecialchars ($spam);
$name = trim ($_POST["name"]);
$name = htmlspecialchars ($name);
$email = trim ($_POST["email"]);
$email = htmlspecialchars ($email);
$text = trim ($_POST["text"]);
$text = htmlspecialchars ($text);
$date = date("d M Y G:i:s");
if (!isset($spam) or empty ($spam)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели символы!</div></div>");}
if ($row["spam"] !== $spam) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы неправильно ввели символы!</div></div>");}
if (!isset($name) or empty ($name)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели имя!</div></div>");}
if (!isset($email) or empty ($email)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели email!</div></div>");}
if (!isset($text) or empty ($text)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели текст комментария!</div></div>");}
$insert = mysql_query ("INSERT INTO comment (name,date,email,text) VALUES ('$name','$date','$email','$text')",$db);
echo "------";
exit();


if($insert == "true") {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";echo "<div align='center'><div class='alert'>Комментарий успешно добавлен!</div></div>";}
else {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";echo "<div align='center'><div class='alert'>Комментарий не добавлен!</div></div>";}
?>


В нем вот ошибка. ПОДСКАЖИТЕ В ЧЕМ ПРОБЛЕМА!?? :( :( :(

Научись пользоваться BB-кодами, при оформлении своих постов. Видишь как я красиво сделал, вот чтоб следующие твои мессаги имели такой же вид.

Спустя 1 час, 13 минут, 50 секунд (3.08.2011 - 09:18) walters написал(а):
Гость_Zmey
возможно твой конфиг вписан 2 раза
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.