2010-11-01 86 views
0

我遇到了get_post方法的问题。这里是我的代码:PHP:遇到问题get_post

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Upload2</title> 
<link href="style.css" rel="stylesheet" type="text/css"> 
</head> 

<body> 

<h1> Welcome to my search Engine </h1> 

<?php 

# SETUP 
$thisFile = 'v4.php'; 

# INPUT FIELDS 
echo <<< END 
<form action="$thisFile" method="post"> 
<pre> 
Search <input type="text" name="searchTerm"/> 
     <input type="submit" value="Add Record"/> 
</pre> 
</form> 
END; 

# EXTRACT INPUTTED FIELDSA 
if(isset($_POST['searchTerm'])) { 

     # INITIALIZE INPUTTED VARIABLES 
     $mySearchTerm = get_post('searchTerm'); # <- PROBLEM LINE! 
     echo "You searched for: $mySearchTerm"; 
} 

?> 

</body> 
</html> 

该代码在输入搜索词之前工作良好。在HTML看起来预期,该页面显示在浏览器中:

alt text

我输入一个搜索词的页面看起来一样之后,但会后查看 - >页面源代码我注意到一些有趣的事情。该页面的最后是这样的:

Search <input type="text" name="searchTerm"/> 
     <input type="submit" value="Add Record"/> 
</pre> 
</form> 

注:没有结束</body></html>

+1

据我所知,PHP中没有get_post函数。这是一个WordPress应用程序? – 2010-11-01 12:33:45

+0

因为我发现我自己的试验答案,我应该投票删除这篇文章? – sixtyfootersdude 2010-11-01 12:34:34

+1

get_post()函数中包含什么?这不是标准的PHP。 – Treffynnon 2010-11-01 12:34:48

回答

4

原来,get_post不是一个PHP的方法。我的教科书定义它的下一个页面上:

function get_post($var){ 
    return mysql_real_escape_string($_POST[$var]); 
} 
+1

尝试添加错误显示代码我发布了http://stackoverflow.com/questions/4068855/php-having-a-problem-with-get-post/4068904#4068904看看为什么这可能会失败。在这一点上你有没有有效的数据库连接? – Treffynnon 2010-11-01 12:38:39

+0

很高兴你找到了答案。您应该确保在开发过程中在PHP.ini中打开了错误报告;如果你有这个问题,你会立即发现你的问题。 – Spudley 2010-11-01 12:43:07

+0

@Spudley:我该怎么做?你能指出我对此的一些文件吗? – sixtyfootersdude 2010-11-01 12:50:18

0

漏诊includerequireget_post功能和语法分析器将推动误差禁用错误报告。

而在脚本的顶部添加:

error_reporting(E_ALL); 
require_once('this_file_where_you_have_get_post.php'); 
0

当然,你可以改变:

$mySearchTerm = get_post('searchTerm'); # <- PROBLEM LINE! 

要:

$mySearchTerm = $_POST['searchTerm']; 
0

PHP中没有get_post()函数也许你正在调用一个未定义的函数。

添加以下你的PHP代码块的顶部

ini_set('error_reporting', E_ALL); 
ini_set('display_errors', true); 

,看看它是怎么回事。

1

我同意sixtyfootersdude。唯一缺少的是数据库连接。

function get_post($conn, $var){ 
    return $conn->real_escape_string($_POST[$var]); 
}