3
votes

I recently created a PHP/MySQL comment system, and it was working until a few hours ago (no changes at all in the code). When I tell the submit form code to echo the query, it shows that the area for commenttext and date is missing. I don't see why. Here's my code:

mysql_connect("localhost","commentUser","password");
mysql_select_db("comments");
$name = mysql_real_escape_string($_POST['name']);
$postID = mysql_real_escape_string($_POST['postId']);
if(!is_numeric($postID))
    exit();
$email = mysql_real_escape_string($_POST['email']);
$comment = strip_tags(mysql_real_escape_string($_POST['comment']), '');
$date = mysql_real_escape_string($_POST['date']);

if($email == '' || $comment = '' || $date = '')
    exit();

$query = "INSERT INTO comments (PostID,Name,Email,Text,Date) VALUES($postID, '$name', '$email', '$comment', '$date')";
mysql_query($query) or die(mysql_error());
mysql_close();

    echo "
        
            window.location = \"snippet.php?id=$postID\";
        
    ";

2
You should post the HTML code for the form - Drew Galbraith
can you post the code of the html form? - itsmeee
Are the single equal signs typos in the post or are they in the actual code? if($email == '' || $comment = '' || $date = '') should all be double equals. - Charlie

2 Answers

4
votes

You are assigning the empty string to $comment and $date with =

if($email == '' || $comment = '' || $date = '')
    exit();

// Should use `==` for all three:
if($email == '' || $comment == '' || $date == '')
    exit();
0
votes

You are trying to compare $comment and $date with invalid character please replace this line: if($email == '' || $comment = '' || $date = '') with if($email == '' || $comment = '' || $date == '')