简体   繁体   中英

PHP MySQL insert query via html form, parameters not going through

I tried every version of code but it is not working. I have an HTML form calling Post- PHP page to insert few fields in database. Only fields with direct text are adding, but anything coming via $_POST parameters are empty - nothing getting through no matter what I change.

HTML FORM:

<html>
<table><form method="post" action="input.php">
<tr><td>Post Title</td>
<td><input type="text" name="fdt_post_title" size="20"></td></tr>
<tr><td>Post URL</td><td><input type="text" name="fdt_post_url" size="40"></td></tr>
<tr><td>Post Description</td><td><input type="text" name="fdt_post_desc" size="40"></td></tr>
<tr><td>Post Title for FB</td><td><input type="text" name="fdt_post_title_fb" size="40"></td></tr>
<tr><td>Image URL</td><td><input type="text" name="fdt_image_url_fb" size="40"></td></tr>
<tr><td></td><td align="right"><input type="submit" name="submit" value="Submit"></td></tr>
</form></table>
</html>

input.php page:

<?php
$dt_post_title = mysql_real_escape_string($_POST['$fdt_post_title']);
$dt_post_url = mysql_real_escape_string($_POST['$fdt_post_url']);
$dt_post_desc = mysql_real_escape_string($_POST['$fdt_post_desc']);
$dt_post_title_fb = mysql_real_escape_string($_POST['$fdt_post_title_fb']);
$dt_image_url_fb = mysql_real_escape_string($_POST['$fdt_image_url_fb']);

$link = mysql_connect("localhost","root","");//database connection
mysql_select_db("bighorn1_autoshare", $link);

$now =  date();

//inserting data order
$order = "INSERT INTO topics
(id, title, url, description, facebook_post, facebook_image, facebook_pubstatus, date_published)
VALUES
(DEFAULT, '$dt_post_title', '$dt_post_url', '$dt_post_desc', '$dt_post_title_fb',     '$dt_image_url_fb', '0', '$now')";

//declare in the order variable
$result = mysql_query($order, $link);   //order executes
if($result){
echo("<br>Input data is succeed<br>");
} else {
echo("<br>Input data is fail<br>");
}
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

In the table, Field id is Primary, Not Null, Auto Increment . All I am getting is id number incremented to next one in reach new row, facebook_pubstatus as 0 and date_published as 0000-00-00 00:00:00`

--------------------------------------------------------------------------------------------------------------------------------
id  |   title   |   url |   description |   facebook_post   |   facebook_image  |   facebook_pubstatus  |   date_published      |
--------------------------------------------------------------------------------------------------------------------------------
1   |           |       |               |                   |                   |               0       |   0000-00-00 00:00:00 |
--------------------------------------------------------------------------------------------------------------------------------
2   |           |       |               |                   |                   |               0       |   0000-00-00 00:00:00 |
--------------------------------------------------------------------------------------------------------------------------------

and so on....

If I change to direct string in (DEFAULT, '$dt_post_title', '$dt_post_url' .... ") like (DEFAULT, 'test String 1',...... ) then this text has no issues going through.

Any magic appreciable, thanks.

Also stressing on this part too much, my brain not figuring out whats with the date now, why all zeros.

Thanks

You have an extra '$' sign in your variables. Change to this:

$dt_post_title = mysql_real_escape_string($_POST['fdt_post_title']);
$dt_post_url = mysql_real_escape_string($_POST['fdt_post_url']);
$dt_post_desc = mysql_real_escape_string($_POST['fdt_post_desc']);
$dt_post_title_fb = mysql_real_escape_string($_POST['fdt_post_title_fb']);
$dt_image_url_fb = mysql_real_escape_string($_POST['fdt_image_url_fb']);

You need to pass the link_identifier to your mysql_real_escape_string. http://php.net/manual/en/function.mysql-real-escape-string.php

The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.

Returns the escaped string, or FALSE on error.

You are probably getting the value "false" in each of your variables right now. Try it this way:

$link = mysql_connect("localhost","root","");//database connection
$dt_post_title = mysql_real_escape_string($_POST['fdt_post_title'], $link);
$dt_post_url = mysql_real_escape_string($_POST['fdt_post_url'], $link);
$dt_post_desc = mysql_real_escape_string($_POST['fdt_post_desc'], $link);
$dt_post_title_fb = mysql_real_escape_string($_POST['fdt_post_title_fb'], $link);
$dt_image_url_fb = mysql_real_escape_string($_POST['fdt_image_url_fb'], $link);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM