-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
  • 10,704
  • 25
  • 74
  • 128
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
  • 27,669
  • 1
  • 25
  • 43
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
  • 10,704
  • 25
  • 74
  • 128
0

Your single quotes are nested in :

'$_SESSION['id']'

Replace it with :

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