[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает строка
ak167
Написал скрипт гостевой книги на MySQL по книжке. Решил дополнить ссылкой удаления сообщений, но как всегда столкнулся с одной и той же проблемой - НЕ РАБОТАЕТ!

Вот она:

echo "<a href=\"".$_SERVER['PHP_SELF']."?ID=".element[$i]['ID']."$flag=1\">del</a>";


Эта ссылка вставлена в цикл, в котором поочередно многомерному массиву "element" присваиваются значения из тиблицы в MySQL с сообщениями гостевой книги. Ссылка должна передать get-методом id того сообщения, которое нужно удалить и заодно присвоить значение переменной "flag" равное единице. Это нужно для того, чтобы сделать так: if($_GET['flag']==1){здесь будет код удаления сообщения с id, заданным по ссылке}

Когда я добавил ссылку, гостевая книга работать вообще перестала и вместо ней вылезает сообщение с ошибкой в строке 28, т.е. в строке удаления. Без нее все работает.

Помогите разобраться в чем дело.

Ссылку целиком скопировал из книжки. неужели ее такие чайники написали?)))



Спустя 2 минуты, 29 секунд (26.11.2009 - 21:42) Alehandr написал(а):

echo "<a href=\"".$_SERVER['PHP_SELF']."?ID=".$element[$i]['ID']."&flag=1\">del</a>";


Проверяй путем код...

Спустя 10 минут, 29 секунд (26.11.2009 - 21:52) ak167 написал(а):
Alehandr, что? Каким путем? Можно яснее?

Спустя 10 минут, 52 секунды (26.11.2009 - 22:03) Alehandr написал(а):
ak167
Ну ты элементарно забыл, что перед переменными в PHP ставиться "$", и запрос не верно сформулировал, да еще и с ошибками (за место flag написал flaf)...

Спустя 23 часа, 21 минута, 42 секунды (27.11.2009 - 21:25) ak167 написал(а):
Alehandr, вообщето "$" тут везде стоит. Слово flaf написано только здесь, а в самой гостевой правильно.
Всеравно НЕ работает!

Спустя 13 минут, 45 секунд (27.11.2009 - 21:39) waldicom написал(а):
сравни строки:
echo "<a href=\"".$_SERVER['PHP_SELF']."?ID=".element[$i]['ID']."$flag=1\">del</a>"; // твоя строка
echo "<a href=\"".$_SERVER['PHP_SELF']."?ID=".$element[$i]['ID']."&flag=1\">del</a>"; // от Alehandr


если не видно разницы, то смотри еще раз...

Спустя 5 минут, 35 секунд (27.11.2009 - 21:44) Mizka написал(а):
echo '<a href="'.$_SERVER['PHP_SELF'].'?ID='.$element[$i]['ID'].'&flag=1">del</a>';

Спустя 12 минут, 59 секунд (27.11.2009 - 21:57) ak167 написал(а):
Mizka, с твоим вариантов вообще не создается урл-ссылка содержащая "ID=5&flag=1"!!!


waldicom, сделал. Всеравно ошибка!

Вот весь скрипт целиком. Может в нем что-то не так.



<?php
// удаление сообщений
if($_GET['flag']==1 AND $_GET['ID'])
{
$sql1="DELETE FROM table1 WHERE ID=".$_GET['ID'];
$link1=mysql_connect("localhost", "base", "pass");
mysql_select_db("table1", $link);
$result=mysql_query($sql1, $link1);
}

// Чтение из базы
$sql="SELECT ID login, email, message, datum FROM table1 ORDER BY ID DESC";
$link=mysql_connect("localhostr", "base", "pass");
mysql_select_db("table1", $link);
$result=mysql_query($sql, $link);

for($i=0; $i<mysql_num_rows($result); $i++)
{
//разложим данные из БД в массив. Он получитсья многомерный!
$element[$i]=mysql_fetch_array($result);

// Выведем данные из многомерного массива на экран (отображение записей)
echo "<hr><br>";
echo $element[$i]['login'];
echo "<br>";
echo $element[$i]['email'];
echo "<br>";
echo $element[$i]['message'];
echo "<br>";
echo $element[$i]['datum'];
echo "<br>";


// ссылка удаления
echo "<br>";


echo "<a href="".$_SERVER['PHP_SELF']."?ID=".$element[$i]['ID']."&flag=1">del</a>";


echo "<br><hr>";
}



if($_POST['sent']==1)
{

if(!$_POST['login']){$nologin=1;}
if(!$_POST['email']){$noemail=1;}
if(!$_POST['message']){$nomessage=1;}

if($_POST['login'] and $_POST['email'] and $_POST['message'])
{

//Удаляем все пробелы из полей
$_POST['login']=trim($_POST['login']);
$_POST['email']=trim($_POST['email']);

//удаляем html и php тэги из полей
$_POST['login']=strip_tags($_POST['login']);
$_POST['email']=strip_tags($_POST['email']);
$_POST['message']=strip_tags($_POST['message']);

//заменяем символ тильды на пробел
$_POST['login']=str_replace('~', ' ', $_POST['login']);
$_POST['email']=str_replace('~', ' ', $_POST['email']);
$_POST['message']=str_replace('~', ' ', $_POST['message']);

//заменяем символ возврата каретки и переноса строки на пробел
$t1=chr(10);
$t2=chr(13);
$_POST['login']=str_replace($t1, ' ', $_POST['login']);
$_POST['email']=str_replace($t1, ' ', $_POST['email']);
$_POST['message']=str_replace($t1, ' ', $_POST['message']);
$_POST['login']=str_replace($t2, ' ', $_POST['login']);
$_POST['email']=str_replace($t2, ' ', $_POST['email']);
$_POST['message']=str_replace($t2, ' ', $_POST['message']);

$sql="INSERT INTO table1 (login, email, message, datum) values ('".$_POST['login']."', '".$_POST['email']."', '".$_POST['message']."', now())";
$link=mysql_connect("localhost", "base", "pass");
mysql_select_db("table1", $link);
$result=mysql_query($sql, $link);
if($result){echo "Сообщение отправлено!";}

echo $_POST['login'].$_POST['email'].$_POST['message'];

unset($_POST['login']);
unset($_POST['email']);
unset($_POST['message']);

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<
input type="hidden" name="sent" value="0">
<
input type="submit" value="Отправить еще">
</
form>
<?php
}

}



if(!$_POST['sent'])
{
?>

<html><body>
<
hr><br><br>
<
form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<
input type="hidden" name="sent" value="1">
Логин:<br><input type="text" name="login" value="<?php echo $_POST['login']; ?>">
<?php if($nologin==1){echo "Введите логин!";} ?>
<br>E-mail:<br><input type="text" name="email" value="<?php echo $_POST['email']; ?>">
<?php if($noemail==1){echo "Введите email!";} ?>
<br>Сообщение:<br><textarea name="message" type="text" cols="50' rows="30" value="<?php echo $_POST['message']; ?>"></textarea>
<?php if(
$nomessage==1){echo "Введите сообщение!";} ?>
<br><input type="
submit" value="Написать">
</form>
</body></html>

<?php
}
?>



Спустя 14 минут, 23 секунды (27.11.2009 - 22:12) Mizka написал(а):
малость опечатался, исправил, у тебя тут вообще не правильно ссылка построена.
echo "<a href="".$_SERVER['PHP_SELF']."?ID=".$element[$i]['ID']."&flag=1">del</a>";

почитай о конкатенации

Спустя 2 минуты, 13 секунд (27.11.2009 - 22:14) Joker написал(а):
ak167 ты это в веб выкладывал? если да то дай адресок.

Спустя 8 минут, 16 секунд (27.11.2009 - 22:22) ak167 написал(а):
Joker, держи http://antizlo.ru/php/mysqlguestbook7.php

А вот эта же книга но БЕЗ ссылки удаления http://antizlo.ru/php/mysqlguestbook6.php

Спустя 5 минут, 41 секунда (27.11.2009 - 22:28) Mizka написал(а):
тебе же ясно пишет. почитай о конкатениции
syntax error, unexpected '"', expecting ',' or ';' in /home/www/z71647/htdocs/antizlo.ru/php/mysqlguestbook7.php on line 38

Спустя 6 минут, 56 секунд (27.11.2009 - 22:35) ak167 написал(а):
Mizka, прочитал. И что? Я это и так знал, просто случайно забыл в "$" поставить, но даже когда это сделал всеравно не работает.
Вы же тут многие профессионалы а не можете помочь новичку составить какую-то строчку удаления сообщения из гостевой. Это для меня сложно а для вас как семечки...
Ваши варианты НЕ работают!

Такая проблема как какая-то ссылка удаления должна решаться в первом же ответе к теме, это же не движок для CMS а всего лишь код в одну строчку. А мы тут уже сообщений 10 написали а толку ноль. Стыдно мне и вам должно быть тоже(((

Цитата
syntax error, unexpected '"', expecting ',' or ';' in /home/www/z71647/htdocs/antizlo.ru/php/mysqlguestbook7.php on line 38

Mizka, если б я знал где именно ошибка в этой строчке, я бы к вам не обращался. Создал эту тему потому что не знаю где именно неправильный синтаксис в строке удаления.
Я же говорю, что эту ссылку списал в своей книжке точь в точь! Как там написано, так и у меня в коде! Но пишет ошибку на эту строку. В каком именно месте в этой строке ошибка синтаксиса?

Спустя 5 минут, 12 секунд (27.11.2009 - 22:40) waldicom написал(а):
Цитата (ak167 @ 27.11.2009 - 21:35)
Стыдно мне и вам должно быть тоже(((
Это наверное тому, у кого самомнения 0...
Вот тебе строка, пробуй:
echo '<a href="' . $_SERVER['PHP_SELF'] . '?ID=' . $element[$i]['ID'] . '&flag=1">del</a>';

Спустя 10 минут, 2 секунды (27.11.2009 - 22:50) ak167 написал(а):
waldicom, опять не работает! правда ошибку больше не выдает, т.е. отображает гостевую книгу и ссылку, но при нажатии на нее запись не удаляется!

Спустя 3 минуты, 13 секунд (27.11.2009 - 22:53) ak167 написал(а):
waldicom, кстати, зайдите по адресу книжки и посмотрите не строку GET-запроса. В ней нет id! Т.е. она выглядит вот так
http://antizlo.ru/php/mysqlguestbook7.php?ID=&flag=1
а должна так
http://antizlo.ru/php/mysqlguestbook7.php?ID=5&flag=1

Т.е. к строчке не подсоединяется $element[$i]['ID']

Спустя 4 минуты, 18 секунд (27.11.2009 - 22:57) ak167 написал(а):
Хотя все. Уже заработало! Я запятую забыл написал в sql-запросе=)))

Спасибо waldicom! Твой вариант оказался рабочим!

Уф... как же долго я пытался сделать ссылку удаления... просто пипец.
Быстрый ответ:

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