我正在尝试编写一个简单的PHP脚本:
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>
答案 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的新安装?它发生在我很久以前,我记得这是一个小配置的事情。我还记得在网络上找到答案;)