-4
$m = clearData($_POST['msg']);
$sql = "INSERT INTO messages(message,message_from)
  VALUES('$m','$_SESSION['id']')";

I get an error on insert and I not found:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
bear
  • 11,364
  • 26
  • 77
  • 129
kilos
  • 7
  • 1

3 Answers3

0

You cannot use arrays like that when defining the text. Wrap it in Curly Brackets:

$m = clearData($_POST['msg']);
$sql = "INSERT INTO messages(message,message_from) VALUES( '$m','{$_SESSION['id']}')";

Or:

$sql = sprintf("INSERT INTO messages(message,message_from) VALUES( '%s','%d')",
  mysql_real_escape_string($_POST['msg']),
  $_SESSION['id']
);
Twisty
  • 30,304
  • 2
  • 26
  • 45
0

Try this:

$m = mysqli_real_escape_string(clearData($_POST['msg'])); // escape or whatever.  
$sessionId = mysqli_real_escape_string($_SESSION['id']); // or whatever, just escape the field

$sql = "INSERT INTO messages(message,message_from) VALUES( '{$m}','{$sessionId}')";
bear
  • 11,364
  • 26
  • 77
  • 129
0

Your single quotes are nested in :

'$_SESSION['id']'

Replace it with :

"INSERT INTO messages(message,message_from)VALUES('$m','".$_SESSION['id']."')"
Madhavan Malolan
  • 719
  • 6
  • 24