Language
Contacts
GitHub
Support
Registration
Enter
Login: Password: The autologin:
Users
Recent posts
Ответить
1

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

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Nov -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 Oct 2010
#2
 1 
 2 
<?php intval($_GET['id'])?>

что значит?

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

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

Edit by author 28 Oct 2010

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Nov -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 Oct 2010
#4
Последнее, что я не особо прошарил:
Как именно генерировать отображение ссылки с нужным id? Не сувать ли её в массив?

Drunya

  • Man of God
  • Админ
  • 3527
  • Репутация:110 
  • Предупреждения: 0 
  • Регистрация:
    30 Nov -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 Oct 2010
#6
А как в форму пихнуть нужное содержимое?

Drunya

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

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

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