2017-08-17 155 views
0

我写的HTML代码如下:为什么我的表单不能使用POST方法工作?

<form action="index.php" method="POST">  
     <input type="text" name="title" required> 
     <input type="text" name="brief_text" required> 
     <textarea name="text" required></textarea> 
     <input type="submit" name="add" value="Add"> 
    </form> 

我的PHP代码:

<?php 
require_once('db.php'); 

if(isset($_POST['add'])){ 
    $title = $_POST['title']; 
    $brief_text = $_POST['brief_text']; 
    $text = $_POST['text']; 
    $blog_cat_id = $_POST['blog_cat_id']; 

    if($title AND $brief_text AND $text AND $blog_cat_id){ 
    $insert_blog = "insert into blog values ('','$title','$brief_text','$text','$blog_cat_id',NOW())"; 
    $run_insertion = mysqli_query($con, $insert_blog); 

    if($run_insertion){ 
     echo "Blog has been added!"; 
    } 
    else{ 
     echo "Error adding blog!!!"; 
    } 
} 
else{ 
    echo "All fields are required!"; 
} 
} 
else{ 
echo "GOODBYE"; 
} 

?> 

我每次刷新页面,它只显示形式和“再见”甚至不插入数据导入数据库表。 请帮我。

+0

将'$ _POST ['add_blog']'更改为'$ _POST ['add']' –

+0

我做了,但没有工作 –

+0

什么是'blog_cat_id' ..?它不是以HTML格式 –

回答

0

你有一些失误,

1)应为:的$_POST['add']代替$_POST['add_blog']

2)不要在形式上有$_POST['blog_cat_id']

编辑 复制你的代码,做一些变化:

code:

if(isset($_POST['add'])){ 
    print_r($_POST); 
    $title = $_POST['title']; 
    $brief_text = $_POST['brief_text']; 
    $text = $_POST['text']; 
    $blog_cat_id = $_POST['blog_cat_id']; 

    if($title AND $brief_text AND $text AND $blog_cat_id){ 
     echo "inside condition"; 
     $insert_blog = "insert into blog values ('','$title','$brief_text','$text','$blog_cat_id',NOW())"; 
     $run_insertion = mysqli_query($con, $insert_blog); 

     if($run_insertion){ 
      echo "Blog has been added!"; 
     } 
     else{ 
      echo "Error adding blog!!!"; 
     } 
    } 
    else{ 
    echo "All fields are required!"; 
} 
} 
else{ 
    echo "GOODBYE"; 
} 

HTML:

<form action="index.php" method="POST">  
     <input type="text" name="title" required> 
     <input type="text" name="brief_text" required> 
     <input type="text" name="blog_cat_id" required> 
     <textarea name="text" required></textarea> 
     <input type="submit" name="add" value="Add"> 
    </form> 

输出

Array ([title] => test [brief_text] => test [blog_cat_id] => 1 [text] => testing [add] => Add) 

inside condition 

现在,请检查您的查询,如果不工作。

希望这会帮助你。

+0

它的$ _POST ['add'],但每次都是同样的问题。第一个if语句不起作用 –

+0

是的,你已经纠正了,现在需要检查'blog_cat_id',它不存在于表单中,所以根据你的'if'语句它不会进入你的插入代码 –

+0

@JigarShah name是“添加”而不是“添加”。 'Add'是'submit'的值属性。 –

0

你的查询是错误的,没有指定列,你打开sql注入你应该学会使用参数化查询。但是现在您可以使用以下内容。

试试这个:

htmlcode

<form action="index.php" method="POST">  
    <input type="text" name="title" required> 
    <input type="text" name="brief_text" required> 
    <input type="text" name="blog_cat_id" required> 
    <textarea name="text" required></textarea> 
    <input type="submit" name="add" value="Add"> 
</form> 

的index.php

<?php 
require_once('db.php'); 
if(isset($_POST['add'])){ 
    $title = $_POST['title']; 
    $brief_text = $_POST['brief_text']; 
    $text = $_POST['text']; 
    $blog_cat_id = $_POST['blog_cat_id']; 

    if($title AND $brief_text AND $text AND $blog_cat_id){ 
    $insert_blog = "insert into blog('col1','col2','col3','col4','col5','col6') values ('','$title','$brief_text','$text','$blog_cat_id',NOW())"; 
    $run_insertion = mysqli_query($con, $insert_blog); 

    if($run_insertion){ 
     echo "Blog has been added!"; 
    } 
    else{ 
     echo "Error adding blog!!!"; 
    } 
} 
else{ 
    echo "All fields are required!"; 
} 
} 
?> 

注:col1, col2, col3, col4, col5 and col6将是您的列名。

+0

我已经将代码更改为if(isset($ _ POST ['add'])),仍然是相同的问题 –

+0

你得到了什么?有没有未定义的警告? –

+0

nope,在点击Add之前,它每次都会显示GOODBYE –

0

是否仍显示出 '再见' 现在你已经改变了

$_POST['add_blog'] 

$_POST['add'] 

,当你点击提交?

+0

是的,每次都是一样的 –

+0

你把那个php代码放在哪里?它在index.php里面吗? –

+0

是的,首先我已经把它放到另一个文件中,并且调用文件名是表单动作,出现同样的问题 –