Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1

Генерация ссылок на экшены

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#1
Допустим есть каталог новостей, точнее скрипт который их выводит и нам надо генерировать ссылки на их редактирование. Вот я и расскажу как это можно сделать. Самый просто способ это создать файл, который будет принимать ID новости и доставать ее из БД отдавая на редактирование. Например


 1 
 2 
 3 
 4 
 5 
 6 
<?php if (empty($_GET['id'])) header('Location: /'); die();
$q mysql_query("SELECT * FROM `news` WHERE `id` = '" .  intval($_GET['id'])  . "' LIMIT 1");
if (
mysql_num_rows($q) < 1header('Location: /'); die();
//теперь в $result содержится массив с данными новости
$result mysql_fetch_assoc($q);
//и мы можем заполнить форму этими данными. То есть показывать не пустую форму а с данными новости, ведь мы не пишем новую новость а редактируем уже имеющуюся?>

так вот допустим этот файл называется edit.php, тогда нам надо формировать ссылки вида http://mysite/edit.php?id=ИД НОВОСТИ

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#2
 1 
 2 
<?php intval($_GET['id'])?>

что значит?

И как заполнять форму содержимым новости? И зачем везде header? Несколько не понял скриптиг.

И как отправляеть ему id?

Отредактировано автором 28 Окт 2010

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#3
skad0 пишет:
И как отправляеть ему id?
http://mysite/edit.php?id=ИД НОВОСТИ

вот видишь я передаю в гете id. $_GET это все что идет в адресной строке после знака вопроса. Там можно передавать сколько хочешь параметров и разделять их &.

skad0 пишет:
И зачем везде header?
Это если ошибка произошла я переправляю на главную, но это чисто для илюстрации, ты можешь сделать както по другому например выдавать сообщения об ошибке. Это уже твое дело как сообщить об ошибке, это ты уже умеешь:)

skad0 пишет:
что значит?
Дело в том что в $_GET['id'] могут затулить что угодно, а функция intval() гарантирует что после нее там будет именно число. Это для безопасности, что бы быть увереным что в запрос пойдет имено число а не например '; DELETE FROM `users`

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#4
Последнее, что я не особо прошарил:
Как именно генерировать отображение ссылки с нужным id? Не сувать ли её в массив?

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#5
ну например ты в цикле выводишь свои новости

 1 
 2 
 3 
 4 
 5 
 6 
<?php while($result mysql_fetch_assoc($q)) {
     
$html str_replace(четотам);
     
$html str_replace(четотам);
     
//и тут же ссылки формируешь
    
$html str_replace('{EDIT_URL}''/edit.php?id=' $result['id'], $html );
}
?>

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)

skad0

  • Атом-мозг
  • Юзер
  • 841
  • Репутация:10 
  • Предупреждения: 0 
  • Регистрация:
    2 Окт 2010
#6
А как в форму пихнуть нужное содержимое?

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Ноя -0001
#7
у инпутов есть поле value и его можно заполнять данными. Вот при помощи того str_replace ты можешь в эти value запихать что надо. то есть сами инпуты будут выглядеть в шаблоне примерно так

Code:
<input type="text" value="{TITLE}" />

Я горжусь тем, что создал бесплатную CMS - AtomX. И люблю нашу команду)
1
Сейчас online: 51. Зарегистрированных: 2. Гостей: 49.