查看: 780|回复: 9
|
php - 错了什么?
[复制链接]
|
|
当我按submit时就出现这段字了。什么原因?
Warning: Cannot modify header information - headers already sent by (output started at C:\Server\xampp\htdocs\ztgroup\add.php:11) in C:\Server\xampp\htdocs\ztgroup\add.php on line 31
这是我的coding
if(isset($_POST[Submit])){
define('DB_USER', 'root');
define('DB_PASSWORD', 'xxxxx');
define('DB_HOST', 'localhost');
define('DB_DATABASE', 'xxx');
$link = mysql_pconnect(DB_HOST, DB_USER, DB_PASSWORD)
or die('????????:'.mysql_error());
mysql_select_db(DB_DATABASE)
or die('???????['.DB_DATABASE.']:'.mysql_error());
$sql = "INSERT INTO exam (date, name, time, language, ic, can_no, result) VALUES('$_POST[date]', '$_POST[name]', '$_POST[time]', '$_POST[language]','$_POST[ic]', '$_POST[can_no]', '$_POST[result]')";
mysql_query($sql) || die('ty: '.$sql);
header("Location:index.php");
exit;
}
?>
<form name="form1" method="post" action="">
<table width="600" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#9999FF">
<tr bgcolor="#9999FF">
<td colspan="2"><font color="#FFFFFF">New Exam</font></td>
</tr>
<tr>
<td width="23%"><div align="right">Date:</div></td>
<td width="77%"><input name="date" type="text" id="date"></td>
</tr>
<tr>
<td><p align="right">Name:</p></td>
<td><input name="name" type="text" id="name"></td>
</tr>
<tr>
<td><div align="right">Time:</div></td>
<td><input name="time" type="text" id="time"></td>
</tr>
<tr>
<td><div align="right">Language:</div></td>
<td><input name="language" type="text" id="language"></td>
</tr>
<tr>
<td><div align="right">IC:</div></td>
<td><input name="ic" type="text" id="ic"></td>
</tr>
<tr>
<td><div align="right">Candidate No:</div></td>
<td><input name="can_no" type="text" id="can_no"></td>
</tr>
<tr>
<td><div align="right">Result:</div></td>
<td><input name="result" type="text" id="result"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Submit">
</div></td>
</tr>
</table>
</form> |
|
|
|
|
|
|
|
发表于 17-5-2006 01:22 AM
|
显示全部楼层
從 error message 看來是
mysql_select_db(DB_DATABASE)
有 error, 然後第 31 行的
header("Location:index.php");
再設定 header 就不行了. |
|
|
|
|
|
|
|
发表于 17-5-2006 02:08 AM
|
显示全部楼层
你这段CODING之上有没有其他HTML CODE, 如<BODY><HTML>....
先当你是有吧....
header()之前, 不可以有OUTPUT.
你可以在这个PHP的第一行加入
ob_start();
最後一行加入
ob_end_flush();
应该就行了. |
|
|
|
|
|
|
|
楼主 |
发表于 17-5-2006 08:09 PM
|
显示全部楼层
试了,还是不能解决问题。
除了header 还有什么方法可以redirect去别个网页?
Warning: Cannot modify header information - headers already sent by (output started at C:\Server\xampp\htdocs\ztgroup\add.php:11) in C:\Server\xampp\htdocs\ztgroup\add.php on line 31
<font color=red>C:\Server\xampp\htdocs\ztgroup\add.php:11</font>
11 是第11行也就是 <?php 这一句。
line 31 是这句header("Location:index.php"); |
|
|
|
|
|
|
|
楼主 |
发表于 17-5-2006 08:11 PM
|
显示全部楼层
原帖由 flashang 于 17-5-2006 01:22 AM 发表
從 error message 看來是
mysql_select_db(DB_DATABASE)
有 error, 然後第 31 行的
header("Location:index.php");
再設定 header 就不行了.
如果我拿掉header("Location:index.php"); 就没问题。
应该不是sql_select_db(DB_DATABASE)这句的问题吧?
data 可以存进database。 |
|
|
|
|
|
|
|
发表于 17-5-2006 08:32 PM
|
显示全部楼层
你先把
- header("Location:index.php");
- exit;
复制代码
这两行REMARK, 然後, 在其下加入
如果你看得到"insert OK"的话, 那我肯定, 你一定是有在header()之前OUTPUT了资料了. 你查一下ob_start()的用法. |
|
|
|
|
|
|
|
楼主 |
发表于 17-5-2006 09:07 PM
|
显示全部楼层
原帖由 sweatbear 于 17-5-2006 08:32 PM 发表
你先把
- header("Location:index.php");
- exit;
复制代码
这两行REMARK, 然後, 在其下加入
如果你看得到"insert OK"的话, 那 ...
我看到"insert OK"。
我整句coding是这样的。。
- <HTML>
- <HEAD>
- <TITLE></TITLE>
- <META name="description" content="">
- <META name="keywords" content="">
- <META name="generator" content="CuteHTML">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">
- <?
- if(isset($_POST[Submit])){
- define('DB_USER', 'root');
- define('DB_PASSWORD', 'xxx');
- define('DB_HOST', 'localhost');
- define('DB_DATABASE', 'exam');
- $link = mysql_pconnect(DB_HOST, DB_USER, DB_PASSWORD)
- or die('Cant connect to server:'.mysql_error());
- mysql_select_db(DB_DATABASE)
- or die('Cant connect to database:'.mysql_error());
-
- $sql = "INSERT INTO exam (date, name, time, language, ic, can_no, result) VALUES('$_POST[date]', '$_POST[name]', '$_POST[time]', '$_POST[language]','$_POST[ic]', '$_POST[can_no]', '$_POST[result]')";
- mysql_query($sql) || die('Error: '.$sql);
- header("Location:index.php");
- exit;
-
- }
- ?>
- <form name="form1" method="post" action="add_verify.php">
- <table width="600" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#9999FF">
- <tr bgcolor="#9999FF">
- <td colspan="2"><font color="#FFFFFF">New Exam</font></td>
- </tr>
- <tr>
- <td width="23%"><div align="right">Date:</div></td>
- <td width="77%"><input name="date" type="text" id="date"></td>
- </tr>
- <tr>
- <td><p align="right">Name:</p></td>
- <td><input name="name" type="text" id="name"></td>
- </tr>
- <tr>
- <td><div align="right">Time:</div></td>
- <td><input name="time" type="text" id="time"></td>
- </tr>
- <tr>
- <td><div align="right">Language:</div></td>
- <td><input name="language" type="text" id="language"></td>
- </tr>
- <tr>
- <td><div align="right">IC:</div></td>
- <td><input name="ic" type="text" id="ic"></td>
- </tr>
- <tr>
- <td><div align="right">Candidate No:</div></td>
- <td><input name="can_no" type="text" id="can_no"></td>
- </tr>
- <tr>
- <td><div align="right">Result:</div></td>
- <td><input name="result" type="text" id="result"></td>
- </tr>
- <tr>
- <td colspan="2"><div align="center">
- <input type="submit" name="Submit" value="Submit">
- </div></td>
- </tr>
- </table>
- </form>
- </BODY>
- </HTML>
复制代码 |
|
|
|
|
|
|
|
发表于 17-5-2006 11:25 PM
|
显示全部楼层
原帖由 test 于 17-5-2006 08:09 PM 发表
试了,还是不能解决问题。
除了header 还有什么方法可以redirect去别个网页?
Warning: Cannot modify header information - headers already sent by (output started at C:\Server\xampp\htdocs\ztgroup\ ...
用Javascript
<script language="JavaScript">
window.location = "XXXX.php";
</script>
Javascipt 里不可以有<? ?>
就可以了。。 |
|
|
|
|
|
|
|
发表于 18-5-2006 12:07 AM
|
显示全部楼层
- <?
- if(isset($_POST[Submit])){
- define('DB_USER', 'root');
- define('DB_PASSWORD', 'xxx');
- define('DB_HOST', 'localhost');
- define('DB_DATABASE', 'exam');
- $link = mysql_pconnect(DB_HOST, DB_USER, DB_PASSWORD)
- or die('Cant connect to server:'.mysql_error());
- mysql_select_db(DB_DATABASE)
- or die('Cant connect to database:'.mysql_error());
-
- $sql = "INSERT INTO exam (date, name, time, language, ic, can_no, result) VALUES('$_POST[date]', '$_POST[name]', '$_POST[time]', '$_POST[language]','$_POST[ic]', '$_POST[can_no]', '$_POST[result]')";
- mysql_query($sql) || die('Error: '.$sql);
- header("Location:index.php");
- exit;
-
- }
- ?>
复制代码
我想你把这一句放在最上面应该没有问题 |
|
|
|
|
|
|
|
楼主 |
发表于 18-5-2006 01:27 AM
|
显示全部楼层
原帖由 红发 于 18-5-2006 12:07 AM 发表
[code]
<?
if(isset($_POST[Submit])){
define('DB_USER', 'root');
define('DB_PASSWORD', 'xxx');
define('DB_HOST', 'localhost');
define('DB_DATABASE', 'exam' ...
ok..谢谢!
我已经解决问题了。
原来把 <? ...... ?> 里面的东西放在<html>之前就解决了。。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|