我写了一个注册页面名字叫register.php 在同一个文件下还有2个文件on_ok.php和on_error.php
我想注册成功后或者注册失败后连接到这2个文件的一个。
下面是我写的代码,但是不行!求高手帮助,本人刚刚学PHP 以前是做ASP的//这个是注册页面register.php
if(!isset($error))
{
$conn=mysql_connect("127.0.0.1","root","");
$qurry= "insert into ut(name,pwd,sex)values('$name','$pwd','$select')";
$result = mysql_db_query("test",$qurry);
echo "注册成功";
header("Location:on_ok.php?names=$name&pwd=$pwd");
}
else
{
echo "注册失败";
header("Location:on_error.php?error=$error");
}
我想注册成功后或者注册失败后连接到这2个文件的一个。
下面是我写的代码,但是不行!求高手帮助,本人刚刚学PHP 以前是做ASP的//这个是注册页面register.php
if(!isset($error))
{
$conn=mysql_connect("127.0.0.1","root","");
$qurry= "insert into ut(name,pwd,sex)values('$name','$pwd','$select')";
$result = mysql_db_query("test",$qurry);
echo "注册成功";
header("Location:on_ok.php?names=$name&pwd=$pwd");
}
else
{
echo "注册失败";
header("Location:on_error.php?error=$error");
}
header("Location:on_ok.php?names=$name&pwd=$pwd");
//header之前不能echo 或有html
header();之前不能有输出,就算空格也不行,除非在输出之前加ob_start();方可,是不是马虎了
我去掉echo了但是还是不行,是不是这个页面只能是纯的PHP页面?里面一点都不带HTML?
Warning: Cannot modify header information - headers already sent by (output started at D:\www\www\htdocs\PHP\register.php:20) in D:\www\www\htdocs\PHP\register.php on line 81
mysql_select_db("test",$conn);
$result = mysql_query($qurry);
就是用header()页面重定向。或者帮我把我的那个该一下。
你是不是,在其他地方用了require()或include()?
改为: echo "<script>window.location='on_error.php';</script>";
<td>密码确认:</td>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>
注册
</title>
</head>
<body>
<form action="" method="POST">
<table align="center" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td>用户名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>密码确认:</td>
<td><input type="password" name="pwd1"></td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="select" value="男">男
<input type="radio" name="select" value="女">女
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="sure" value="确认">
<input type="reset" name="reset" value="取消">
</td>
</tr>
</table>
</form>
<?php
//include"commend.php";
$name =$_POST['name'];
$pwd=$_POST['pwd'];
$select =$_POST['select'];
function tt($t)
{
$conn=mysql_connect("127.0.0.1","root","");
$qurry= "select name from ut ";
$result = mysql_db_query("test",$qurry);
$arry=mysql_fetch_array($result);
$t=$arry[t];
return $t;
}
if($_POST['sure'])
{
if($_POST['name']=="")
{
$error="用户名空呀";
}
if((!isset($error))&(!ereg("^[0-9a-z]*$",$_POST['name'])))
{
$error="用户名只能是数字,字母和下划线";
}
if((!isset($error))&($t=$_POST['name']))
{
$error="用户名已经存在";
}
if((!isset($error))&($_POST['pwd']!=$_POST['pwd1']))
{
$error="2次密码不一致";
}
if(!isset($error))
{
$conn=mysql_connect("127.0.0.1","root","");
mysql_query('SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary', $conn);
$qurry= "insert into ut(name,pwd,sex)values('$name','$pwd','$select')";
$result = mysql_db_query("test",$qurry);
header("Location:on_ok.php?names=$name&pwd=$pwd");
}
else
{
ob_start();
header("Location:on_error.php?error=$error");
ob_end_flush();//输出全部内容到浏览器 }
exit;
}
?>
</body>
</html>
if($_POST['sure'])
后面加else {
?>
你原来的所有html
<?php
}
应该就可以了
输入网址,浏览器解析域名,发送请求头例如
GET /u/20091029/14/89d4d629-1ce3-41af-9c99-eab879a191ec.html HTTP 1.1
HOST topic.csdn.net
(其它信息)
服务器接受,处理请求
HTTP/1.1 200 OK
Server: Apache/2.2.11
你可以用header设置这里的内容,包括cookie都是通过这个设置,所以都要求没有输出网页内容(这里就是echo等等内容)以后你用到socket或者curl读取网页的时候就会看到这些了
echo "注册成功";
header("Location:on_ok.php?names=$name&pwd=$pwd");
//header之前不能echo 或有html
我之前就给你写出来了,你是一点也不看呀!真是这呀!