练习php,写了一个简单的登录页面,却一直错误,表明表单的值没有传到php文件那里,各位大侠帮帮忙啊~~
——login.html——
<html>
<body>
<form name="login" action="login.php" method="post" target="_self">
<input name="text" type="text" size="20" style="margin-bottom:40px;"/>
<input name="password" type="password" size="20" />
<input id="button" type="submit" value="" name="register" style="background-image:url(images/apply.jpg);">
<input id="button" type="submit" value="" name="login" style="background-image:url(images/login.jpg);;">
</form>
</body>
</html>——login.php——
<?
if($_POST["register"]) header('location:application.html');
else{
$conn=mysql_connect("localhost:3306","root","root");
if(mysql_select_db("MYDB"))
{
echo "open sucessfully!";
if($_POST["username"]&&$_POST["password"]&&$_POST["login"])
{
echo "post sucessfully!";
$sql="SELECT ID FROM USER WHERE EXISTS (
SELECT * FROM user WHERE ID=$username and PSW=$password)";
$result=mysql_query($sql);
if($result)
{
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
}
else echo "请将信息填写完整!";
}
else echo "数据库连接出错";}
?>结果出来的结果echo "post sucessfully!"这一句没有输出,出来的信息是“请将信息填写完整”。echo $_POST["username"]也没有结果。
但print_r($_POST);又是可以看到输出的。纠结啊,不懂啊,大侠们帮帮忙啊~~
——login.html——
<html>
<body>
<form name="login" action="login.php" method="post" target="_self">
<input name="text" type="text" size="20" style="margin-bottom:40px;"/>
<input name="password" type="password" size="20" />
<input id="button" type="submit" value="" name="register" style="background-image:url(images/apply.jpg);">
<input id="button" type="submit" value="" name="login" style="background-image:url(images/login.jpg);;">
</form>
</body>
</html>——login.php——
<?
if($_POST["register"]) header('location:application.html');
else{
$conn=mysql_connect("localhost:3306","root","root");
if(mysql_select_db("MYDB"))
{
echo "open sucessfully!";
if($_POST["username"]&&$_POST["password"]&&$_POST["login"])
{
echo "post sucessfully!";
$sql="SELECT ID FROM USER WHERE EXISTS (
SELECT * FROM user WHERE ID=$username and PSW=$password)";
$result=mysql_query($sql);
if($result)
{
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
}
else echo "请将信息填写完整!";
}
else echo "数据库连接出错";}
?>结果出来的结果echo "post sucessfully!"这一句没有输出,出来的信息是“请将信息填写完整”。echo $_POST["username"]也没有结果。
但print_r($_POST);又是可以看到输出的。纠结啊,不懂啊,大侠们帮帮忙啊~~
if($_POST["register"]){
header('location:application.html');
}else{
$conn=mysql_connect("localhost:3306","root","root");
if(mysql_select_db("MYDB")){
echo "open sucessfully!";
if($_POST["username"] And $_POST["password"] And $_POST["login"]){
echo "post sucessfully!";
$sql="SELECT ID FROM USER WHERE EXISTS (SELECT * FROM user WHERE ID={$username} and PSW='{$password}')";
$result=mysql_query($sql);
if($result){
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
}
else echo "请将信息填写完整!";
}
else echo "数据库连接出错";
}
?>
初学者,要注意一下代码缩进
你的代码是
if($result){
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
修改后的代码是
if($result){
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}else{
echo "用户名无效或密码错误,请重新输入!";
}
第8行:if($_POST["username"] And $_POST["password"] And $_POST["login"]){
报错是undefine index:register(username)
<html>
<body>
<form name="login" action="?" method="post" target="_self">
<input name="text" type="text" size="20" style="margin-bottom:40px;"/>
<input name="password" type="password" size="20" />
<input id="button" type="submit" value="" name="register" style="background-image:url(images/apply.jpg);" onclick="location.href='application.html'">
<input id="button" type="submit" value="" name="login" style="background-image:url(images/login.jpg);;">
</form>
</body>
</html>——login.php——
<?php $conn=mysql_connect("localhost:3306","root","root");
if(mysql_select_db("MYDB"))
{
echo "open sucessfully!";
if($_POST["username"] And $_POST["password"])
{
echo "post sucessfully!";
$sql="SELECT ID FROM USER WHERE EXISTS (
SELECT * FROM user WHERE ID=$username and PSW=$password)";
$result=mysql_query($sql);
if($result)
{
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
}
else echo "请将信息填写完整!";
}
else echo "数据库连接出错";
?>
open sucessfully!请将信息填写完整!
name="password" if($_POST["username"]&&$_POST["password"]&&$_POST["login"])上下不一致
只是结果还是一样
第2行:if( isset( $_POST["register"]) ){
第8行:if( isset($_POST["username"]) and $_POST["username"] And $_POST["password"] And $_POST["login"]){
当提交之后,
$_POST["register"] 和$_POST["login"]永远为NULL;
isset( $_POST["register"])的值永远为false;
因为value=""
当提交之后,
$_POST["register"] 和$_POST["login"]永远为NULL;因为value=""
isset( $_POST["register"])的值永远为false;修改方法:
在login.php中
第8行: if($_POST["username"]&&$_POST["password"]&&$_POST["login"])
改为: if($_POST["username"]&&$_POST["password"]&&isset($_POST["login"]))即login.php中$_POST["login"]均改为isset($_POST["login"]);
$_POST["register"]均改为isset($_POST["register"])
$sql="SELECT ID FROM USER WHERE EXISTS (
SELECT * FROM user WHERE ID=$username and PSW=$password)";
里面的变量应该加上单引号,不然它依然得不到值
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
你都echo了,下边还能header???
if($_POST["register"]) header('location:application.html');
else{
$conn=mysql_connect("127.0.01","root","");
if(mysql_select_db("MYDB"))
{
echo "open sucessfully!";
if($_POST["username"]&&$_POST["password"]&&$_POST["login"])
{
echo "post sucessfully!";
$sql="SELECT ID FROM USER WHERE EXISTS (
SELECT * FROM user WHERE USER=$username and PSW=$password)";
$result=mysql_query($sql);
if($result)
{
echo "欢迎你!正在跳转,请稍候...";
header('location:http://xyh.jnu.edu.cn/');
}
else echo "用户名无效或密码错误,请重新输入!";
}
else echo "请将信息填写完整!";
}
else echo "数据库连接出错";}数据的引索字段 特别是 ID 尽量不要用字符串来定义内容,这样的话 你需要获取值的时候 就需要另外定义一个有规则的字段才能很好的获取
以上我帮你修改了一下
数据库 建立 3个字段 ID USER 和PSW