Вот она:
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)...
Ну ты элементарно забыл, что перед переменными в 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, сделал. Всеравно ошибка!
Вот весь скрипт целиком. Может в нем что-то не так.
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
А вот эта же книга но БЕЗ ссылки удаления 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 написали а толку ноль. Стыдно мне и вам должно быть тоже(((
Вы же тут многие профессионалы а не можете помочь новичку составить какую-то строчку удаления сообщения из гостевой. Это для меня сложно а для вас как семечки...
Ваши варианты НЕ работают!
Такая проблема как какая-то ссылка удаления должна решаться в первом же ответе к теме, это же не движок для 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']
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! Твой вариант оказался рабочим!
Уф... как же долго я пытался сделать ссылку удаления... просто пипец.
Спасибо waldicom! Твой вариант оказался рабочим!
Уф... как же долго я пытался сделать ссылку удаления... просто пипец.