|
我做着一个page,点进去后是可以下comment的,可是每当进去的第一次会出error,第二次就不会了,到底是哪里出了问题,我想在点进去时的第一次不会有自动跑出comment先,因为每次进去的第一次会有error后而留下一个空的comment..
<?php session_start(); ?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
Enter your comments:<br>
<textarea name="comments" cols="40" rows="10" method="post" id="comments"></textarea><br>
<input type="submit" name="submit" value="Submit" method="post" value="Submit Form">
</form>
<form name="signup" method="POST" action="pdmenu.php">
<input type="submit" name="MainMenu" value="Main Menu" method="post" value="Submit Form">
</form>
<font size=17><b>Comments</b></font>
<br>
<?php
if (isset($_SESSION['name']))
$ar=fopen("myfile1.txt","a") or
die("Problems in opening the file");
fputs($ar,"<table border = 0 cellspacing = 0 width=100%>");
fputs($ar,"<tr style='background-color:#33FF00;'><td>");
fputs($ar,"<table align='right'><tr><td>");
fputs($ar,date("d/m/Y"));
fputs($ar,"</td></tr></table>");
fputs($ar,"\n");
fputs($ar,$_SESSION['name']);
fputs($ar,"\n");
fputs($ar,"</td></tr></table>");
fputs($ar,$_REQUEST['comments']);
fputs($ar,"\n");
fputs($ar,"\n");
fclose($ar);
?>
<?php
$ar=fopen("myfile1.txt","r") or
die("Problens in opening the file");
while(!feof($ar))
{
$line=fgets($ar);
$linenew=nl2br($line);
echo $linenew;
}
fclose($ar);
?>
这是我的代码
|
-
第一次点进去
-
当留下comment后submit
|
|
|
|
|
|
|
发表于 25-11-2013 01:19 PM
|
显示全部楼层
去看你的Comments.php的第27行,看你做了什么。你应该是尝试Access某个Array,并且用“comment”作为index。Error Message已经写得很清楚了,你还看不明白吗? |
|
|
|
|
|
|
|

楼主 |
发表于 25-11-2013 01:37 PM
|
显示全部楼层
geekman 发表于 25-11-2013 01:19 PM 
去看你的Comments.php的第27行,看你做了什么。你应该是尝试Access某个Array,并且用“comment”作为index。 ...
我大概明白一点而已,就是每当我们点进去时comment.php会自动拿comment了,因为里面没东西,就error对吗?
|
|
|
|
|
|
|
|
发表于 25-11-2013 01:57 PM
|
显示全部楼层
是呀,很简单的问题,if(isset($_REQUEST['comments'])) 。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 25-11-2013 02:05 PM
|
显示全部楼层
rcyaw2 发表于 25-11-2013 01:57 PM 
是呀,很简单的问题,if(isset($_REQUEST['comments'])) 。。。
原来如此。isset的意思是只?
|
|
|
|
|
|
|
|
发表于 25-11-2013 02:58 PM
|
显示全部楼层
shern91 发表于 25-11-2013 01:37 PM 
我大概明白一点而已,就是每当我们点进去时comment.php会自动拿comment了,因为里面没东西,就error对吗? ...
问题是那个Array里面并没有“comment”这个element,所以才会产生那个Error。原因可能是Array尚未被Initialized。
|
|
|
|
|
|
|
|

楼主 |
发表于 25-11-2013 04:24 PM
|
显示全部楼层
rcyaw2 发表于 25-11-2013 01:57 PM 
是呀,很简单的问题,if(isset($_REQUEST['comments'])) 。。。
我放了,虽然不会有error...可是跑出一大堆warning出来
<?php
if (isset($_SESSION['name']))
if (isset($_REQUEST['comments']))
$ar=fopen("myfile1.txt","a" or
die(" roblems in opening the file" ;
fputs($ar,"<table border = 0 cellspacing = 0 width=100%>" ;
fputs($ar,"<tr style='background-color:#33FF00;'><td>" ;
fputs($ar,"<table align='right'><tr><td>" ;
fputs($ar,date("d/m/Y" );
fputs($ar,"</td></tr></table>" ;
fputs($ar,"\n" ;
fputs($ar,$_SESSION['name']);
fputs($ar,"\n" ;
fputs($ar,"</td></tr></table>" ;
fputs($ar,$_REQUEST['comments']);
fputs($ar,"\n" ;
fputs($ar,"\n" ;
fclose($ar);
?>
|
|
|
|
|
|
|
|

楼主 |
发表于 25-11-2013 04:25 PM
|
显示全部楼层
geekman 发表于 25-11-2013 02:58 PM 
问题是那个Array里面并没有“comment”这个element,所以才会产生那个Error。原因可能是Array尚未被Initi ...
那请问大大要怎么解决?
|
|
|
|
|
|
|
|
发表于 25-11-2013 07:07 PM
|
显示全部楼层
shern91 发表于 25-11-2013 04:25 PM 
那请问大大要怎么解决?
我都不知道你在Comments.php的第27行做了什么,怎么帮你?
|
|
|
|
|
|
|
|

楼主 |
发表于 25-11-2013 07:27 PM
|
显示全部楼层
geekman 发表于 25-11-2013 07:07 PM 
我都不知道你在Comments.php的第27行做了什么,怎么帮你?
其实是27行的我是假设是这样,我们写了comment后submit才出现comment,可是当我第一次进那个comment.php时有出error,因为是空的,它读不到有任何字,应该是那样..我想解决掉的时,我第一次进去comment.php时不会自动读comment先,没有的话会出现error和跑出空的一行comment出来...
|
|
|
|
|
|
|
|
发表于 26-11-2013 09:46 AM
|
显示全部楼层
shern91 发表于 25-11-2013 07:27 PM 
其实是27行的我是假设是这样,我们写了comment后submit才出现comment,可是当我第一次进那个comment.php时 ...
那你应该先检测Comment是否是空的,如果不是才将它显示出来,如果不存在就略过,而不是不管它存不存在都进行显示的Function啊。
|
|
|
|
|
|
|
|

楼主 |
发表于 26-11-2013 05:40 PM
|
显示全部楼层
geekman 发表于 26-11-2013 09:46 AM 
那你应该先检测Comment是否是空的,如果不是才将它显示出来,如果不存在就略过,而不是不管它存不存在都进 ...
哦,对hor...明白明白..我试看..可以PM你问你一些PHP问题吗?
|
|
|
|
|
|
|
|
发表于 27-11-2013 09:25 AM
|
显示全部楼层
shern91 发表于 26-11-2013 05:40 PM 
哦,对hor...明白明白..我试看..可以PM你问你一些PHP问题吗?
有什么问题就在这里讨论好了,大家也可以从中学习。如果是基于什么商业机密的那就别了,我不想承担任何为别人保守秘密的责任,万一你们公司出了内鬼,我还成了你们的第一嫌疑对象,那不是很冤?
|
|
|
|
|
|
|
|

楼主 |
发表于 27-11-2013 12:01 PM
|
显示全部楼层
geekman 发表于 27-11-2013 09:25 AM 
有什么问题就在这里讨论好了,大家也可以从中学习。如果是基于什么商业机密的那就别了,我不想承担任何为 ...
放心,不会..因为我要问的东西比较不一样了,所以打算PM你,先看一下我一下的代码,关于数据库的
<html><head><title>Edit Own data</title></head>
<body><h1 align="center"><u>EDIT OWN DATA</u></h1><center>
<?php session_start();
/* Change next two lines */
if(isset($_SESSION['name']))
if(isset($_SESSION['pass']))
$db='miniproject';
$link = mysql_connect('localhost', 'root','');
if (! $link)
die(mysql_error());
mysql_select_db($db , $link)
or die("Couldn't open $db: ".mysql_error());
$result = mysql_query( "SELECT * FROM check_login WHERE name = ".$_SESSION['name']." AND pass = ".$_SESSION['pass']." " )
or die("SELECT Error: ".mysql_error());
$count=mysql_fetch_array($result);
//$num_rows = mysql_fetch_array($result);
//print "$_SESSION['name']";
//print "<table width=300 border=1>\n";
//while ($get_info = mysql_fetch_row($result)){
//print "<tr>\n";
foreach ($get_info as $field)
//print "\t<td>$field</td>\n";
//print "</tr>\n";
if($count==1)
{
header("location:pdchange_form.php");
}
//else
//{
//header("location:pdmemu.php");
//}
//print "</table>\n";
mysql_close($link);
?>
我check了很多次,我的database,table名称没写错,可是每次得到的就是
SELECT Error: Unknown column 'shern91' in 'where clause'
这个打算查看,现在是"shern91"登陆着,就显示他的资料,那样...
|
|
|
|
|
|
|
|
发表于 27-11-2013 01:14 PM
|
显示全部楼层
再次强调,郑重、凝重、坚毅、和诚心诚意的强调,发代码时请用代码模式,也就是你发文时,上面的Menu里面,那个 〈 〉 的符号。你这样一大坨黏乎乎的,看得很幸苦的,我是分文不收的为你解答疑惑,那你至少该把你的代码整理得容易看一点吧?说真的,我实在没义务来这里自找难受啊。.gif) - if(isset($_SESSION['name']))
- if(isset($_SESSION['pass']))
复制代码 你的Coding Style真的很让人暴走,为必须接手你的代码的同事(抑或者导师?)致以万二分的同情与悼念。
我想问清楚一下,你到底是要做- if(isset($_SESSION['name']))
- {
- if(isset($_SESSION['pass']))
- {
- }
- }
复制代码 还是- if(isset($_SESSION['name'] && isset($_SESSION['pass']))
- {
- }
复制代码 两者是有差别的。
安妮薇(anyway),这不是重点。重点在于:- $result = mysql_query( "SELECT * FROM check_login WHERE name = ".$_SESSION['name']." AND pass = ".$_SESSION['pass']." " ) or die("SELECT Error: ".mysql_error());
复制代码 你的 $_SESSION['name'] 和 $_SESSION['pass'] 都是string吧?在SQL里面,string是要用text qualifier包容着的,你可以用 " (double quote)或者 ' (single quote)当作 text qualifier,视乎哪个比较适当。如果你的string argument没有text qualifier,SQL 会把它当作是 Column Name 来处理的。
我建议你看看这个:http://en.wikipedia.org/wiki/Programming_style
这或许会挽救你将来不会被你的同事们合力绑起来架在BBQ炉上烤。
本帖最后由 geekman 于 27-11-2013 01:27 PM 编辑
|
|
|
|
|
|
|
|

楼主 |
发表于 27-11-2013 01:55 PM
|
显示全部楼层
geekman 发表于 27-11-2013 01:14 PM 
再次强调,郑重、凝重、坚毅、和诚心诚意的强调,发代码时请用代码模式,也就是你发文时,上面的Menu里面, ...
我知道你是善心帮我的,先谢谢你,首先不好意思,我的代码太乱,我要做的就是,login的时候,create一个session是给username的,然后当我要去edit我身的资料时,要拿($_SESSION['pass'])跟database对比,如果对了,才显示"shern91"的本人资料...
- if(isset($_SESSION['name'] && isset($_SESSION['pass']))
- {
- }
我要做的应该是以上的..谢谢你
|
|
|
|
|
|
|
|

楼主 |
发表于 27-11-2013 01:57 PM
|
显示全部楼层
geekman 发表于 27-11-2013 01:14 PM 
再次强调,郑重、凝重、坚毅、和诚心诚意的强调,发代码时请用代码模式,也就是你发文时,上面的Menu里面, ...
谢谢你的郑重、凝重、坚毅、和诚心诚意的强调,我刚刚找到代码模式
|
|
|
|
|
|
|
|

楼主 |
发表于 28-11-2013 12:57 AM
|
显示全部楼层
geekman 发表于 27-11-2013 01:14 PM 
再次强调,郑重、凝重、坚毅、和诚心诚意的强调,发代码时请用代码模式,也就是你发文时,上面的Menu里面, ...
已经解决了,谢谢大家
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|