<div id="right">
<?php
if(isset($_POST)){
}else{
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0){
while($row_rub = mysql_fetch_assoc($query_rub)){
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
}
}
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить">
</form>
';
}
?>
/div>
Так вот, что то в тупик зашёл. Хочу сделать в доном файле чтоб была и форма добавления картинки и обработчик. Тоесть нужно типо если глоб. массив Пост есть то добавлятькартинку в базу, а ести нет то выводить форм. Сверху я накидал код, поправьте его, а дальше я уже буду разбираться
Спустя 7 минут, 1 секунда (30.01.2012 - 13:54) bob marley написал(а):
<?php
if(isset($_POST)){ ///Укажи конкретно например: $_POST['img']
}else{
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0){
while($row_rub = mysql_fetch_assoc($query_rub)){
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
}
}
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить">
</form>
';
}
?>
Где переменная $query_rub ?
Спустя 7 минут, 33 секунды (30.01.2012 - 14:02) bob marley написал(а):
Цитата (hamado @ 30.01.2012 - 10:47) |
if(isset($_POST)){ }else{ echo ' <form method="post" action=""> <p>Категория<br> |
Зачем писать так?измени условие просто да и все!
Спустя 2 минуты, 37 секунд (30.01.2012 - 14:04) veolancer написал(а):
bob marley
Цитата |
Где переменная $query_rub ? |
Она выше, тут не всё написано.
Цитата |
if(isset($_POST)){ ///Укажи конкретно например: $_POST['img'] |
Мне надо чтоб иенно на сущьнось самого глоб. массиба проверка была, у меня в начале кода так же проверка стоит, если пост есть то все переменные из глоб.массива преобразуются в обычные переменные.
В этом виде(который в описании темы) он мне выдаёт пустоту, тобишь ни форму и ничего
Спустя 32 секунды (30.01.2012 - 14:05) veolancer написал(а):
Цитата (bob marley @ 30.01.2012 - 10:54) |
Зачем писать так?измени условие просто да и все! |
В смысле?
Спустя 3 минуты, 30 секунд (30.01.2012 - 14:08) veolancer написал(а):
Скажу проще -> Мне нужно сделать форму и обработчик в одном файле а не в 2х
Спустя 1 минута, 48 секунд (30.01.2012 - 14:10) bob marley написал(а):
hamado
зачем ты пишешь:
если есть г.массив,то пустота,а если нет код!
нельзя сделать если нет г.массива,то код?
я конечно не знаю противоположного isset(), и пишу так if($_POST == '') не знаю верно это или нет!
Покажи переменную $query_rub!
зачем ты пишешь:
если есть г.массив,то пустота,а если нет код!
нельзя сделать если нет г.массива,то код?
я конечно не знаю противоположного isset(), и пишу так if($_POST == '') не знаю верно это или нет!
Покажи переменную $query_rub!
Спустя 4 минуты, 41 секунда (30.01.2012 - 14:15) inpost написал(а):
bob marley
Отрицания условия - восклицательный знак.
if(!isset())
hamado
Накидал, молодец. Осталось заполнить оба условия. Только в чём конкретно проблема?
Кстати, для вывода формы не надо писать else.
Отрицания условия - восклицательный знак.
if(!isset())
hamado
Накидал, молодец. Осталось заполнить оба условия. Только в чём конкретно проблема?
Кстати, для вывода формы не надо писать else.
Спустя 1 минута, 56 секунд (30.01.2012 - 14:17) nugle написал(а):
bob marley
Цитата |
я конечно не знаю противоположного isset(), и пишу так if($_POST == '') не знаю верно это или нет! |
if(empty($_POST['ta']))
hamado,
я бы проверял не пустоту пост данных, а нажатие кнопки
Спустя 1 минута, 33 секунды (30.01.2012 - 14:18) bob marley написал(а):
hamado
inpost прав.можно просто если нет г.массива то остановить выполнение скрипта exit(); к примеру.А форму за <?php ?>
Вы же об этом,Стас?
inpost прав.можно просто если нет г.массива то остановить выполнение скрипта exit(); к примеру.А форму за <?php ?>
Вы же об этом,Стас?
Спустя 1 минута, 23 секунды (30.01.2012 - 14:20) inpost написал(а):
nugle
Админка? Не вопрос, а если паблик... подделки данных вызовут ошибки.
bob marley
Никаких exit
Я не люблю сочинять чего-то от себя. Пусть человек напишет скрипт, сделает всё, а уже потом, если будут проблемы, и разберём ошибки. Мне так удобнее.
Админка? Не вопрос, а если паблик... подделки данных вызовут ошибки.
bob marley
Никаких exit
Я не люблю сочинять чего-то от себя. Пусть человек напишет скрипт, сделает всё, а уже потом, если будут проблемы, и разберём ошибки. Мне так удобнее.
Спустя 4 минуты, 9 секунд (30.01.2012 - 14:24) bob marley написал(а):
inpost
ладно,пусть без меня ошибки делает=Ъ
А то сейчас на подсказываю всякой фигни
Меня ещё потом как обычно во всех грехах своих винить будут
ладно,пусть без меня ошибки делает=Ъ
А то сейчас на подсказываю всякой фигни
Меня ещё потом как обычно во всех грехах своих винить будут
Спустя 6 часов, 28 минут, 3 секунды (30.01.2012 - 20:52) veolancer написал(а):
bob marley inpost
Скрипт примерно будет выглядеть так(просто вы не до поняли)
Так примерно?
Вопрос в том как мне вывести форму чтобы в ней цыкл работал для вывода рубрик?
Скрипт примерно будет выглядеть так(просто вы не до поняли)
<?php
#По идее можно иссет не указывать, от в любом случае вернёт или фолс или труе(если я конечно прав)
if($_POST){
#Здесь код чтоб добавить картинку в базу
}else{
#А здесь если вернётся фолс, то выводить форму
}
?>
Так примерно?
Вопрос в том как мне вывести форму чтобы в ней цыкл работал для вывода рубрик?
Спустя 4 минуты, 54 секунды (30.01.2012 - 20:57) veolancer написал(а):
bob marley
Ты хотел $query_rub увидеть
Ты хотел $query_rub увидеть
<?php
#Выборка категорий картинок
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
?>
Спустя 6 минут, 25 секунд (30.01.2012 - 21:03) inpost написал(а):
hamado
Не понял я тебя. Увы.
Потому что ты показываешь отрывок кода, который по своей природе правильный частично, но хочешь где-то там в глубине души нечто иное, которое не объясняешь.
Если у тебя не 2, а 3 варианта, то делай разные условия.
Не понял я тебя. Увы.
Потому что ты показываешь отрывок кода, который по своей природе правильный частично, но хочешь где-то там в глубине души нечто иное, которое не объясняешь.
Если у тебя не 2, а 3 варианта, то делай разные условия.
Спустя 12 минут, 39 секунд (30.01.2012 - 21:16) veolancer написал(а):
inpost Окай, весь код страницы брошу
<?php
#Показ всех ошибок в php документе
error_reporting(E_ALL);
#Подключаем файл конфигураций
include './includes/config.php';
#Подключаемся к БД
include './includes/db.php';
#Авторизация
include './includes/lock.php';
#Выборка категорий картинок
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
if(isset($_POST)){
#Перевод из массива POST в переменную
if (!empty($_POST['rub'])) $rub = $_POST['rub'];
if (!empty($_POST['title'])) $title = $_POST['title'];
if (!empty($_POST['preview'])) $preview = $_POST['preview'];
if (!empty($_POST['img'])) $img = $_POST['img'];
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="icon" href="./favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">
</head>
<body>
<div id="wrapper">
<?php include './includes/blocks/header.php'; ?>
<div id="content">
<?php include './includes/blocks/left.php'; ?>
<div id="right">
<?php
if(isset($_POST)){
#Здесь будет код добавления в БД
}else{
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0){
while($row_rub = mysql_fetch_assoc($query_rub)){
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
}
}
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить">
</form>';
}
?>
</div>
<div class="clear"></div>
</div>
<?php include './includes/blocks/footer.php'; ?>
</div>
</body>
</html>
Спустя 8 минут, 10 секунд (30.01.2012 - 21:24) nugle написал(а):
Если я правильно понял, то:
<?php
#Показ всех ошибок в php документе
error_reporting(E_ALL);
#Подключаем файл конфигураций
include './includes/config.php';
#Подключаемся к БД
include './includes/db.php';
#Авторизация
include './includes/lock.php';
#Выборка категорий картинок
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
#Перевод из массива POST в переменную
$rub = !empty($_POST['rub']) ? $_POST['rub'] : null;
$title = !empty($_POST['title']) ? $_POST['title'] : null;
$preview = !empty($_POST['preview']) ? $_POST['preview'] : null;
$img = !empty($_POST['img']) ? $_POST['img'] : null;
?>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="icon" href="./favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">
</head>
<body>
<div id="wrapper">
<?php include './includes/blocks/header.php'; ?>
<div id="content">
<?php include './includes/blocks/left.php'; ?>
<div id="right">
<?php
if(isset($_POST['sub'])){
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
}else{
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0){
while($row_rub = mysql_fetch_assoc($query_rub)){
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
}
}
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить" name="sub">
</form>';
}
?>
</div>
<div class="clear"></div>
</div>
<?php include './includes/blocks/footer.php'; ?>
</div>
</body>
</html>
Спустя 9 минут, 30 секунд (30.01.2012 - 21:33) veolancer написал(а):
Цитата (hamado @ 30.01.2012 - 18:16) |
$rub = !empty($_POST['rub']) ? $_POST['rub'] : null; |
Точно ж можно так сделать, что то из головы вылетело, но только чуть изменить
$rub = !empty($_POST['rub']) ? $_POST['rub'] : ''; (null убрать, от не нужен, т.к. иначе сделать пустоту, тобишь ничего не делать. Так вроди правельней)
Цитата (hamado @ 30.01.2012 - 18:16) |
if(isset($_POST['sub'])){ |
А что за sub ?
Спустя 9 минут, 20 секунд (30.01.2012 - 21:43) veolancer написал(а):
Можно же указать заместо этого
Цитата (nugle @ 30.01.2012 - 18:24) |
if(isset($_POST['sub'])){ |
Вот это
Цитата |
if(isset($rub, $title, $preview, $img)){ |
Спустя 2 минуты, 25 секунд (30.01.2012 - 21:45) veolancer написал(а):
Опять же форма всё ровно не выводиться(
Спустя 3 минуты, 32 секунды (30.01.2012 - 21:49) nugle написал(а):
Цитата |
А что за sub ? |
<input type="submit" value="Добавить" name="sub">
Смотришь нажата ли кнопка
Цитата |
Опять же форма всё ровно не выводиться( |
это
if(isset($_POST['sub'])){
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
}else{
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0){
while($row_rub = mysql_fetch_assoc($query_rub)){
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
}
}
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить" name="sub">
</form>';
}
поменяй на
if(isset($_POST['sub'])){
$query_rub = mysql_query("
SELECT *
FROM `rub`
ORDER BY `title`")
or die(mysql_error());
}
echo '
<form method="post" action="">
<p>Категория<br>
<select name="rub" id="rub">';
if(mysql_num_rows($query_rub) > 0)
while($row_rub = mysql_fetch_assoc($query_rub))
echo '<option value="'. (int)$row_rub['id'] .'">'. htmlspecialchars($row_rub['title']) .'</option>';
echo '</select>
</p>
<p>Название(Теги)<br><input type="text" align="left" size="50" name="title" id="title"></p>
<p>Превью<br><input type="text" align="left" size="50" name="preview" id="preview"></p>
<p>Картинка<br><input type="text" align="left" size="50" name="img" id="img"></p>
<input type="submit" value="Добавить" name="sub">
</form>';
Спустя 7 минут, 49 секунд (30.01.2012 - 21:56) veolancer написал(а):
Цитата (hamado @ 30.01.2012 - 18:45) |
это |
Цитата (hamado @ 30.01.2012 - 18:45) |
поменяй на |
А в чём отличие? То что скобки убрал чтоли
Спустя 2 минуты, 34 секунды (30.01.2012 - 21:59) inpost написал(а):
Вообще это делается так, без условий ELSE.
<?php
if(isset($_POST['sub']))
{
// действие по нажатию на кнопку
header("Location: url");
}
?>
<form>
</form>
Спустя 1 минута, 37 секунд (30.01.2012 - 22:01) nugle написал(а):
ты попробовал?
Спустя 3 минуты, 37 секунд (30.01.2012 - 22:04) veolancer написал(а):
inpost
тоесть после
тоесть после
Цитата (hamado @ 30.01.2012 - 18:56) |
header("Location: url"); |
Я указываю
что нужно сделать?
что нужно сделать?
Спустя 1 минута, 21 секунда (30.01.2012 - 22:06) nugle написал(а):
я же дал тебе готовый код, только вставить тебе осталось
Спустя 27 секунд (30.01.2012 - 22:06) inpost написал(а):
hamado
Почему после него ты должен что-то указывать? Что вообще за функция такая?
Почему после него ты должен что-то указывать? Что вообще за функция такая?
Спустя 1 минута, 55 секунд (30.01.2012 - 22:08) veolancer написал(а):
Цитата (inpost @ 30.01.2012 - 18:59) |
Вообще это делается так, без условий ELSE.<?php |
Так всё выводиться, остальсь проверить на добавление)
Спустя 8 минут, 7 секунд (30.01.2012 - 22:16) veolancer написал(а):
А как правильно занести в базу данные с учётом защиты от иньекция и т.п. пакастей?
примерно
Я как то раз делат так, и у меня возникали проблемы по этому.
Если отфильтровки делать типа int() htmlspesialchars()Б то они на вывод вроди. А если mysql_real_escape_string() тоже не совсем хорошо
примерно
<?php
mysql_query("INSERT INTO pic (`rub`, `title`, `preview`, `img`) VALUES ($rub, $title, $preview, $img));
Я как то раз делат так, и у меня возникали проблемы по этому.
Если отфильтровки делать типа int() htmlspesialchars()Б то они на вывод вроди. А если mysql_real_escape_string() тоже не совсем хорошо
Спустя 6 минут, 22 секунды (30.01.2012 - 22:22) nugle написал(а):
Цитата |
int() |
когда успел такую функцию придумать?
дальше тебе сюда
http://phpforum.su/index.php?showtopic=21213
а почему
mysql_real_escape_string() тоже не совсем хорошо?
Спустя 3 минуты, 38 секунд (30.01.2012 - 22:26) veolancer написал(а):
Цитата (hamado @ 30.01.2012 - 19:16) |
int() |
Имею ввиду на отсев числа.
Цитата (hamado @ 30.01.2012 - 19:16) |
а почему mysql_real_escape_string() тоже не совсем хорошо? |
В прошлый раз у меня после занесения инфы в базу добавлялся гиганский пробел в начало каждой строки.
Делал по уроку ирбис, в разделе исправления попова вроди
http://irbis-team.com/15/10/4
Спустя 2 минуты, 59 секунд (30.01.2012 - 22:29) nugle написал(а):
hamado
Цитата |
В прошлый раз у меня после занесения инфы в базу добавлялся гиганский пробел в начало каждой строки. |
скорее всего это было связано с тем. что в переменной были пробелы. обрезай с помощью trim
Спустя 3 минуты, 3 секунды (30.01.2012 - 22:32) Игорь_Vasinsky написал(а):
Цитата |
int() |
может всё же
(int)
или уж (но медленнее)
intval()
Спустя 1 минута, 32 секунды (30.01.2012 - 22:34) veolancer написал(а):
Тьфу блин не так написал, вот (int)
Да да я тока вспомнил
Да да я тока вспомнил
Спустя 1 минута, 5 секунд (30.01.2012 - 22:35) veolancer написал(а):
Цитата (hamado @ 30.01.2012 - 19:26) |
обрезай с помощью trim |
А где её прописывать в коде?
Спустя 1 минута, 52 секунды (30.01.2012 - 22:37) Игорь_Vasinsky написал(а):
Цитата |
hamado Цитата В прошлый раз у меня после занесения инфы в базу добавлялся гиганский пробел в начало каждой строки. скорее всего это было связано с тем. что в переменной были пробелы. обрезай с помощью trim |
совершенно согласен.
mysql_real_escape_string(trim($_POST['any_key']));
или можно ко всему массиву $_POST (если не критично)
array_map("trim", $_POST);
Спустя 4 минуты, 25 секунд (30.01.2012 - 22:41) Игорь_Vasinsky написал(а):
вообще смотри - можно функцию "обёртку" написать
использовать так
или же всё скопом
function safe($var)
{
return mysql_real_escape_string(trim($var));
}
использовать так
safe($_POST['any_key']);
или же всё скопом
$_POST = array_map("safe", $_POST);
Спустя 24 минуты, 2 секунды (30.01.2012 - 23:05) veolancer написал(а):
Игорь_Vasinsky Блин я с функциями не умею работать, как то на третьи сутки дошёл до функций, смотрел уроки Специалист, и меня вырубило. Надо восстанавливать и заново просматривать это. Вообще сколько не видел, функции удобная "вещь", надо только понят, а желание уж более чем придостаточно Видел как то раз CLASS Как включил, так и выключил
Спустя 9 минут, 53 секунды (30.01.2012 - 23:15) Игорь_Vasinsky написал(а):
на классы пока не отвлекайся, когда поймёшь зачем они нужны - тогда и изучай как сними работать и как их писать.. (открою секрет - класс - это не просто класс )
Спустя 7 минут, 19 секунд (30.01.2012 - 23:22) veolancer написал(а):
Цитата (hamado @ 30.01.2012 - 20:05) |
(открою секрет - класс - это не просто класс) |
Спустя 12 минут, 12 секунд (30.01.2012 - 23:34) veolancer написал(а):
А так как переменная rub числовая то её фильтровать так (int)$rub заместо mysql_real_escape_string