哈,怎么跑到这里来问了?进来看

 更新时间:2016年11月25日 15:20  点击:1702
看你的域名服务器了
如果用别人的,什么都不用你做
打电话告诉对方你要解析到什么IP就可以
如果自己的,那么首先要作的是你的域名的域名服务器是你的机器
比如:aaa.com注册信息里域名服务器是ns1.aaa.com
确定后,建立自己的DNS服务器
服务器名叫NS1,所属域就是aaa.com
WIN2K或者NT就直接在WINDOWS组件里添加DNS服务
然后控制面板的管理工具里会多出来一个DNS控制器
打开,本地机器右键,[默认的所有选择都是右键菜单]
新建域,aaa.com
新建主机ns1 IP 你的IP
接下来就可以建立WWW服务器了
新建主机 www IP就是你的WWW的IP了
重新启动DNS
OK
linux或者类UNIX
机器名NS1,所属域 aaa.com
然后安装BIND,一般发行套件里都有默认选项
安装好以后,配置NAMED服务
/etc/named.conf
加上本地域,其内容如下
options {
    directory "/var/named";
};
zone "." {
    type hint;
    file "named.ca";
};
zone "aaa.com"{
    type master;
    file "aaa.com";
};
然后新建该域文件:
/var/named/aaa.com
内容:
aaa.com.    IN    SOA    ns1.aaa.com. hostmaster.ns1.aaa.com (
       2000120820
       3600
       900
       1209600
       43200 )
aaa.com.    IN    NS    ns1.aaa.com.
aaa.com.    IN    A    DNS服务器的IP或者其他都可以
ns1    IN    A    DNS服务器的IP
www    IN    A    WWW服务器的IP
重起DNS服务
这样就算完了

PHP中的面向对象功能支持 C++ 式的 :: 运算符号!!!
//孤狼:这个::在PEAR中可是频频出现,第一次见的时候搞的我莫名其妙 :)
这个特色文档没有任何说明,但是却有着很好的使用价值。
举一个简单的例子:
比如你以前有很多收集的函数库,你想转向 OOP 方式编程,但是还不能做到完全的封装。
 这个特色提供你一个OOP风格的实现。
你定义一个 Util 类:
class Util {
//将所有的函数剪辑到这里
//这个类可以没有任何成员函数
}
然后在你原先使用函数的地方,比如 someFunction(), 修改成:
Util::someFunction(). 这对你需要封装,但是不需要任何成员函数非常有用。
PHP代码:--------------------------------------------------------------------------------
<?php
/**
*中速版,中等内存使用,使用于一般需求或有大量重复字的大段文本
*@text:待转换的字符串
*@table_file:转换映射表文件名
*/
function encode_trans1($text,$table_file='gb2big5') {
$fp = fopen($table_file.'.table', "r");
$cache = array();
$max=strlen($text)-1;
for($i=0;$i<$max;$i++) {
$h=ord($text[$i]);
if($h>=160) {
$l=ord($text[$i+1]);
if($h==161 && $l==64) {
$text[$i]=" ";
} else{
$cut = substr($text,$i,2);
if(!$cache[$cut]) {
fseek($fp,($h-160)*510+($l-1)*2);
$cache[$cut] = fread($fp,2);
}
$text[$i] = $cache[$cut][0];
$text[++$i] = $cache[$cut][1];
}
}
}
fclose($fp);
return $text;
}
/**
*低速版,最低内存使用,使用于少量字符时
*@text:待转换的字符串
*@table_file:转换映射表文件名
*/
function encode_trans2($text,$table_file='gb2big5') {
$fp = fopen($table_file.'.table', "r");
$max=strlen($text)-1;
for($i=0;$i<$max;$i++) {
$h=ord($text[$i]);
if($h>=160) {
$l=ord($text[$i+1]);
if($h==161 && $l==64) {
$gb=" ";
}else{
fseek($fp,($h-160)*510+($l-1)*2);
$gb=fread($fp,2);
}
$text[$i]=$gb[0];
$text[$i+1]=$gb[1]; $i++;
}
}
fclose($fp);
return $text;
}
/**
*高速版,最高内存使用,使用于大段文本时
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
即使用户通过代理服务器上网,也能查出他的IP。但是要求代理服务器的类型是transparent类型。如果代理服务器是anonymous或者是high anonymous类型,HTTP_X_FORWARDED_FOR也无能为力了。

在PHP中的处理窗体数据比其它网页程序语言更简单——如果你使用这种语言一段时间后,你会发现这是一个不可争辩的事实。这种操作的简易性使它可以容易地处理更为复杂的窗体事件,包括今天讨论的主题,即在同一个窗体中通过多个按钮来处理不同的任务。
为什么使用多个提交任务?


在我回答这个问题之前,先让我回答一个很显然的问题:既然许多窗体更适合单一的提交按钮,为什么有时人们需要的是两个(或者是更多)的提交按钮?
对这一问题最好的解释方法是用我最近开发项目中的一个实例来说明。在这一项目中,我的任务是给一个图书馆建立一个详细目录查询系统。书籍题目被储存在数据库中,而管理员将可以使用一个基于浏览器功能的界面来查看其中任何一本书的记录,然后对这一记录上选择执行四种操作之一:成员还书登记,成员借书登记,书本丢失记录以及书本销售记录。
以上所有任务都要通过一个独立窗体来处理,这样就需要相应的按钮来响应这些任务。传入到窗体的数据将以不同的方式处理,这取决于被点击的按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表)。由于一个窗体只能处理一个唯一的任务,但是相同的PHP脚本可以根据被点击的按钮和执行合适的代码段来处理以上四种任务。因此就需要处理多个提交任务按钮的单一窗体,以及实现不同按钮的自动响应的窗体处理代码段。
我首先列举一个简单例子:一个提交按扭的窗体。这样能够让你清楚地理解基本概念,并且为将要讲述的复杂范例打下铺垫。这里是一个窗体:
<html><head>Single-button form</head>
<body>
<form action="processor.php" method="post"> Enter a number: <input type="text" name="number" size="3"> <br>
<input type="submit" name="submit"> </form>
</body>
</html>
以下的是调用提交任务的processor.php脚本:
<?php
// check for submission
// retrieve value from posted data
if ($_POST['submit'])
{
echo "You entered the number " . $_POST['number']; }
?>
当一个窗体被提交给PHP脚本时,根据使用的提交方法(本文我假设为POST),PHP自动建立一个特定的$_POST或者$_GET数组。键入到窗体输入域内的数值会自动转化成数组中的关键数据,并可以使用常规数据符号来访问这些数据。
 
特别值得注意的是,如何在以上脚本中处理提交任务的按扭。当窗体被提交时,提交按钮根据自己实际的“name”转变成$_POST中的一个元素。添加以下一行代码就很清楚了:
print_r($_POST);
为了了解以上PHP脚本,你可以查看数组的内部结构,并可以清楚地看到不同窗体控件之间的相互联系。

[!--infotagslink--]

相关文章