XAMPP没有执行我的php脚本或mysql查询


XAMPP not carrying out my php script or mysql queries

通过Head First PHP&MySQL还是个新手。

我首先安装了EasyHP,并使用$_POST数组成功地获取了php,并很好地回显了html表单输入,但随后mail()函数就不起作用了。做了一些谷歌搜索,发现我需要一个smtp服务器,所以我卸载了EasyHP并安装了XAMPP。我把我的html和php文件放在htdocs文件夹中。html表单有效,但php生成的页面显示php的代码,而不是$_POST数组中的数据。我的sqlINSERT查询也没有成功。

我也试过这本书的在线答案提供的代码——没有乐趣。

我已经确保Apache和MySQL服务器正在运行。我还成功地使用了phpMyAdmin。所以这些模块似乎工作正常——只是我什么都没写。

我还卸载了XAMPP,并按照书中的说明安装了最新的Apache和MySQL服务器——再次没有乐趣。

我已经检查了游荡的文件夹,并在每次卸载和重新安装之间清理了注册表。

我在windows7家庭高级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 ,你不可能做错了这件事

在数据库调用中添加一些USEFUL错误检查:

$dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase') or die(mysql_error());
$result = mysqli_query($dbc, $query) or die(mysql_error());

仅仅做一个die("it's hosed")是完全没有用的,尤其是当mysql提供了一个完美的函数来告诉你某个东西被冲洗的确切原因时。