Php 我的登录表单没有';我不能和铬一起工作
我已经在IE和Firefox上进行了测试,但是在Chrome上我的登录表单没有响应。没有错误信息,什么都没有,只是什么都不做 代码如下:Php 我的登录表单没有';我不能和铬一起工作,php,html,forms,google-chrome,Php,Html,Forms,Google Chrome,我已经在IE和Firefox上进行了测试,但是在Chrome上我的登录表单没有响应。没有错误信息,什么都没有,只是什么都不做 代码如下: <form action="process.php" method="POST"> <table align="left" border="0" cellspacing="0" cellpadding="3"> <tr><td>Username:</td><td><input typ
<form action="process.php" method="POST">
<table align="left" border="0" cellspacing="0" cellpadding="3">
<tr><td>Username:</td><td><input type="text" name="user" maxlength="30" value="<? echo $form->value("user"); ?>"></td><td><? echo $form->error("user"); ?></td></tr>
<tr><td>Password:</td><td><input type="password" name="pass" maxlength="30" value="<? echo $form->value("pass"); ?>"></td><td><? echo $form->error("pass"); ?></td></tr>
<tr><td colspan="2" align="left"><input type="checkbox" name="remember" <? if($form->value("remember") != ""){ echo "checked"; } ?>>
<font size="2">Remember me next time
<input type="hidden" name="sublogin" value="1">
<input type="submit" value="Login"></td></tr>
</table>
</form>
session.php:
function login($subuser, $subpass, $subremember){
global $database, $form; //The database and form object
/* Username error checking */
$field = "user"; //Use field name for username
if(!$subuser || strlen($subuser = trim($subuser)) == 0){
$form->setError($field, "* Username not entered");
}
else{
/* Check if username is not alphanumeric */
if(!eregi("^([0-9a-z])*$", $subuser)){
$form->setError($field, "* Username not alphanumeric");
}
}
/* Password error checking */
$field = "pass"; //Use field name for password
if(!$subpass){
$form->setError($field, "* Password not entered");
}
/* Return if form errors exist */
if($form->num_errors > 0){
return false;
}
/* Checks that username is in database and password is correct */
$subuser = stripslashes($subuser);
$result = $database->confirmUserPass($subuser, md5($subpass));
/* Check error codes */
if($result == 1){
$field = "user";
$form->setError($field, "* Username not found");
}
else if($result == 2){
$field = "pass";
$form->setError($field, "* Invalid password");
}
/* Return if form errors exist */
if($form->num_errors > 0){
return false;
}
/* Username and password correct, register session variables */
$this->userinfo = $database->getUserInfo($subuser);
$this->username = $_SESSION['username'] = $this->userinfo['username'];
$this->userid = $_SESSION['userid'] = $this->generateRandID();
$this->userlevel = $this->userinfo['userlevel'];
/* Insert userid into database and update active users table */
$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);
if($subremember){
setcookie("cookname", $this->username, time()+COOKIE_EXPIRE, COOKIE_PATH);
setcookie("cookid", $this->userid, time()+COOKIE_EXPIRE, COOKIE_PATH);
}
/* Login completed successfully */
return true;
}
首先尝试为按钮指定一个“名称”,然后在process.php中,检查此按钮是否按下,然后检查其他所有按钮…检查应类似于:
if(isset($_POST['submit_name'])){
}表中每行的td:s数量必须相同。
因为前两行有3个单元格,所以最后一行的colspan也必须有3个单元格。我在使用jpWare时遇到了同样的问题,这就是您的代码所基于的 当您在一个浏览器上使用“记住我”功能,然后登录到另一个浏览器时,就会出现问题。这是由于php试图使用过时的cookie中存储的数据来验证您的sessionId 为了解决这个问题,让PHP在登录时删除这些cookie。详情如下:
/* Insert userid into database and update active users table */
$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);
if($subremember){
setcookie(COOKIE_NAME, $this->customer_id, time()+COOKIE_EXPIRE, COOKIE_PATH);
setcookie(COOKIE_ID, $this->session_id, time()+COOKIE_EXPIRE, COOKIE_PATH);
} else {
/* Delete cookies - This fixes a bug that wouldn't let you log in if your
* session_id got changed (by another browser for example) but your cookies
* still referenced the old one.
*/
setcookie(COOKIE_NAME, $this->customer_id, time(), COOKIE_PATH);
setcookie(COOKIE_ID, $this->session_id, time(), COOKIE_PATH);}
如果你打电话给var_dump(“你好”);退出();在代码的顶部,你至少看到了吗?它不是PHP代码。在您的服务器上运行,而不是在客户端Chrome上运行。当你在Chrome中查看source:(Ctrl+U)时,生成的代码是什么样子的?嗯,到底是怎么回事。。。你的表格是被贴出来然后什么都没发生还是根本没被贴出来?好吧,嗯,你们这帮人把我弄糊涂了。我点击了“提交”,但什么都没发生
/* Insert userid into database and update active users table */
$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);
if($subremember){
setcookie(COOKIE_NAME, $this->customer_id, time()+COOKIE_EXPIRE, COOKIE_PATH);
setcookie(COOKIE_ID, $this->session_id, time()+COOKIE_EXPIRE, COOKIE_PATH);
} else {
/* Delete cookies - This fixes a bug that wouldn't let you log in if your
* session_id got changed (by another browser for example) but your cookies
* still referenced the old one.
*/
setcookie(COOKIE_NAME, $this->customer_id, time(), COOKIE_PATH);
setcookie(COOKIE_ID, $this->session_id, time(), COOKIE_PATH);}