珊瑚虫 发表于 2004-9-7 20:24:49

初学php遇到的问题

近来对php网页编程颇感兴趣,于是稍微学了点.不过照着书做了几个网页,且碰到不少问题.

现求教各位大侠如下:

1.在linux下,是不是凡是网页中嵌有php语句时,就须把网页存为.php的形式,否则在客户端就会打不开?

我觉得应该可以把文件命名为.html的,不过最简单的hello world的网页我把它命名为.html后,在客户端打开是空白的一页,而命名为.php后且能够打开.为什么呀,是不是要在php的配置文件中做一些修改?

2.php网页间怎么传递变量?
我编写了两个网页如下:
第一个网页命名为eg1-3.html,其源代码如下:
<html>
<head>
<title>Example 1-3</title>
</head>
<body>
<form action="eg1-4.php" method="post">   
Please input your first name:
<input type="text" name="firstname"><br>   //命名文本框名为firstname
<br>
Please input your last name:
<input type="text" name="lastname"><br>   //命名文本框名为lastname
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>

第二个网页命名为eg1-4.php,其源代码如下:
<html>
<head>
<title>Example 1-4:Answer for eg1-3</title>
</head>
<body>
<?php
$space=" ";
printf("Your name is <b>%s</b>.<br>",$firstname.$space.$lastname); //这里变量名同上   面两个文本框
printf("and the first name is <b>%s</b>,<br>",$firstname);
printf("and the last name is <b>%s</b>.<br>",$lastname);
printf("Thank you for your vist!");
?>
</body>
</html>

可是奇怪的是,执行结果输入第一个网页两个文本框的值并没有传递至第二个网页,也就是其值为空。请问应该怎么改?

jiangtao9999 发表于 2004-9-7 21:11:53

因为安全问题,现在默认 form 变量通过 $_POST['xxxx'] 进行传递。
比如 $firstname 需要改为 $_POST['firstname'] 来调用。

其它的还有 $_SESSION[]、$_GET[]、$_REQUEST[] 等~~~

珊瑚虫 发表于 2004-9-8 16:25:48

多谢版主!
不过还是不明白,为什么用$_POST['xxxx']就能提高安全性呢?

jiangtao9999 发表于 2004-9-8 16:57:18

如果按照旧的方法:

假设 $admin 是 SESSION 的变量还是 URL 变量?
假设这个变量是管能否使用管理员功能的变量。
1 表示可以使用。

本来为了安全把它放在了 SESSION 里(这个变量只存在于服务器上)。但如果某个人在 URL 后面加上 “?admin=1”。
这下就乱了。
代码里的 $admin 就成了 URL 变量,值为 1 。
但现在区分不了他是 SESSION 还是 URL 变量(都是 $admin 变量)结果,这个提交URL 的人就可以使用管理权限。

珊瑚虫 发表于 2004-9-8 20:22:39

行了,谢谢!
不愧为版主,佩服ing !
我是按照一本书来做的,看来这书太旧了!
不可尽信书哪!
页: [1]
查看完整版本: 初学php遇到的问题