Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP & SQL & $_SESSION
 
 автор: Novi4ek   (28.11.2005 в 23:22)
 
 

Приветствую!
Помогите пожалуйста с такой проблемой! Имеется запрос
$sql = "INSERT INTO '$tip' ('date', 'nik', 'message') VALUES (NOW(), '$_SESSION['user']', '$message');";
Ну так вот, вот тут '$_SESSION['user']', получается много кавычек! И что толька я не пробовал :), ставил двойные кавычки, слеши а толку 0.
Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING'
Как правильно составить такой запрос?
Надеюсь на помощь!

   
 
 автор: saddam   (28.11.2005 в 23:49)   письмо автору
 
   для: Novi4ek   (28.11.2005 в 23:22)
 

Ну так, а если взять какую-нибудь переменную $x и присвоить ей значение $_SESSION['user']
$x = $_SESSION['user'];

А потом уже переменную $x фигачить в базу...

   
 
 автор: dimm00   (29.11.2005 в 00:00)   письмо автору
 
   для: Novi4ek   (28.11.2005 в 23:22)
 

Напиши вот так:
$sql = "INSERT INTO '$tip' ('date', 'nik', 'message') VALUES (NOW(), '{$_SESSION['user']}', '{$message}');";
Если в строку вставляешь другую переменную, особенно массив, то нужно ее в фигурные скобки помещать...

   
 
 автор: cheops   (29.11.2005 в 00:46)   письмо автору
 
   для: Novi4ek   (28.11.2005 в 23:22)
 

По мимо предложенных вариантов, запрос можно оформить следующим образом
<?php
$sql 
"INSERT INTO '$tip' ('date', 'nik', 'message') VALUES (NOW(), '$_SESSION[user]', '$message');";
?>

или так
<?php
$sql 
"INSERT INTO '$tip' ('date', 'nik', 'message') VALUES (NOW(), '".$_SESSION['user']."', '$message');";
?>

   
 
 автор: Novi4ek   (29.11.2005 в 20:20)
 
   для: cheops   (29.11.2005 в 00:46)
 

Огромное всем СПАСИБО! Проблему решил! Большинство из предложенных вариантов, я пробовал, но скрипт не работал как надо, оказывается там ещё ошибка была. Вот только про фгурные скобки услышал. Буду знать! :)

   
 
 автор: DDK   (29.11.2005 в 21:52)   письмо автору
 
   для: Novi4ek   (29.11.2005 в 20:20)
 

Только все вводимые в базу переменные следует прогонять через функцию экранизации спец-символов - mysql_escape_string(), тем самым закрывая возможность SQL-инъекции:

$message = mysql_escape_string($message);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования