2012-12-18 45 views
0

大家..形式没有提交PHP和HTML

试图提交表单..和形式和PHP代码是在同一个index.php文件

if(isset($_POST['post_form'])) { 
    echo "ISSET"; 

    $post_sender=$id; 
    $post_reciever=$id2; 
    $post_cont=$_POST['news_text']; 
    $post_cont=htmlentities($post_cont); 
    $post_cont=mysql_real_escape_string($post_cont); 

    $post_sql=mysql_query("INSERT INTO wall_posts (from, to, content, date) VALUES ('$post_sender','$post_reciever','$post_cont',now())") or die(mysql_error()); 

    }else{ 
     echo "NOT SET"; 
    } 

HTML表单

<form method='POST' action='index.php' enctype='multipart/form-data' id='news_form' name='post_form' > 
<textarea id='news_text' name='news_text' >type here..........</textarea> 

<input type='submit' id='wall_post_btn' name='wall_post_btn' value='submit'> 

</form> 

哪里是我的错误..?

没有在code..the文件本身corrupted..just取得了一个新的PHP文件中的测试没有错......只是罚款...感谢家伙..

+0

有什么问题,有什么不行? –

+0

我不认为表单本身实际上会发送POST数据。如果您参考了其中一个文本元素,它会起作用吗? 'if(isset($ _ POST ['news_text'])){' –

回答

0

问题是要检查存在于$_POST的形式,这是从来没有存在的名称...

什么,你应该测试是提交按钮的名称,例如:

if(isset($_POST['wall_post_btn'])) { 

下一页你可以使用一个线消毒输入:

$post_cont= mysql_real_escape_string(htmlentities($_POST['news_text'])); 

还有最后一:开始使用PDO预处理语句或至少mysqli_*功能mysql_*那些正在弃用...

+0

仍然是新的PHP ...陈述与经典.. 我知道我必须移动到PDO ...谢谢 – Alex

1

$ _ POST [ 'wall_post_btn']。提交的名称,而不是表格

0

您不应该使用mysql,因为它已折旧。看看库MySQLi或PDO

此:

"INSERT INTO wall_posts (from, to, content, date) VALUES ('$post_sender','$post_reciever','$post_cont',now())" 

应该是:

"INSERT INTO wall_posts (from, to, content, date) VALUES ('".$post_sender."','".$post_reciever."','".$post_cont."',now())" 
+0

不,它不应该**,它**可能** ...使用'“Hello mr。$ name 。'',并且不需要''Hello'先生'。$ name' ...如果他使用了''',那么他将不得不按照这种方式拆分字符串:''Hello'先生'。$名称“,使其工作... – shadyyx

+0

可变插值(VS)连锁的终身难题。所有这些都会很好,直到你需要$ name的日子不再是一个变量。总是有10种不同的方式来获得相同的结果,有些只是比其他方式更好。 –

2

post_form是形式的名称。您必须检查提交按钮,0​​。

if(isset($_POST['wall_post_btn'])) { 
    // entire code here 
} 
+0

@Jeremy谢谢你打磨我的答案。但是,所有应有的尊重,我想告诉你,他/她已指定post_form作为表格的名称。 –

+0

对不起。我错过了原来的帖子。 – Jeremy1026

+0

仍然没有变化 – Alex

0

有两个问题:

  1. 您需要连接到你的MySQL服务器使用mysql_real _...
  2. mysql_real _...已被弃用,并且从PHP中移除

看看这里的替代品: http://php.net/manual/en/function.mysql-real-escape-string.php

+0

也许他在'if'语句之前有一个有效的连接。无论如何,这不是真正的问题,为什么它不工作... – shadyyx

+0

我已经连接.. – Alex

0

使用此代码的工作正常

<?php 
if($_SERVER['REQUEST_METHOD']=="POST") { 
    echo "ISSET"; 
    $post_sender=$id; 
    $post_reciever=$id2; 
    $post_cont=$_POST['news_text']; 
    $post_cont=htmlentities($post_cont); 
    $post_cont=mysql_real_escape_string($post_cont); 

    $post_sql=mysql_query("INSERT INTO wall_posts (from, to, content, date) VALUES ('$post_sender','$post_reciever','$post_cont',now())") or die(mysql_error()); 

    }else{ 
     echo "NOT SET"; 
    } 
?> 
<form method='post' action='index.php' enctype='multipart/form-data' id='news_form' name='post_form' > 
<textarea id='news_text' name='news_text' >type here..........</textarea> 

<input type='submit' id='wall_post_btn' name='wall_post_btn' value='submit'> 

</form>