Правилно "почистване" на коментар

  • Автор Автор Hous
  • Начална дата Начална дата
аха, това значи, че $stmt не е обект. Тоест проблемът идва от $mysqli->prepare връща false. Имаш грешка в SQL-а. Напиши това:


Код:
$mysqli = new mysqli('localhost', 'user', 'pass', 'dbname');

if(!$mysqli->query("INSERT INTO comments(bla,bla,bla,bla,bla,bla) VALUES ('".$commentid."','bla','".USERID."','date',?,'".$ip."','0') WHERE comment_id='".$commentid."'")) {
  echo $mysqli->error;
}

и кажи каква е грешката
 
!mysqlli показва unexpected T_object_operator

!$mysqli - стана, върна грешки

интересното е че дава грешка в mysql синтаксиса точно преди въпроса ,тоест

INSERT INTO table(bla,bla,bla,bla,bla) VALUES ('".$commentid."','neshto','".USERID."','date',?,'".$ip."','0') WHERE comment_id='".$commentid."'"
 
дай реалния си код със променливите да видим какво са тези променливи и как ги вкарваш :)
 
Целия код в момента , без vardump и това за грешката:
Код:
if(isSet($_POST['textcomment']) && ctype_digit($_POST['comment_id']) && USER){
$commentid='1';
$comment='bla bla direktno vav faila';
$ip=$_SERVER['REMOTE_ADDR'];

$mysqli = new mysqli('localhost', 'dbuser', 'pass', 'database');

$stmt = $mysqli->prepare("INSERT INTO comments(comment_item_id,comment_subject,comment_author,comment_datestamp,comment_comment,comment_ip,comment_lock) 
VALUES ('".$commentid."','subject','".USERID."','date',?,'".$ip."','0') WHERE comment_item_id='".$commentid."'");
$stmt->bind_param('is',$comment);
$stmt->execute();
$mysqli->close();
}

else {echo "Error access denied hacker :D ";}
променил съм само dbuser pass другото си е така...

така връща bind_param грешката
 
какво е тва "USERID" и "? "


Странно инсертваш нещо където comment_item_id=$commentid
синтаксиса ти е грешен. Погледни
http://www.w3schools.com/php/php_mysql_insert.asp
 
nqkafff каза:
какво е тва "USERID" и "? "


Странно инсертваш нещо където comment_item_id=$commentid
е не ми е първа заявка... userid е променлива с число което представлява номера на потребителя от сесията, ? е за prepared() до колкото ми обясни един колега ... от темата

а това последното е по невнимание то при insert си получава собствено ID , сега като го махнах дава друга грешка... явно ще го мъча още доста:
mysqli_stmt::bind param() number of elements in type definition string
doesn't match the number of bind variables in ...

махнах I от IS и май стана... голяма играчка :)
Код:
$stmt->bind_param('s',$comment);
 
Да това реши проблемите, един prepared() за string
и един htmlspecialchars при показването и каквото и да опитах ' " <!@?№!@?№>!№% <a href=""> <?Php echo "Test";?>
и тн... всичко си го записва както го виждам и го показва така без никакви проблеми!
Благодаря на всички. :)
 

Back
Горе