nowind 发表于 2004-6-7 09:51:28

现在都改好了,输入栏也变成空白。但是,新的问题出现了,现在是无论输入不输入,都显示“谢谢”
我改了的所有代码如下:
<html>
<body>
<?php
if(isset($_POST["submit"])) {
if (!isset($_POST["first"])|| !isset($_POST["last"]) ) {
$_POST["error"]= "对不起,您必须填写所有的栏目!";
} else {
// 处理表格输入内容
echo "谢谢!";
}
}
if (!isset($_POST["submit"]) || isset($_POST["error"])) {
echo isset($_POST["error"]);
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一栏: <input type="text" name="last" value="<?php echo isset($_POST["first"]) ?>"><br>
第二栏: <input type="text" name="first" value="<?php echo isset($_POST["last"]) ?>"><br>
<input type="Submit" name="submit" value="输入信息">
</form>
<?php
} // if结束
?>
</body>
</html>

dalin 发表于 2004-6-7 14:02:13

很显然,如果你的error不是从表单上提交上来的,根本就不能用echo isset($_POST["error"]); 这样莫名其妙的语句,就算是从表单上传来的,也不能这么用。

这里是直接用$error就行了,也即:
$_POST["error"]= "对不起,您必须填写所有的栏目!";
改成
$error= "对不起,您必须填写所有的栏目!";

echo isset($_POST["error"]);
改成
echo $error;

nowind 发表于 2004-6-7 15:05:26

很显然,如果你的error不是从表单上提交上来的,根本就不能用echo isset($_POST["error"]); 这样莫名其妙的语句,就算是从表单上传来的,也不能这么用。

这里是直接用$error就行了,也即:
$_POST["error"]= "对不起,您必须填写所有的栏目!";
改成
$error= "对不起,您必须填写所有的栏目!";

echo isset($_POST["error"]);
改成
echo $error;

现在我源代码改成以下:
<html>
<body>
<?php
if(isset($_POST["submit"])) {
if (!isset($_POST["first"])|| !isset($_POST["last"]) ) {
$error= "对不起,您必须填写所有的栏目!";
} else {
// 处理表格输入内容
echo "谢谢!";
}
}
if (!isset($_POST["submit"]) || $error) {
echo $error;
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一栏: <input type="text" name="last" value="<?php echo isset($_POST["first"]) ?>"><br>
第二栏: <input type="text" name="first" value="<?php echo isset($_POST["last"]) ?>"><br>
<input type="Submit" name="submit" value="输入信息">
</form>
<?php
} // if结束
?>
</body>
</html>

运行php源码,出现Notice: Undefined variable: error in d:\usr\www\html\1.php on line 13
无论输入不输入内容,点“输入信息”仍然只显示“谢谢!”


不解,不解!!!!!!

Mandrake 发表于 2004-6-7 17:51:03

很显然,如果你的error不是从表单上提交上来的,根本就不能用echo isset($_POST["error"]); 这样莫名其妙的语句,就算是从表单上传来的,也不能这么用。

这里是直接用$error就行了,也即:
$_POST["error"]= "对不起,您必须填写所有的栏目!";
改成
$error= "对不起,您必须填写所有的栏目!";

echo isset($_POST["error"]);
改成
echo $error;

现在我源代码改成以下:
<html>
<body>
<?php
if(isset($_POST["submit"])) {
if (!isset($_POST["first"])|| !isset($_POST["last"]) ) {
$error= "对不起,您必须填写所有的栏目!";
} else {
// 处理表格输入内容
echo "谢谢!";
}
}
if (!isset($_POST["submit"]) || $error) {
echo $error;
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一栏: <input type="text" name="last" value="<?php echo isset($_POST["first"]) ?>"><br>
第二栏: <input type="text" name="first" value="<?php echo isset($_POST["last"]) ?>"><br>
<input type="Submit" name="submit" value="输入信息">
</form>
<?php
} // if结束
?>
</body>
</html>

运行php源码,出现Notice: Undefined variable: error in d:\usr\www\html\1.php on line 13
无论输入不输入内容,点“输入信息”仍然只显示“谢谢!”


不解,不解!!!!!!那你先在最前面定义$error啊。
比如在<?php后面加上一句 $error="";

jiangtao9999 发表于 2004-6-7 18:29:04


if (!isset($_POST["first"]) || !isset($_POST["last"]) ) {

当然正常了,因为这个变量确实已经设置,只不过它的内容为空而已。

既然你需要让他必须输入东西,你就应该这样写:

if ( $_POST["first"] != ""|| $_POST["last"] != "" ) {

nowind 发表于 2004-6-7 23:28:38

好,谢谢各位

nowind 发表于 2004-6-8 08:16:47


if (!isset($_POST["first"]) || !isset($_POST["last"]) ) {

当然正常了,因为这个变量确实已经设置,只不过它的内容为空而已。

既然你需要让他必须输入东西,你就应该这样写:

if ( $_POST["first"] != ""|| $_POST["last"] != "" ) {



改了以后成了这种结果“输入了内容,显示‘对不起’,没有输入却显示‘谢谢’反了

我觉得这句有点问题,if ( $_POST["first"] != ""|| $_POST["last"] != "" ) {
$error= "对不起,您必须填写所有的栏目!";
它的意思是如果first不为空或者last不为空,就显示“对不起,您必须填写所有的栏目!"; 这和本意相反,于是我改为
if ( $_POST["first"] = ""|| $_POST["last"] = "" ) {
$error= "对不起,您必须填写所有的栏目!";

结果是无论输入不输入,都显示“谢谢”

nowind 发表于 2004-6-8 08:21:28

其实这个问题昨天我已经解决了,就是把
if ( $_POST["first"] != "" || $_POST["last"] != "" ) {
$error= "对不起,您必须填写所有的栏目!";
改为:
if ( !$first || !$last ) {
$error= "对不起,您必须填写所有的栏目!"; 之后一切正常。现在所有源码如下:

<html>
<body>
<?php
$error= "";
if(isset($_POST["submit"])) {
if ( !$first || !$last ) {
$error= "对不起,您必须填写所有的栏目!";
} else {
// 处理表格输入内容
echo "谢谢!";
}
}
if (!isset($_POST["submit"]) || $error) {
echo $error;
?>
<P>
<form method="post" action="<?php echo $PHP_SELF ?>">
第一栏: <input type="text" name="last" value="<?php echo isset($_POST["first"]) ?>"><br>
第二栏: <input type="text" name="first" value="<?php echo isset($_POST["last"]) ?>"><br>
<input type="Submit" name="submit" value="输入信息">
</form>
<?php
} // if结束
?>
</body>
</html>

jiangtao9999 发表于 2004-6-8 11:36:21


if ( $_POST["first"] = "" || $_POST["last"] = "" ) {


标准的语法错误………………

你是测试他们是否相等,而现在的代码是付值…………

应该是

if ( $_POST["first"] == "" || $_POST["last"] == "" ) {

当然,你的那种也可以。
不过要注意,如果有人输入 0 ,那和变量值为空的结果是一样的。

nowind 发表于 2004-6-8 11:54:29


if ( $_POST["first"] = "" || $_POST["last"] = "" ) {


标准的语法错误………………

你是测试他们是否相等,而现在的代码是付值…………

应该是

if ( $_POST["first"] == "" || $_POST["last"] == "" ) {

当然,你的那种也可以。
不过要注意,如果有人输入 0 ,那和变量值为空的结果是一样的。


试了一下,果然高见!我那种如果输入0和空一样,但是如果输入00就不一样了,呵呵,斑竹,终于等到你们了,去看看我的其他帖子吧
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=71185&highlight=

jiangtao9999 发表于 2004-6-8 12:01:42

下课了………………

等下午吧~~~~ :oops:

nowind 发表于 2004-6-8 12:03:51

5555555,下午一定要来啊

nowind 发表于 2004-6-9 09:54:04

jiangtao9999,   我现在自己把叶面做好了,注册,登陆,交易这些代码我也写好了,数据库建立了,但是要怎么才能把他们和在一起啊?

jiangtao9999 发表于 2004-6-9 15:52:50

!?
合起来就不会了???

你可以用 include() 、require() 进行相应的调用啊……………

nowind 发表于 2004-6-9 17:03:39

正在研究中…………………………………………
页: 1 2 3 [4] 5
查看完整版本: 寻找枪手(不是广告,斑竹别删)