各位朋友:这段代码是“查询密码第一步:输入会员名”,想实现的效果:当名字在数据库中不存在时,转到错误页面。
我这个代码老是出现:Warning: Cannot modify header information - headers already sent by (output started at F:\PHPSites\member\getpwd1-1.php:23) in F:\PHPSites\member\getpwd1-1.php on line 36
应该怎么改呢?非常感谢了!
<?php
$totalRows_rsMember = 0;
?>
<?php require_once('Connections/member.php'); ?>
<?php
$colname_rsMember = "-1";
if (isset($_POST['txtusername'])) {
$colname_rsMember = (get_magic_quotes_gpc()) ? $_POST['txtusername'] : addslashes($_POST['txtusername']);
}
mysql_select_db($database_member, $member);
$query_rsMember = sprintf("SELECT username FROM members WHERE username = '%s'", $colname_rsMember);
$rsMember = mysql_query($query_rsMember, $member) or die(mysql_error());
$row_rsMember = mysql_fetch_assoc($rsMember);
$totalRows_rsMember = mysql_num_rows($rsMember);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function checkFormData () {
if ( form1.txtUsername.value == "" ) {
alert ( "用户名不能为空,请重新输入!" );
form1.txtUsername.focus();
return false;
}
}
</script>
</head>
<body><?php include('menu.php'); ?>
<?php
if ($totalRows_rsMember == 0) {
header ( "Location: message-1.php?error=3" );
exit;
}
?>
<form action="getpwd2-1.php" method="post" name="form1" id="form1" onsubmit="return checkFormData()">
<table width="256" border="1" align="center" rules="none">
<tr>
<th colspan="2" bgcolor="#0066CC" class="title">第一步:输入会员名</th>
</tr>
<tr>
<td width="72" height="32" align="right">用户名:</td>
<td width="168" height="32"><input name="txtUsername" type="text" id="txtUsername" /></td>
</tr>
<tr>
<td height="32" colspan="2" align="center"><input name="btnNext" type="submit" id="btnNext" value="下一步" /></td>
</tr>
</table>
</form>
</body>
</html>
<?php
mysql_free_result($rsMember);
?>
页面跳转 错误页面
我这个代码老是出现:Warning: Cannot modify header information - headers already sent by (output started at F:\PHPSites\member\getpwd1-1.php:23) in F:\PHPSites\member\getpwd1-1.php on line 36
应该怎么改呢?非常感谢了!
<?php
$totalRows_rsMember = 0;
?>
<?php require_once('Connections/member.php'); ?>
<?php
$colname_rsMember = "-1";
if (isset($_POST['txtusername'])) {
$colname_rsMember = (get_magic_quotes_gpc()) ? $_POST['txtusername'] : addslashes($_POST['txtusername']);
}
mysql_select_db($database_member, $member);
$query_rsMember = sprintf("SELECT username FROM members WHERE username = '%s'", $colname_rsMember);
$rsMember = mysql_query($query_rsMember, $member) or die(mysql_error());
$row_rsMember = mysql_fetch_assoc($rsMember);
$totalRows_rsMember = mysql_num_rows($rsMember);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function checkFormData () {
if ( form1.txtUsername.value == "" ) {
alert ( "用户名不能为空,请重新输入!" );
form1.txtUsername.focus();
return false;
}
}
</script>
</head>
<body><?php include('menu.php'); ?>
<?php
if ($totalRows_rsMember == 0) {
header ( "Location: message-1.php?error=3" );
exit;
}
?>
<form action="getpwd2-1.php" method="post" name="form1" id="form1" onsubmit="return checkFormData()">
<table width="256" border="1" align="center" rules="none">
<tr>
<th colspan="2" bgcolor="#0066CC" class="title">第一步:输入会员名</th>
</tr>
<tr>
<td width="72" height="32" align="right">用户名:</td>
<td width="168" height="32"><input name="txtUsername" type="text" id="txtUsername" /></td>
</tr>
<tr>
<td height="32" colspan="2" align="center"><input name="btnNext" type="submit" id="btnNext" value="下一步" /></td>
</tr>
</table>
</form>
</body>
</html>
<?php
mysql_free_result($rsMember);
?>
页面跳转 错误页面
导致 header ( "Location: message-1.php?error=3" ); 出错先检查那个输出是否确实必要?是否能调整到别处
实在不行的话,可在 require_once('Connections/member.php'); 前加上
ob_start();
来回避
版主大人:我贴上来的就是getpwd1-1.php中的所有代码,具体要怎么调整?
如果在 require_once('Connections/member.php'); 前加上ob_start();的话,就直接转到错误页面了,而不是“输入不存在的用户名再转到错误页面”了。请指点,非常感谢!
版主大人:我照着您指点的改了,如下,但还是直接就转到错误页面啊!
<?php
$totalRows_rsMember = 0;
?>
<?php require_once('Connections/member.php'); ?>
<?php
$colname_rsMember = "-1";
if (isset($_POST['txtusername'])) {
$colname_rsMember = (get_magic_quotes_gpc()) ? $_POST['txtusername'] : addslashes($_POST['txtusername']);
mysql_select_db($database_member, $member);
$query_rsMember = sprintf("SELECT username FROM members WHERE username = '%s'", $colname_rsMember);
$rsMember = mysql_query($query_rsMember, $member) or die(mysql_error());
$row_rsMember = mysql_fetch_assoc($rsMember);
$totalRows_rsMember = mysql_num_rows($rsMember);
}
?>
<?php
if ($totalRows_rsMember == 0) {
header ( "Location: message-1.php?error=3" );
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function checkFormData () {
if ( form1.txtUsername.value == "" ) {
alert ( "用户名不能为空,请重新输入!" );
form1.txtUsername.focus();
return false;
}
}
</script>
</head>
<body><?php include('menu.php'); ?>
<form action="getpwd2-1.php" method="post" name="form1" id="form1" onsubmit="return checkFormData()">
<table width="256" border="1" align="center" rules="none">
<tr>
<th colspan="2" bgcolor="#0066CC" class="title">第一步:输入会员名</th>
</tr>
<tr>
<td width="72" height="32" align="right">用户名:</td>
<td width="168" height="32"><input name="txtUsername" type="text" id="txtUsername" /></td>
</tr>
<tr>
<td height="32" colspan="2" align="center"><input name="btnNext" type="submit" id="btnNext" value="下一步" /></td>
</tr>
</table>
</form>
</body>
</html>
<?php
mysql_free_result($rsMember);
?>
<?php
$colname_rsMember = "-1";
if (isset($_POST['txtusername'])) {
$colname_rsMember = (get_magic_quotes_gpc()) ? $_POST['txtusername'] : addslashes($_POST['txtusername']);
mysql_select_db($database_member, $member);
$query_rsMember = sprintf("SELECT username FROM members WHERE username = '%s'", $colname_rsMember);
$rsMember = mysql_query($query_rsMember, $member) or die(mysql_error());
$row_rsMember = mysql_fetch_assoc($rsMember);
$totalRows_rsMember = mysql_num_rows($rsMember);
if ($totalRows_rsMember == 0) {
header ( "Location: message-1.php?error=3" );
exit;
}
}
?>自己想一下,问什么要这样写?