- Поисковые системы
 - Практика оптимизации
 - Трафик для сайтов
 - Монетизация сайтов
 - Сайтостроение
 - Социальный Маркетинг
 - Общение профессионалов
 - Биржа и продажа
- Финансовые объявления
 - Работа на постоянной основе
 - Сайты - покупка, продажа
 - Соцсети: страницы, группы, приложения
 - Сайты без доменов
 - Трафик, тизерная и баннерная реклама
 - Продажа, оценка, регистрация доменов
 - Ссылки - обмен, покупка, продажа
 - Программы и скрипты
 - Размещение статей
 - Инфопродукты
 - Прочие цифровые товары
 
 - Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
 - Ведение рекламных кампаний
 - Услуги в области SMM
 - Программирование
 - Администрирование серверов и сайтов
 - Прокси, ВПН, анонимайзеры, IP
 - Платное обучение, вебинары
 - Регистрация в каталогах
 - Копирайтинг, переводы
 - Дизайн
 - Usability: консультации и аудит
 - Изготовление сайтов
 - Наполнение сайтов
 - Прочие услуги
 
 - Не про работу
 
        VK приобрела 70% в структуре компании-разработчика red_mad_robot
          Которая участвовала в создании RuStore
        
        
              Оксана Мамчуева
          
            
          
        
      
        Что делать, если ваша email-рассылка попала в спам
          10 распространенных причин и решений
        
        
            Екатерина Ткаченко
          
            
          
        
      Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
                
            
Соединяемся с БД.
Выбираем БД.
После чего код в одном файле:
При echo данные выводятся, а в базе ничего нет, почему?
Может кавычки просто надо для POST-параметров добавить:
$_POST['name']
Попробуйте так:
if (isset($_POST['submit'])) {$_POST = array_map('mysql_escape_string', $_POST);
$sql = sprintf('INSERT INTO `pages` (`name`, `title`, `description`, `keywords`, `text`) VALUES ("%s", "%s", "%s", "%s", "%s")', $_POST['name'], $_POST['title'], $_POST['description'], $_POST['keywords'], $_POST['text']);
$result = mysql_query($sql);
if (!$result) {
echo mysql_error();
}
}
Может кавычки просто надо для POST-параметров добавить:
$_POST['name']
Разные варианты пробовал, а так предпочитаю без кавычек, тоже вполне хорошо работает.
Попробуйте так:
if (isset($_POST['submit'])) {$_POST = array_map('mysql_escape_string', $_POST);
$sql = sprintf('INSERT INTO `pages` (`name`, `title`, `description`, `keywords`, `text`) VALUES ("%s", "%s", "%s", "%s", "%s")', $_POST['name'], $_POST['title'], $_POST['description'], $_POST['keywords'], $_POST['text']);
$result = mysql_query($sql);
if (!$result) {
echo mysql_error();
}
}
Спасибо, помогло, данные прекрасно записываются в базу. Не могли бы вы разъяснить причину, почему в исходном варианте не работало? Делал по этому примеру.
Спасибо, помогло. Не могли бы вы разъяснить причину, почему в исходном варианте не работало? Делал по этому примеру.
Попробуйте закомментировать
$_POST = array_map('mysql_escape_string', $_POST);Если перестанет добавляться, то дело в экранировании данных.
Если не перестанет - возможно name нужно было взять в `. По хорошему имена таблиц и столбцов нужно экранировать в апострофы.
lospirata, почитайте про взлом сайтов, через вашу форму:
http://www.google.ru/search?client=opera&rls=ru&q=%D0%9A%D0%B0%D0%BA+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B8%D1%82%D1%82%D1%8C%D1%81%D1%8F+sql+injection&sourceid=opera&ie=utf-8&oe=utf-8#hl=ru&newwindow=1&client=opera&hs=tem&rls=ru&sa=X&ei=B89ETuGuB9HJswbu562sCQ&ved=0CCMQvwUoAQ&q=%D0%9A%D0%B0%D0%BA+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B8%D1%82%D1%8C%D1%81%D1%8F+sql+injection&spell=1&bav=on.2,or.r_gc.r_pw.&fp=31a96563843d0bd0&biw=1920&bih=935
Сразу станет понятно, почему у вас не добавляются данные.
почитайте про взлом сайтов, через вашу форму
Статья, так сказать, классика http://phpfaq.ru/slashes
Попробуйте закомментировать
Да, так не работает. Выводит ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'content">
lospirata, почитайте про взлом сайтов, через вашу форму
Спасибо, почитаю.
Спасибо, почитаю.
Короче проще говоря, перед тем как, что-то пихать в базу, обязательно данные нужно обрабатывать:
1. Если данные только цифры должны быть то, например, убираем всё, кроме цифр:
$var=intval($_POST['textpole1']);
Ессесно для float значений, будет другое :)
2. Всё остальное проводим через функцию mysql_real_escape_string() т.е. пример:
$var2=mysql_real_escape_string($_POST['textpole2']);
И это обязательно, если хотите избежать проблем.