如何解决XAMPP不执行我的php脚本或mysql查询
| 作为新手通过Head First PHP和MySQL进行工作。 我首先安装了EasyPHP,并设法使用$ _POST数组获取php并很好地回显了html表单输入,但随后mail()函数不起作用。进行了一些谷歌搜索,发现我需要一个smtp服务器,因此我卸载了EasyPHP并安装了XAMPP。我将html和php文件放在htdocs文件夹中。 html表单可以使用,但是php会生成一个页面,显示php的代码,而不是$ _POST数组中保存的数据。 sql INSERT查询也没有成功。 我也尝试过该书的在线答案提供的代码-不用高兴。 我已确保Apache和MySQL服务器正在运行。我也已经成功使用了phpMyAdmin。因此,这些模块似乎正常运行-只是我没有写任何东西。 我还按照书中的说明卸载了XAMPP并安装了最新的Apache和MySQL服务器-再次感到不高兴。 我检查了游荡文件夹,并在每次卸载和重新安装之间清理了注册表。 我使用Windows 7家庭高级版32位。 这是我的html:<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />
</head>
<body>
<h1>Share your story of alien abduction:</h1>
<form method=\"post\" action =\"report.php\">
<label for=\"firstname\">First name:</label>
<input type=\"text\" id = \"firstname\" name=\"firstname\" /><br/>
<label for=\"lastname\">Last name:</label>
<input type=\"text\" id = \"lastname\" name=\"lastname\"/><br/>
<label for\"email\">What is your email address?</label>
<input type \"text\" id = \"email\" name=\"email\"/><br/>
<label for=\"when\">When did it happen?</label>
<input type \"text\" id=\"when\" name=\"when\"/><br/>
<label for=\"howlong\">How long were you gone?</label>
<input type=\"text\" id=\"howlong\" name=\"howlong\"/><br/>
<label for=\"howmany\">How many did you see?</label>
<input type = \"text\" id=\"howmany\" name=\"howmany\"/><br/>
<label for=\"describe\">Describe them:</label>
<input type=\"text\" id=\"describe\" name=\"describe\"/><br/>
<label for=\"whattheydid\">What did they do to you?</label>
<input type=\"text\" id=\"whattheydid\" name=\"whattheydid\"/><br/>
<label for=\"fangspotted\">Have you seen my dog Fang?</label>
Yes <input type=\"radio\" id=\"fangspotted\" name=\"fangspotted\" value=\"yes\" />
No <input type=\"radio\" id=\"fangspotted\" name=\"fangspotted\" value=\"no\" /><br />
<img src=\"fang.jpg\" width=\"100\" height=\"175\"><br/>
<label for=\"other\">Any other info then?</label>
<textarea name=\"other\"></textarea><br />
<input type=\"submit\" value=\"Send the skinny\" name=\"submit\" />
</form>
</body>
</html>
这是我的PHP:
<html>
<head>
<title>Aliens abducted me - Report an abduction</title>
</head>
<body>
<h2>Aliens abducted me - Report an abduction</h2>
<?php
$first_name = $_POST[\'firstname\'];
$last_name = $_POST[\'lastname\'];
$email = $_POST[\'email\'];
$when = $_POST[\'when\'];
$how_long = $_POST[\'howlong\'];
$how_many = $_POST[\'howmany\'];
$describe = $_POST[\'describe\'];
$what_they_did = $_POST[\'whattheydid\'];
$fang_spotted = $_POST[\'fangspotted\'];
$other = $_POST[\'other\'];
$dbc = mysqli_connect(\'localhost\',\'root\',\'\',\'aliendatabase\');
$query = \"INSERT INTO aliens_abduction (first_name,last_name,when,how_long,\" .
\"how_many,description,what_they_did,fang_spotted,other,email) \" .
\"VALUES (\'$first_name\',\'$last_name\',\'$when\',\'$how_long\',\'$how_many\',\" .
\"\'$describe\',\'$what_they_did\',\'$fang_spotted\',\'$other\',\'$email\')\";
$result = mysqli_query($dbc,$query)
or die (\'Its fornicated\');
mysql_close($dbc);
echo \'Thanks for submitting the form \' . $first_name . \' \' . $last_name . \'.<br />\';
echo \'You were abducted \' . $when;
echo \' by \' . $how_many . \' aliens\';
echo \' and were gone for \' . $how_long . \'<br />\';
echo \'You described them like this: \' . $describe . \'<br />\';
echo \'Was fang there? \' . $fang_spotted . \'<br />\';
echo \'Your email address is: \' . $email;
?>
</body>
</html>
请注意,我是这里的新手,不会对如何提出更好的问题有所建议!
提前致谢。
解决方法
首先,您不需要SMTP服务器即可运行PHP
第二:如果phpMyAdmin正常运行,而您的PHP脚本运行不正常,则很可能是因为您将PHP文件放置在错误的目录中,或者apache虚拟主机存在某些问题。
第三,但考虑到您编写的所有代码都会检查文件扩展名是.php,因此我认为您做错了这是不可能的
,在您的数据库调用中添加一些有用的错误检查:
$dbc = mysqli_connect(\'localhost\',\'root\',\'\',\'aliendatabase\') or die(mysql_error());
$result = mysqli_query($dbc,$query) or die(mysql_error());
仅仅执行ѭ3完全没有用,尤其是当mysql提供了一个完美的功能来告诉您确切原因是什么时,尤其如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。