Я пошел дальше начал писать форму для оставления комментариев выглядит она так:
<form method="post" action="../forum/index.php">
<span>Оставить коммент</span>
<p><textarea name="coment" wrap="virtual" id="ffcomment" cols="68" rows="8"></textarea>
<input type="submit" name="ok" value="Отправить" id="oki"/>
</p>
</form>
ВОТ обработка запроса:
<?
if (isset ($_POST['coment'])) {
$_POST['coment'] == $coment;
}
mysql_query("INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", ".$coment.")",$bdf or die(mysql_error()));
}
?>
Но это дело гиблое нечего не происходит просто происходит переадресация на главную и в БД нечего не появляется
Так как мне сделать так что бы всё правильно вставлялось в БД
Спустя 2 минуты, 11 секунд (28.12.2010 - 21:07) sharki написал(а):
Ты неправильное имя передал или присвоил
сравни $_POST['coment'] и name="comm"
И еще запрос у тебя кривой совсем, старайся так писать
сравни $_POST['coment'] и name="comm"
И еще запрос у тебя кривой совсем, старайся так писать
<?
if (isset ($_POST['coment'])) {
$coment = $_POST['coment'] ;
$sql = "INSERT INTO `comments` (`idtemi`,`koment`)
VALUES ('".$idcat."', '".$coment."')";
$result = mysql_query($sql) or die(mysql_error());
}
?>
Спустя 7 минут, 43 секунды (28.12.2010 - 21:15) sharki написал(а):
Чет я сам наделал ошибок, вроде всё исправил
Спустя 9 минут, 16 секунд (28.12.2010 - 21:24) quickxyan написал(а):
а я вообще не понимаю зачем эта строчка?
зачем проверять одинаковые ли они - можно просто проверить есть ли что-то в переменной и если есть, тогда и делай запрос
$_POST['coment'] == $coment;
зачем проверять одинаковые ли они - можно просто проверить есть ли что-то в переменной и если есть, тогда и делай запрос
Спустя 3 минуты, 36 секунд (28.12.2010 - 21:27) quickxyan написал(а):
теперь понял когда пересмотрел код, но все равно что-то немогу додуть зачем это)
ты проверяешь определена ли переменная и если да, то ты ей присваиваешь ее же, а потом даже не используешь. или я я чего не понимаю или ....
ты проверяешь определена ли переменная и если да, то ты ей присваиваешь ее же, а потом даже не используешь. или я я чего не понимаю или ....

Спустя 2 минуты, 56 секунд (28.12.2010 - 21:30) quickxyan написал(а):
$bdf - что это за переменная и почему она стоит там где стоит?
Спустя 3 минуты, 53 секунды (28.12.2010 - 21:34) amazing написал(а):
if (isset ($_POST['coment']))
{
$coment = $_POST['coment'];
}
Наверное так Автор хотел сделать, а дальше уже запрос.
Спустя 5 минут, 50 секунд (28.12.2010 - 21:40) quickxyan написал(а):
все равно как-то глупо) если переменная будет тут $_POST['coment'], то она точно уже будет и тут $coment
Спустя 23 минуты, 40 секунд (28.12.2010 - 22:04) amazing написал(а):
Не факт, это уже от конфигурации сервера зависит. Но в этом случае она там я думаю уже будет. Тогда запрос внутрь if засунуть. Тогда хоть смысл появится

Спустя 6 минут, 50 секунд (28.12.2010 - 22:11) quickxyan написал(а):
я себе так это представляю
<?
if (!empty($coment)
{
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES ('".$idcat."', '".$coment."')";
$result = mysql_query($sql) or die(mysql_error());
}
?>
Спустя 3 минуты, 10 секунд (28.12.2010 - 22:14) hellmin написал(а):
Цитата |
на этой странице происходит магия Мускула Заглавие Текст и все Комментарии |
Следовательно комментарии как-то попадали в базу.
Используется уже готовый движок форума или самописный?
Спустя 5 минут, 52 секунды (28.12.2010 - 22:20) inpost написал(а):
quickxyan
Мою подпись и последний урок (id6 or 7), там про register_globals =)
Зарегестрирований
Все правильно в последнем запросе quickxyan, кроме: необходима инициализация, как была у тебя.
Сначала все переменные инициализируй ($id = $_POST['id']) и т.д, а потом:
Мою подпись и последний урок (id6 or 7), там про register_globals =)
Зарегестрирований
Все правильно в последнем запросе quickxyan, кроме: необходима инициализация, как была у тебя.
Сначала все переменные инициализируй ($id = $_POST['id']) и т.д, а потом:
if(!empty($comment))
{
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES ('".$id."', '".$comment."')";
$result = mysql_query($sql) or die(mysql_error());
}
Спустя 4 минуты, 8 секунд (28.12.2010 - 22:24) quickxyan написал(а):
ууууу) да мы ж уже это обсуждали - работает и без инициализации, я конечно понимаю, что лучше самому сделать чем возлагать надежды на php, но все равно хочу делать так

Спустя 2 минуты, 34 секунды (28.12.2010 - 22:26) inpost написал(а):
quickxyan
Что значит работает без инициализации? На моём хостинге выключен регистер_глобалс + попытка его изменить карается 500 ошибкой.
А с выключенным - не работает.
UPDATE: и как говорит твин: скрипт не должен зависить от настроек сервера!
Что значит работает без инициализации? На моём хостинге выключен регистер_глобалс + попытка его изменить карается 500 ошибкой.
А с выключенным - не работает.
UPDATE: и как говорит твин: скрипт не должен зависить от настроек сервера!
Спустя 3 минуты, 50 секунд (28.12.2010 - 22:30) quickxyan написал(а):
ясно, но где тогда возьмется значение в $_POST если лобальные переменные отключены?
Спустя 2 минуты (28.12.2010 - 22:32) inpost написал(а):
Register_globals это именно связь между $_POST и обычной переменной, я писал у себя =)
Если они отключены, то $_POST['id'] & $id - разные переменные, а если включены - то в начале скрипта проходит: $id = $_POST['id'], и они становятся равными.
Поэтому, для того, чтобы везде работало, надо обращаться непосредственно к $_POST & $_GET, или же самому вручную инициализировать их.
Если они отключены, то $_POST['id'] & $id - разные переменные, а если включены - то в начале скрипта проходит: $id = $_POST['id'], и они становятся равными.
Поэтому, для того, чтобы везде работало, надо обращаться непосредственно к $_POST & $_GET, или же самому вручную инициализировать их.
Спустя 1 минута, 59 секунд (28.12.2010 - 22:34) quickxyan написал(а):
эх, ясно - вобщем я валянок и еще упертый)
Спустя 10 часов, 16 минут, 5 секунд (29.12.2010 - 08:50) Зарегестрирований написал(а):
hellmin обижаеш сам писал для себя делаю на счет того что они туда попадали - да но через ПХПМАЙАДМИН
2. попробовал зделать как было написано више НО тот же результат страница просто переадресовуется на главную а в базу нечего не вставляется
Вот есче интерестний факт в коде прописано
Ошибка: mysql_query() expects parameter 2 to be resource, boolean given
Я уже и пробовал подставлять БД
Непомогает
2. попробовал зделать как было написано више НО тот же результат страница просто переадресовуется на главную а в базу нечего не вставляется
Вот есче интерестний факт в коде прописано
or die(mesql_error())
Ошибка: mysql_query() expects parameter 2 to be resource, boolean given
Я уже и пробовал подставлять БД
(INSERT INTO `forum`.`comments`)
Непомогает
Спустя 3 минуты, 9 секунд (29.12.2010 - 08:53) Зарегестрирований написал(а):
По ходу второй параметр не заполняется Но Как если есть форма МЕТОД ПОСТ и имена правильно написаны м вроде фрагмент кода которий обрабативает все это дело правильный хз
Спустя 45 минут, 35 секунд (29.12.2010 - 09:39) jumper_dev написал(а):
Можно еще и так =)
$coment = isset($_POST['comment']) ? $_POST['comment'] : null;
if(!empty($coment)) mysql_query("INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", ".$coment.")",$bdf) or die(mysql_error());
Спустя 3 часа, 15 минут, 24 секунды (29.12.2010 - 12:54) hellmin написал(а):
Вот запрос... (я взял из ответа jumper_dev)
В нем всё хорошо(ну если все заранее прослешить и в базу записать в кавычках).
А вот если взять самое первое сообщение Зарегестрирований и посмотреть html код... Тут четко написано, перейти на страницу ../forum/index.php
Следовательно переменная $idcat вообще отсутствует. И наверное по этому поводу выдается сообщение об ошибке.
mysql_query("INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", ".$coment.")",$bdf)
В нем всё хорошо(ну если все заранее прослешить и в базу записать в кавычках).
А вот если взять самое первое сообщение Зарегестрирований и посмотреть html код... Тут четко написано, перейти на страницу ../forum/index.php
<form method="post" action="../forum/index.php">
Следовательно переменная $idcat вообще отсутствует. И наверное по этому поводу выдается сообщение об ошибке.
Цитата |
Ошибка: mysql_query() expects parameter 2 to be resource, boolean given |
Либо переменную передавать через форму
<input type="hidden" name="idcat" value="$idcat">
Либо форма пусть переходит обратно на ту страницу с которой отправлены данные
<form method="post" action="">
Спустя 3 часа, 5 минут, 14 секунд (29.12.2010 - 16:00) Зарегестрирований написал(а):
Ладно нечего непомогает может копнуть выше нужно?
У меня все работает кроме этой формы
<tr>
<td border="0" class="novosti">
<?
if (isset ($_GET['id']))
{
$idcat = $_GET['id'];
include '../bd.php';
$myrow = mysql_query("SELECT * FROM tema" ,$bdf);
$sqlrow = mysql_num_rows($myrow);
$fmasiv2 = mysql_query("SELECT * FROM tema WHERE id = $idcat" ,$bdf);
$fresult2 = mysql_fetch_assoc($fmasiv2);
?> <div class="ntitle"> <?print ('<p>'.$fresult2['title'].'<br></p>'); ?></div><?
?> <div class="ntext"> <? print ('<p>'.$fresult2['text'].'<br></p>');?> </div> <?
$id = 0;
$myrow3 = mysql_query("SELECT * FROM comments WHERE idtemi = $idcat" ,$bdf);
$fkomentn = mysql_num_rows($myrow3);
while (++$id <= $fkomentn)
{
$fcomment = mysql_fetch_assoc($myrow3);
?> <div class="ncomment"> <? print ('<p>'.$fcomment['koment'].'<br></p>');?> </div> <?
}
?><div class="bfcomment" id="bfcomment" align="center">
<form method="post" action="">
<span>После ввода нажмите Отправить</span>
<p><textarea name="comm" wrap="virtual" id="comm" cols="68" rows="8"></textarea>
<input type="hidden" name="idsh" value="$idcat"/>
<input type="submit" name="ok" value="Отправить" id="otpravitel"/>
</p>
</form>
</div><?
$coment = $_POST['coment'];
$idsh = $_POST['idsh'];
if (!empty($coment)) {
mysql_query("INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idsh.", ".$coment.")",$bdf);
}}
else {
include '../bd.php';
$myrow = mysql_query("SELECT * FROM tema" ,$bdf);
$sqlrow = mysql_num_rows($myrow);
$id = 0;
while (++$id <= $sqlrow)
{
$fmasiv = mysql_query("SELECT * FROM tema WHERE id = $id" ,$bdf);
$fresult = mysql_fetch_assoc($fmasiv);
?> <div class="ntitle"> <?echo "<p><a href=\"index.php?id={$fresult['id']}\">{$fresult['title']}</a></p>\n"; ?></div><?
?> <div class="ntext"> <? print ('<p>'.$fresult['text'].'<br></p>');?> </div> <?
}
}
?>
</td>
</tr>
У меня все работает кроме этой формы
Спустя 2 минуты, 43 секунды (29.12.2010 - 16:02) Зарегестрирований написал(а):
И кстате Слешить и обрабативать с помощию (mysql_escape_string) потом буду мне хоть бы движок накидать
Спустя 19 минут, 8 секунд (29.12.2010 - 16:21) hellmin написал(а):
<textarea name="comm" wrap="virtual" id="comm" cols="68" rows="8"></textarea>
Может тут ошибка? Должно быть $_POST['comm']
$coment = $_POST['coment'];
Спустя 37 минут, 20 секунд (29.12.2010 - 16:59) inpost написал(а):
hellmin
Тоже самое и с именем ID =((( Куда глаза только смотрят автора...
Зарегестрирований
Почитай про $_POST & $_GET в интернете. Кругом полно справочников, а ты такой мелочи не понимаешь...
Тоже самое и с именем ID =((( Куда глаза только смотрят автора...
Зарегестрирований
Почитай про $_POST & $_GET в интернете. Кругом полно справочников, а ты такой мелочи не понимаешь...
Спустя 3 часа, 47 минут, 34 секунды (29.12.2010 - 20:46) Stell написал(а):
а нчего, что у тебя в форме экшн чтоит index.php, вот собственно он тебя и перебрасывает на главную сайта...
и вообще, если ты в одном файле рисуешь форму и пишешь обработчик, то экшн у тебя должен быть собственно сам файл, а в строке, где ты проверяешь существование переменной $_POST['comment'] вместо написанного должно быть:
в общем код должен быть такой:
форма
далее по тексту обработчик:
ну или я чего-то недопонял в вопросе...
и вообще, если ты в одном файле рисуешь форму и пишешь обработчик, то экшн у тебя должен быть собственно сам файл, а в строке, где ты проверяешь существование переменной $_POST['comment'] вместо написанного должно быть:
if (isset($_POST['ok']))
{action}
else
{oops, error}
в общем код должен быть такой:
форма
<form method="post" action="[файл где находится обработчик]">
<span>Оставить коммент</span>
<p><textarea name="coment" wrap="virtual" id="ffcomment" cols="68" rows="8"></textarea>
<input type="submit" name="ok" value="Отправить" id="oki"/>
</p>
</form>
далее по тексту обработчик:
if (isset ($_POST['ok'])) {
$_POST['coment'] == $coment;
}
твой запрос
}
ну или я чего-то недопонял в вопросе...
Спустя 2 часа, 38 минут, 50 секунд (29.12.2010 - 23:25) glock18 написал(а):
А ничего что строковые значения нужно в запросе в кавычки брать?
quickxyan
смирись, register_globals это не только некошерно, но и представляет собой одну большую дыру в твоем проекте.
quickxyan
смирись, register_globals это не только некошерно, но и представляет собой одну большую дыру в твоем проекте.
Спустя 10 часов, 27 минут, 48 секунд (30.12.2010 - 09:53) Зарегестрирований написал(а):
Да спасибо за критику но в тексте сообщения опечатка сорри name="coment"
Я выдернул страницу с резервного хранилиша ИБО так наексперементировалса что запорол всю страницу а на старом стоит переменная name"comm"
Проверил ета переменная создаетса и она непустая проблема в запросе самом но какая сам не знаю
И не нада $idcat передаетса ИБО она на этой странице висит потому что без неё не пошлаб переменная ИД в ссылке и глобальная переменная $_POST['coment'] тоже есть а запроса нет
Я выдернул страницу с резервного хранилиша ИБО так наексперементировалса что запорол всю страницу а на старом стоит переменная name"comm"
Проверил ета переменная создаетса и она непустая проблема в запросе самом но какая сам не знаю
И не нада $idcat передаетса ИБО она на этой странице висит потому что без неё не пошлаб переменная ИД в ссылке и глобальная переменная $_POST['coment'] тоже есть а запроса нет

Спустя 10 минут, 51 секунда (30.12.2010 - 10:04) hellmin написал(а):
Есть такая строка
Запиши ее так
То что покажет echo в студию, на размышление.
mysql_query("INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idsh.", ".$coment.")",$bdf);
Запиши ее так
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idsh.", ".$coment.");";
echo $sql;
mysql_query($sql, $bdf);
То что покажет echo в студию, на размышление.
Спустя 1 час, 27 минут, 56 секунд (30.12.2010 - 11:32) Зарегестрирований написал(а):
Я подставил туда переменную $idcat вот код:
А вот то что показует echo:
INSERT INTO `comments` (`idtemi`,`koment`) VALUES (1, erghthrhtrh45ht);
if (isset ($_POST['ok'])) {
$coment = $_POST['coment'];
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", ".$coment.");";
echo $sql;
mysql_query($sql, $bdf);
}
А вот то что показует echo:
INSERT INTO `comments` (`idtemi`,`koment`) VALUES (1, erghthrhtrh45ht);
Спустя 1 минута, 10 секунд (30.12.2010 - 11:33) hellmin написал(а):
Ну а теперь с одинарными кавычками...
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", '".$coment."');";
$sql = "INSERT INTO `comments` (`idtemi`,`koment`) VALUES (".$idcat.", '".$coment."');";
Спустя 25 минут, 55 секунд (30.12.2010 - 11:59) inpost написал(а):
hellmin
Я это ещё писал на первой странице... но автору по барабану.
В самом начале скрипта пишешь:
Теперь саму вставку:
Результат сюда, или внимательно читаешь то, что тебе скрипт написал! На 99% он ответит, где у тебя была ошибка!
Я это ещё писал на первой странице... но автору по барабану.
В самом начале скрипта пишешь:
<?php error_reporting(E_ALL & ~E_NOTICE); ?>
Теперь саму вставку:
$result = mysql_query("INSERT INTO `comments` SET
`idtemi`= ".$idcat.",
`koment` = '".$coment."'
") or die(mysql_error());
if($result == true)
echo 'Запрос прошел успешно';
else
echo 'Запрос не прошел';
Результат сюда, или внимательно читаешь то, что тебе скрипт написал! На 99% он ответит, где у тебя была ошибка!
Спустя 6 часов, 52 минуты, 31 секунда (30.12.2010 - 18:51) Зарегестрирований написал(а):
Как убить переменную при обновлении страницы?
Спустя 4 минуты, 9 секунд (30.12.2010 - 18:55) kovaldm написал(а):
Какую переменную?
Спустя 11 минут, 39 секунд (30.12.2010 - 19:07) Зарегестрирований написал(а):
думаю что глобальную $_POST['coment'] и главное при обновлении страницы или уходе с неё
Спустя 15 минут, 56 секунд (30.12.2010 - 19:23) kovaldm написал(а):
Если тебе нужна защита от F5, то делай редирект после выполнения сценария.
Спустя 9 минут, 20 секунд (30.12.2010 - 19:32) inpost написал(а):
Зарегестрирований
В мою подпись, быстро (последняя ссылка - практика) =) Там про редирект и про структуру =)
В мою подпись, быстро (последняя ссылка - практика) =) Там про редирект и про структуру =)
Спустя 42 минуты, 10 секунд (30.12.2010 - 20:15) Зарегестрирований написал(а):
Я уже нашол в Гугле :P
Кому интерестно
kovaldmСпасибо за идейку
Вы все супер! :D
Кому интерестно
function reload() {location = 'http://site.com'}; setTimeout('reload()', 0);
kovaldmСпасибо за идейку
Вы все супер! :D
Спустя 3 минуты, 43 секунды (30.12.2010 - 20:18) inpost написал(а):
Зарегестрирований
Ха, а если JS отключен? Зачем делать на JS то, что можно делать и без него?! =) При этом JS нагружает систему пользователя больше.
Ха, а если JS отключен? Зачем делать на JS то, что можно делать и без него?! =) При этом JS нагружает систему пользователя больше.
Спустя 34 минуты, 57 секунд (30.12.2010 - 20:53) Зарегестрирований написал(а):
Сначала вопрос а потом я свои 5 коп вставлю
А как на PHP?
Кстате ты чё Днепропетровске живеш?
----------------------------------------------
Вот разобрался но мне не подходит
А как на PHP?
Кстате ты чё Днепропетровске живеш?
----------------------------------------------
Вот разобрался но мне не подходит
Спустя 2 минуты, 9 секунд (30.12.2010 - 20:55) inpost написал(а):
Я уже 2 или 3 раза отправлял на мой сайт, а ты даже не соизволил глянуть... Вот скрин-шот, хотя бы его посмотри:
http://my.jetscreenshot.com/demo/20101230-sgrm-6kb
UPDATE: да, в Днепропетровске
http://my.jetscreenshot.com/demo/20101230-sgrm-6kb
UPDATE: да, в Днепропетровске
Спустя 4 минуты, 17 секунд (30.12.2010 - 21:00) Зарегестрирований написал(а):
Уже посморел и там узнал что ты с Днепра
--------------------------------------------------
А где домен регистрировал?
--------------------------------------------------
А где домен регистрировал?
Спустя 6 минут, 32 секунды (30.12.2010 - 21:06) inpost написал(а):
Зарегестрирований
Странно, ну да ладно =)
А регистрирую: prohosting.com.ua , мне он нравится =)
Странно, ну да ладно =)
А регистрирую: prohosting.com.ua , мне он нравится =)
Спустя 1 час, 1 минута, 42 секунды (30.12.2010 - 22:08) Зарегестрирований написал(а):
Епть
Опять же столкнулса с проблемой: КОД
у меня новости послу вставления их в базу выводятса КАРЯВА! по серединке както
Как мне заставить их выводится наоборот в запросе while
Опять же столкнулса с проблемой: КОД
if (isset ($_GET['id']))
{
$idcat = $_GET['id'];
include '../bd.php';
$myrow = mysql_query("SELECT * FROM tema" ,$bdf);
$sqlrow = mysql_num_rows($myrow);
$fmasiv2 = mysql_query("SELECT * FROM tema WHERE id = $idcat" ,$bdf);
$fresult2 = mysql_fetch_assoc($fmasiv2);
?> <div class="ntitle"> <?print ('<p>'.$fresult2['title'].'<br></p>'); ?></div><?
?> <div class="ntext"> <? print ('<p>'.$fresult2['text'].'<br></p>');?> </div> <?
$id = 0;
$myrow3 = mysql_query("SELECT * FROM comments WHERE idtemi = $idcat" ,$bdf);
$fkomentn = mysql_num_rows($myrow3);
while (++$id <= $fkomentn)
{
$fcomment = mysql_fetch_assoc($myrow3);
?> <div class="ncomment"> <? print ('<p>'.$fcomment['koment'].'<br></p>');?> </div> <?
}
у меня новости послу вставления их в базу выводятса КАРЯВА! по серединке както
Как мне заставить их выводится наоборот в запросе while
Спустя 6 минут, 56 секунд (30.12.2010 - 22:15) inpost написал(а):
ORDER BY `id` DESC
Можешь поискать в справочниках про сортировку =) ASC -прямо, DESC - в обратном порядке.
Спустя 10 часов, 22 минуты, 19 секунд (31.12.2010 - 08:37) Зарегестрирований написал(а):
Блин спасибо так давно учил что забыл )
К стате сча приступаю к написания странички allusers.php нфверно опять будут вопросы так-что далеко не уходите))))))))
К стате сча приступаю к написания странички allusers.php нфверно опять будут вопросы так-что далеко не уходите))))))))
Спустя 5 часов, 33 минуты, 44 секунды (31.12.2010 - 14:11) Dron19 написал(а):
Цитата (quickxyan @ 28.12.2010 - 18:30) |
$bdf - что это за переменная и почему она стоит там где стоит? |
это скорей всего идентификатор подключения бд
Спустя 5 минут, 25 секунд (31.12.2010 - 14:16) Зарегестрирований написал(а):
ну да ты имеещ ввиду почему bdf а не bd?
ЗЫ этот вопрос закрыт.
ЗЫ этот вопрос закрыт.