各位朋友:这段代码是“查询密码第一步:输入会员名”,想实现的效果:当名字在数据库中不存在时,转到错误页面。
我这个代码老是出现: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);?><?phpmysql_free_result($rsMember);?>无标题文档 <?php include('menu.php'); ?><?phpif ($totalRows_rsMember == 0) { header ( "Location: message-1.php?error=3" ); exit;}?>
回复讨论(解决方案)
在 getpwd1-1.php 的 23 行处有输出
导致 header ( "Location: message-1.php?error=3" ); 出错
先检查那个输出是否确实必要?是否能调整到别处
实在不行的话,可在 require_once('Connections/member.php'); 前加上
ob_start();
来回避
在 getpwd1-1.php 的 23 行处有输出
导致 header ( "Location: message-1.php?error=3" ); 出错
先检查那个输出是否确实必要?是否能调整到别处
实在不行的话,可在 require_once('Connections/member.php'); 前加上
ob_start();
来回避
……
版主大人:我贴上来的就是getpwd1-1.php中的所有代码,具体要怎么调整?
如果在 require_once('Connections/member.php'); 前加上ob_start();的话,就直接转到错误页面了,而不是“输入不存在的用户名再转到错误页面”了。请指点,非常感谢!
粗心了没核实文件名
把 16 到 33 行(含33行)的内容移到 39 行的后面
另外 10 到 14 行的内容应当在 7 行的条件分支里
粗心了没核实文件名
把 16 到 33 行(含33行)的内容移到 39 行的后面
另外 10 到 14 行的内容应当在 7 行的条件分支里
版主大人:我照着您指点的改了,如下,但还是直接就转到错误页面啊!
<?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);}?><?phpif ($totalRows_rsMember == 0) { header ( "Location: message-1.php?error=3" ); exit;}?><?phpmysql_free_result($rsMember);?>无标题文档 <?php include('menu.php'); ?>
5 到 21 行改成
<?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; }}?>自己想一下,问什么要这样写?
5 到 21 行改成
PHP code?123456789101112131415<?php $colname_rsMember = "-1";if (isset($_POST['txtusername'])) { $colname_rsMember = (get_magic_quotes_gpc()) ? $_POST['txtusername'] : addslas……
原来可以这样,终于把这个逻辑理清楚了,多谢版主大人!