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 formDrew 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 == '')