基本的PHP语法或配置?脚本不在WAMP服务器上执行

时间:2013-07-22 18:04:20

标签: php wamp wampserver php-5.4

我正在尝试编写一个简单的PHP脚本:

  1. 用户访问网页并通过表单注册其电子邮件地址和密码(无需其他输入)。
  2. 他们的电子邮件和密码存储在数据库中,并根据电子邮件生成并存储随机唯一的6位数字。针对数据库中的现有引脚检查引脚,以确保它是唯一的。
  3. 然后,该针将显示在网页上,并在确认其电子邮件和密码提交后显示给用户。
  4. TL; DR用户注册并获得一个独特的引脚。

    我有以下PHP代码,但它似乎没有在我的WAMP服务器上执行。它只是将.php页面作为原始文本返回。我错过了一些明显的语法或配置吗?

    <?
    if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {
        $conn = mysql_connect('localhost','','');
        mysql_select_db("db_test",$conn);
        while(1) {
            $pin = rand(111111,999999);
            $sel = mysql_query("SELECT * FROM formusers WHERE pin = '$pin'");
            if(mysql_num_rows($sel) != 0) { continue; }
    
            mysql_query("INSERT INTO formusers(email,password,pin) VALUES('".$_POST['srEmail']."','".$_POST['srPass']."','".$pin."')");
            if(mysql_affected_rows()!=-1)  {
                echo "Pin:" . $pin;
                exit;
            } else {
                echo "Existing email, try again<br />";
            }
            break;
        }
    
    }
    ?>
    <form method="POST" action="">
    <input type="email" name="srEmail" value="" placeholder="Email" /><br />
    <input type="password" name="srPass" value="" placeholder="Password" /><br />
    <input type="submit" name="srSubmit" value="Register" />
    </form>
    

3 个答案:

答案 0 :(得分:2)

php的开头标记看起来不正确:

<?
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

应该是:

<?php
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

答案 1 :(得分:1)

默认情况下,未启用短PHP标记(<? ?>),这就是您的代码无效的原因。

更改代码以使用完整的PHP标记()在不同的开发环境中保持一致性。

<?php // <-- notice the difference

if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) {

但是,如果您仍想启用短标记,可以通过修改short_open_tag文件中的php.ini指令来实现,如下所示:

short_open_tag = on

出于兼容性原因,但建议不要使用它。阅读this回答以了解差异。

希望这有帮助!

答案 2 :(得分:0)

1)在“&lt;”之后放置'php'和“?”在开始

问题仍然存在?

2)听起来像一个配置的东西,好像服务器没有看到你的PHP必须执行的PHP,但作为文本它必须显示。在我问你是否确定php模块已加载之前,它是否是WAMP的新安装?它发生在我很久以前,我记得这是一个小配置的事情。我还记得在网络上找到答案;)