Уже советовал многим:
В базе нецелесообразно хранить путь к картинке. В любой таблице должен быть уникальный первичный ключ. Картинки помещаются в определенную папку на сервере и переименовываются в соответствии с id записи. image$Id.ext
Плюсы:
Нет лишнего столбца в БД.
Названия файлов имеют один стиль
Чтобы выбрать картинку для определенной строки, не нужно лишний раз лезть в базу
Так я загружаю картинку к конкретной новости и вытаскиваю id заголовок и картинку.
Подскажите как записать путь к картинке в базу из этого когда:
if(copy($_FILES["filename"]["tmp_name"],
"$uploadimage".substr(md5(time()), 11).".jpg"))
Здесь я копирую файл, потом даю ему новое случайное имя уже на своем сервере.
А как получить путь к файлу в переменную, чтобы занести его в базу ($uploadimage – в этой переменной у меня путь к директории загрузки записан)
Я делаю так:
if (!isset($id)) - если не существует переменной, вывожу через цикл весь список новостей, а если переменная id существует - вывожу форму для добавления. Но переменной PHP не видит. Но если я нажимаю ссылкe такого вида:
/admin.php?mod=static&id=1 значит эта переменная должна появиться, она же стоит в конце.
Вопрос такой. У меня есть ссылка /admin.php?mod=static – она выводит подключенный модуль, а в этом модуле я вывожу контент и ссылка на конкретную страницу получается уже вот такой:
/admin.php?mod=static?id=1
Разрешено ли такое вообще, ссылка с двумя знаками "?".
И у меня не передается последний параметр id=1. Я делаю проверку но ни ошибки нет, ни данных о переменной и сам контент не выводится. Я так решил что проблема в двух вопросительных знаках "?"
Сделал загрузку файлов, а вот переименовать никак не могу.
Вот такой код загркузи и фалы записываются в нужную директорию:
if(copy($_FILES["filename"]["tmp_name"],
"$uploadimage".$_FILES["filename"]["name"]))
Подскажите какой код дописать чтобы файл переименовывался в случайное имя.
Я сделал файл b.jpg и он записывается и просто меняется, а как сделать оригинальное имя, например 15963247154.jpg
Адрес обработчика формы должен быть тоже admin.php?mod=editnews, в котором и будет подключен файл addnews.php. Обращение к файлу addnews.php напрямую должно быть запрещено!
Так файл же addnews.php добавляет новость, файл editnews редактирует, я пока не дошел до редактирования.
Обращение к файлу addnews.php напрямую должно быть запрещено - это через .htaccess делается, верно?
Вот именно это я и спрашивал, какой конструкцией лучше пользоваться
Для разбиения PHP-скрипта на логически завершенные компоненты можно использовать отдельные функции или классы - такой подход может быть удобен при обработке ошибок в том числе тех которые являются критическими - поскольку благодаря предварительному разделению на блоки имеется возможность остановить выполнение только одного из них - без прерывания всей программы
Согласен, но я только учу PHP поэтому и спрашиваю что и как.
Вот через SWITCH все подключил, модули выводятся нормально но есть нюансы.
1. Если модуль включен в страницу все нормально, но когда модуль выступает обработчиком формы, то после выполнения запроса через форму, он выводится как отдельная страница. Например страница admin.php я в ней подключаю через SWITCH модуль addnews где стоит форма добавления и этот же файл обработчик формы. После запрос к форме выводится файл-модуль addnews.php Как тут быть?
2. Подключение к базе у меня стоит на странице admin.php и в модуле тоже стоит подключение к БД через require и на странице admin.php выдается ошибка, что у вас уже есть подключение к БД, но мне же нужно это подключение и к странице обработчику addnews.php Как тут быть?
В чем проблемма, непойму, ты передаешь с формой переменную, и пиши ее значение в БД, а вообще для булевских переменных лучше использовать checkbox.
Ну вот я сделал два чекбокса.
<input type="checkbox" name="active" value="1" id="active" checked="checked" />
<input type="checkbox" name="active" value="0" id="noactive" />
Поле в таблице сделал tinyint
И делаю проверку:
if (isset ($_POST['active'])) {$active = $_POST['1'];}
if (isset ($_POST['noactive'])) {$active = $_POST['0'];}
Потом запись в БД
$result = mysql_query ("INSERT INTO static (active) VALUES (''$active')");
В чем проблемма, непойму, ты передаешь с формой переменную, и пиши ее значение в БД, а вообще для булевских переменных лучше использовать checkbox.
Ну вот я сделал два чекбокса.
<input type="checkbox" name="active" value="1" id="active" checked="checked" />
<input type="checkbox" name="active" value="0" id="noactive" />
Поле в таблице сделал tinyint
И делаю проверку:
if (isset ($_POST['active'])) {$active = $_POST['1'];}
if (isset ($_POST['noactive'])) {$active = $_POST['0'];}
Потом запись в БД
$result = mysql_query ("INSERT INTO static (active) VALUES (''$active')");
Вопрос такой, есть форма для передачи данных в БД (добавление статической страницы). Все нормально получается кроме передачи данных через radiobox. У меня две кнопки, выбрать можно только одну и одна уже актинва по умолчанию.
Задумка такая: если стоит 1 – страница активна и показывается на сайте, если стоит 0 – то страница не выводится. Вот я и хочу передать эти значения в базу, в поле active. Подскажите как правильно это сделать.
P.S. И еще вопрос по теме, правильно ли я делаю активную и неактивную страницы. Может есть какой-то более оптимальный вариант?