[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с гостевой
dilfin
когда ввожу данные нечего не происходить

  <?php

if (mysql_connect('localhost','root','') && mysql_select_db('auto')) {

$time = time();
$errors = array();

if (isset($_POST['guestbook_name'], $_POST['guestbook_email'], $_POST['guestbook_message'])) {

$guestbook_name = mysql_real_escape_string(htmlentities($_POST['guestbook_name']));
$guestbook_email = mysql_real_escape_string(htmlentities($_POST['guestbook_email']));
$guestbook_message = mysql_real_escape_string(htmlentities($_POST['guestbook_message']));
if (empty ($guestbook_name) || empty ($guestbook_email) || empty ($guestbook_message)) {
$errors[] = 'All fields are required.';

}

if (strlen($guestbook_name)>25 || strlen($guestbook_email)>255 || strlen($guestbook_message)>255){
$errors[] = ' One or more fields exceeded the character limit.';
}
if (empty($errors)) {
$insert = "INSERT INTO 'guestbook' VALUES('','$time','$guestbook_name','$guestbook_email','$guestbook_message') ";
if (mysql_query($insert)) {
header ('Location: '.$_SERVER['PHP_SELF']);
} else {
$errors[]= 'Something went wrong, please try again soon.';
}
}
else {
foreach ($errors as $error) {
echo '<p><strong>'.$error.'</strong></p>';
}
}

}

$guestbook = mysql_query("SELECT `time`, `name`, `message`, `email` FROM `guestbook` ORDER BY `time` DESC");

if (mysql_num_rows($guestbook)==0) {
echo 'No entries, yet.';
} else {
while ($guestbook_row = mysql_fetch_assoc($guestbook)) {
$guestbook_time = date('M D Y @ h:i:s', $guestbook_row['time']);
$guestbook_name = $guestbook_row['name'];
$guestbook_email = $guestbook_row['email'];
$guestbook_message = $guestbook_row['message'];

echo '<p><strong>Posted by '.$guestbook_name.'('.$guestbook_email.') on '.$guestbook_time.'</strong>:<br> '.$guestbook_message. '</p>';

}
}

}
else {
echo 'Could not connect at this time';
}

?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
<
strong>Post something .... </strong><br>
Name: <br><input type="text" name="guestbook_name" maxlength="25"><br>
Email: <br><input type="text" name="guestbook_email" maxlength="255"><br>
Message: <br><textarea name="guestbook_message" rows="4" cols="40" maxlength="255"></textarea><br>
<
input type="submit" value="Post">
</
form>





Спустя 7 минут, 38 секунд (19.01.2012 - 12:00) johniek_comp написал(а):
$insert = "INSERT INTO `guestbook` 


кавычки не правильные

Спустя 6 минут, 42 секунды (19.01.2012 - 12:06) dilfin написал(а):
Цитата (johniek_comp @ 19.01.2012 - 09:00)
<pre class="sh_sourceCode" rel="php"><span class="sh_variable">$insert</span> <span class="sh_symbol">=</span> <span class="sh_string">"INSERT INTO `guestbook`</span> </pre>

кавычки не правильные

Спасибо вам хотя разве проблема в этом вы можете подскажать как оно должно быть?

Спустя 34 минуты, 41 секунда (19.01.2012 - 12:41) rooor написал(а):
Кстати... давно хотел спросить, нафига запрос вставлять в переменную?
Например:
$query = "SELECT ..... FROM .....";
$sql = mysql_query($query);

// Вот так же проще)
$sql = mysql_query("SELECT ..... FROM .....");

Ладно, если запрос формируется с условиями, а простой-то нафига?
сорь за оффтоп)

Спустя 31 минута, 20 секунд (19.01.2012 - 13:12) johniek_comp написал(а):
dilfin
А что именно не работает, я же не экстрасенс
напишите первой строкой:
error_reporting(E_ALL);


должны ошибки вылезти, и при отладке всегда его пишите

Спустя 43 минуты, 16 секунд (19.01.2012 - 13:56) dilfin написал(а):
Цитата (johniek_comp @ 19.01.2012 - 10:12)
dilfin
А что именно не работает, я же не экстрасенс
напишите первой строкой:
error_reporting(E_ALL);


должны ошибки вылезти, и при отладке всегда его пишите

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

Спустя 22 минуты, 34 секунды (19.01.2012 - 14:18) Winston написал(а):
Переделай все ф-ии так mysql_query(...) or die(mysql_error());

Спустя 9 минут, 35 секунд (19.01.2012 - 14:28) nugle написал(а):
Winston
я бы даже сказал так
$query = '...';
$result = mysql_query($query) or die(mysql_error().'<br />'.$query);
И если будет ошибка, то выведется запрос, а уже запрос вбить напрямую в pma, а там уже смотреть

Спустя 30 минут, 27 секунд (19.01.2012 - 14:58) dilfin написал(а):
Цитата (nugle @ 19.01.2012 - 11:28)
Winston
я бы даже сказал так
$query = '...';
$result = mysql_query($query) or die(mysql_error().'<br />'.$query);
И если будет ошибка, то выведется запрос, а уже запрос вбить напрямую в pma, а там уже смотреть

ребята спасибо но я уже запарилась я уже скачала гостевую ! Спасибо Всем Вам Большое!!!

Спустя 18 минут, 26 секунд (19.01.2012 - 15:17) UnWind написал(а):
Цитата
ребята спасибо но я уже запарилась я уже скачала гостевую ! Спасибо Всем Вам Большое!!!

dry.gif
Кхе. Самый простой выход из проблемы. А не лучше ли потрудиться и своими ручками сделать ?

Спустя 49 минут, 48 секунд (19.01.2012 - 16:07) UnWind написал(а):
Самый простой скрипт гостевой, который я написал за 40 с лишним минут.
Что Вам мешает написать такой же, вместо того, что бы пользоваться каким то чужими, которые Вы даже не знаете как отредактировать ? :blink:
Его можно (И нужно дорабатывать в плане безопасности конечно и функционала, но это не сложно как видите).
Если есть какие то замечания, прошу) Выслушаю с удовольствием, может дельный совет дадите B)
Но повторяю - скрипт написан на скорую руку без заморочек с кодировками и прочим, просто для примера.

База

CREATE TABLE guestbook (
id INT AUTO_INCREMENT,
nick VARCHAR(255) NOT NULL,
mess TEXT NOT NULL,
PRIMARY KEY(id)
);



Файл: gb.php


<?php

$hostName = "localhost";
$userName = "Имя пользователя";
$userPassword = "Пароль пользователя";
$dbName = "База данных";

$connect = mysql_connect($hostName, $userName, $userPassword) or die( mysql_error() );
mysql_select_db($dbName) or die( mysql_error() );


$nick = !empty($_POST['nick']) ? $_POST['nick'] : NULL;
$mess = !empty($_POST['mess']) ? $_POST['mess'] : NULL;
$saveNick = !empty($_COOKIE['nick']) ? $_COOKIE['nick'] : NULL;

if( !empty($nick) ) { setcookie('nick', $nick, time()+(60*60) ); }


echo '<html> <head> <title> Пародия на гостевую книгу </title> </head> <body> <form action="gb.php" method="POST"> Ник/Нэйм: <input type="text" name="nick" value="' . $saveNick . '" /> <br /> Текст сообщения: <br /><textarea cols="50" rows="10" name="mess"></textarea> <br /> <input type="submit" value="Отправить" /> </form> ';
if( !(empty( $nick ) && empty( $mess ) ) ) {
if( mysql_num_rows( mysql_query("SELECT * FROM guestbook WHERE mess='" . mysql_escape_string( $mess ) . "' ORDER BY id DESC LIMIT 0, 1;") ) == 0 ) {
mysql_query("INSERT INTO guestbook SET nick='" . mysql_escape_string( $nick ) . "', mess='" . mysql_escape_string( $mess ) . "';", $connect) or die( mysql_error() );
echo '<font style="color: red"> WARNING! : Ваше сообщение успешно добавлено! ;-) </font> <br />';
} else echo '<font style="color: ref">WARNING! : Вы пишите предыдущие сообщение ! СПАМ ЗАПРЕЩЕН !</font>';
}

echo '<hr />';

$queryMesSel = mysql_query("SELECT nick,mess FROM guestbook ORDER BY id DESC;", $connect) or die( mysql_error() );
while($mesSelect = mysql_fetch_row( $queryMesSel ) ) { echo '<fieldset><legend>' . $mesSelect[0] . '</legend>' . $mesSelect[1] . '</fieldset> <br />'; }

Спустя 22 часа, 35 минут, 49 секунд (20.01.2012 - 14:42) dilfin написал(а):
Цитата (UnWind @ 19.01.2012 - 13:07)
Самый простой скрипт гостевой, который я написал за 40 с лишним минут.
Что Вам мешает написать такой же, вместо того, что бы пользоваться каким то чужими, которые Вы даже не знаете как отредактировать ? :blink:
Его можно (И нужно дорабатывать в плане безопасности конечно и функционала, но это не сложно как видите).
Если есть какие то замечания, прошу) Выслушаю с удовольствием, может дельный совет дадите B)
Но повторяю - скрипт написан на скорую руку без заморочек с кодировками и прочим, просто для примера.

База

CREATE TABLE guestbook (
id INT AUTO_INCREMENT,
nick VARCHAR(255) NOT NULL,
mess TEXT NOT NULL,
PRIMARY KEY(id)
);



Файл: gb.php


<?php

$hostName = "localhost";
$userName = "Имя пользователя";
$userPassword = "Пароль пользователя";
$dbName = "База данных";

$connect = mysql_connect($hostName, $userName, $userPassword) or die( mysql_error() );
mysql_select_db($dbName) or die( mysql_error() );


$nick = !empty($_POST['nick']) ? $_POST['nick'] : NULL;
$mess = !empty($_POST['mess']) ? $_POST['mess'] : NULL;
$saveNick = !empty($_COOKIE['nick']) ? $_COOKIE['nick'] : NULL;

if( !empty($nick) ) { setcookie('nick', $nick, time()+(60*60) ); }


echo '<html> <head> <title> Пародия на гостевую книгу </title> </head> <body> <form action="gb.php" method="POST"> Ник/Нэйм: <input type="text" name="nick" value="' . $saveNick . '" /> <br /> Текст сообщения: <br /><textarea cols="50" rows="10" name="mess"></textarea> <br /> <input type="submit" value="Отправить" /> </form> ';
if( !(empty( $nick ) && empty( $mess ) ) ) {
if( mysql_num_rows( mysql_query("SELECT * FROM guestbook WHERE mess='" . mysql_escape_string( $mess ) . "' ORDER BY id DESC LIMIT 0, 1;") ) == 0 ) {
mysql_query("INSERT INTO guestbook SET nick='" . mysql_escape_string( $nick ) . "', mess='" . mysql_escape_string( $mess ) . "';", $connect) or die( mysql_error() );
echo '<font style="color: red"> WARNING! : Ваше сообщение успешно добавлено! ;-) </font> <br />';
} else echo '<font style="color: ref">WARNING! : Вы пишите предыдущие сообщение ! СПАМ ЗАПРЕЩЕН !</font>';
}

echo '<hr />';

$queryMesSel = mysql_query("SELECT nick,mess FROM guestbook ORDER BY id DESC;", $connect) or die( mysql_error() );
while($mesSelect = mysql_fetch_row( $queryMesSel ) ) { echo '<fieldset><legend>' . $mesSelect[0] . '</legend>' . $mesSelect[1] . '</fieldset> <br />'; }

я не такая сильно знаю php как вы я новичок ещё но спасибо вам!

Спустя 5 минут, 27 секунд (20.01.2012 - 14:48) UnWind написал(а):
Цитата
я не такая сильно знаю php как вы я новичок ещё но спасибо вам!

Да, было бы за что. Не знаешь - учи, а мы поможем.
А вообще - разбери какой нибудь скрипт, например мой и пойми, что в нем значит каждая строчка. Если нужно - я потом могу добавить комменты и узнаешь на сколько верно ты разобрала его. Или любой другой.
Быстрый ответ:

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