2014-02-25 104 views
0

我在我的网站服务器上放置了一个文件,里面有HTML和PHP,并命名为'php1.php'。我试着运行该文件,一切都很好。过了一段时间后突然我得到了一个500错误,并继续得到他们,尽管我的网站是可访问的。然后为了测试,我将这个文件的名称改为'php1.html'并运行该文件,并且PHP代码被加载了一段文本。所有其他PHP文件运行良好。其他需要PHP的HTML文件分开保存为两个文件,并且只有该文件在同一文件中使用HTML编码。PHP文件没有打开

我运行了一个phpinfo函数并得到了这个。 http://analyzedstock.com/test/phpinfo.php。安装的PHP都很好吗?那么我的文件有什么问题呢?我有简单的功能输出。链接到我的PHP页面在这里:http://analyzedstock.com/test/PHP/php1.php

此外,我会非常感谢,如果你在我的代码中发现任何错误。我得到'登录成功。 '在表格的开头。

<?PHP 

//form variables 

$name=$_POST['username']; 
$password=$_POST['password']; 
$email=$_POST['email']; 

//current 

$minname=10; 
$minpass=6; 
$maxname=15; 
$maxpass=10; 

//functions 

function username($username){ 
empty($username) || $username<$minname || $username>$maxname; 
return username($username); 
} 

function password($password){ 
empty($password) || $password<$minpass || $password>$maxpass; 
return password($password); 
} 

//function email($email){ 
// empty($email) || !isset("\@") || !isset(".com"); 
//} 

if(username($username) && password($password)){ 
echo"Log in Error!!"; 
}else{ 
echo"Log in success."; 
} 

?> 

<html> 
<head> 
<title>First try</title> 
</head> 
<body> 

Log In 
<form action="php1.php" method="POST"> 
Username: <input type="text" name="username" /><br /> 
Password: <input type="password" name="password" /><br /> 
<!--E-mail: <input type="text" name="email" /><br />--> 
<input type="submit" value="Submit" /> 
</form> 

</body> 
</html> 
+3

邮报“php1.php” – GuyT

+0

您应该检查errog代码记录并了解它为什么会给你一个错误。此外,重新命名为html时看到php代码是正常的,除非你的服务器被配置为通过php解析html文件,这是一个资源过度杀伤。 –

+0

它的.htaccess文件或PHP文件中的错误代码。更改大写可能工作.. http://analyzedstock.com/test/php/php1.php – tonoslfx

回答

2

请下面的行添加到你的PHP文件,看看你会得到什么错误:

<?php 
ini_set("display_errors", 1); 
error_reporting(E_ALL); 
?> 

确定以下行不正确:

function password($password){ 
empty($password) || $password<$minpass || $password>$maxpass; 
return password($password); 
} 

条件之间应如果条件为

更改为:

function username($username){ 
if(empty($username) || $username<$minname || $username>$maxname) 
    return $username; 
} 

function password($password){ 
if(empty($password) || $password<$minpass || $password>$maxpass) 
    return $password; 
} 

并且还将PHP更改为小写(已经说了什么)==> <? php

+0

analyzestock.com/test/PHP/errorphp.php全部清除 –

+0

是不是那些函数无限循环,递归? – DanFromGermany

+0

add'ini_set('display_startup_errors',true);' – DanFromGermany

1

<?PHP可能应该是小写字母。也要注意网址,它也是大小写敏感的。

2

无限递归,不确定$minpass,预计布尔返回,但字符串/空/无限,<无strlen的:

function username($username){ 
    $minname = 8; 
    if (empty($username) || $username<$minname || $username>$maxname) 
     return username($username); 
} 

function password($password){ 
    $minpass = 8; 
    if (empty($password) || $password < $minpass || $password > $maxpass) 
     return password($password); 
} 

“回归自己,再回到自己,再回到我自己,..再次..一次。 .. 500倍......”

更好:

function username($username){ 
    if (empty($username) || strlen($username)<$minname || strlen($username)>$maxname) 
     return true; 
    else return false; 
} 

function password($password){ 
    if (empty($password) || strlen($password)<$minpass || strlen($password)>$maxpass) 
     return true; 
    else return false; 
} 

而且逻辑错误:

if(username($username) && password($password)){ 

应该

if(username($username) || password($password)){ 

,因为你想:“如果这些表达式的任何一个失败,发送错误消息”