php网页里面一个非常简单的问题,实在小白,没接触过,就是不懂啊,求大神

代码如下,是一个获取在网站上面提交了信息的用户的ip<?phpfunctionGetIP(){if(!empty($_SERVER["HTTP_CLIENT_IP"]))... 代码如下,是一个获取在网站上面提交了信息的用户的ip
<?php
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
return $cip;
}
?>
现在这个代码是正常的,ip可以正常获取,我现在想用个div把获取的ip显示出来,类似下面的
<div>192.168.1.1</div>

还补充个问题,用户在网站上面提交信息,其中用户填写的信息,js里面是这样提交的,如下
var username = $("#username").val();
如果我想吧ip做成跟这个一样的提交方式,如下
var ip = $("#ip").val();
那么刚才的php代码里面需要怎么修改啊。
展开
 我来答
kasim416
2014-09-11 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:295万
展开全部

先说你的第一个问题吧

方法大致有2类:前台动态申请,后台直接输出

后台直接输出是在由服务器解释后,直接传给浏览器,整个页面时写死的

div内调用:

<div><?php echo GetIP(); ?></div>
<?php
function GetIP(){
..........
}
?>

或者直接将这段代码套在一个div内,然后把最后的return改成echo也行

<div>
<?php
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
.....
echo $cip;
?></div>


前台动态申请就需要涉及到ajax了

html:

<html>
<body><div id="ip"></div></body>
</html>

js:


window.onload={
    $.ajax({url:"getip.php",data:{},type:"post",success:function(backdata){
        $("#ip").html(backdata);
    });
}

getip.php:

if(!empty($_SERVER["HTTP_CLIENT_IP"])){
.....
echo $cip;


关于第二个问题,var username = $("#username").val();仅仅是这样是没法向后台递交数据的。这样最多是获取id为username中的数据。如果想通过js向后台递交数据,就用ajax就行了

更多追问追答
追问
非常感谢,我看的不是很懂,我只要php获取到ip,然后和用户填写的信息一起提交到数据库,直接
var username = $("#username").val();
就可以提交到数据库,现在获取的ip不需要显示出来,只要一起提交到数据库就可以了

php获取到ip → 用户提交信息 → var ip = $("#ip").val(); 提交到数据库

就这三步,请问需要修改php代码吗?
追答

首先我现在根据你的条件推测以下几点

1、你的数据库在服务器端

2、你想记录那些ip访问了你的服务器

3、你从某人或某网站那copy了一段代码

如果我有一点推测错了,下面的写一切请无视。


首先,var这种定义格式明显是js不是php

数据库在服务器端,那么只有php可以操作你的数据库,而js是操作不到数据库的。

只有js以某种形式将数据提交到服务器端的php页,然后由服务器处理后再由php写入数据库

var ip = $("#ip").val();这种写法只是将id为ip的标签中的值取出赋给ip这个js变量罢了,没有递交或者写入数据库的功能。

可能您找的代码中有另将username提交到服务器的代码,但是如果仅是照着这个样子仿照一个获取值得ip出来,是没法达到效果的,还要仿照一个递交的代码

楼主可以运行以下这个代码

<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<script src="java.inc.bag/jquery-1.9.1.min.js"></script>
<body>
<input id="ip" type="text" value="192.168.1.1">
</body>
</html>
<script type="text/javascript">
var ip = $("#ip").val();
</script>

 你会发现一点效果没有,简单粗暴的告诉你这么只是这么一句话不可能提交数据到服务器。


如果是像我上面猜测的第二条那样,那么完全不需要将数据传递到客户端。直接在服务器端操作就好

<?php
function GetIP(){....}

$ip = GetIP();
$sqlstr="insert into $table_name('ip') values($ip)";
mysql_query($sqlstr);
?>

 插入数据库语言自己去改一下吧,我就是象征性的写了写。

这么写完全没有显示在客户端,也将访问网站的客户端ip写到了数据库

lowlan
2014-09-11 · TA获得超过127个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:77.9万
展开全部
<div id="ip"><?php echo(GetIP());?></div>

js:
var ip=$("#ip").html();
追问
网页中不需要显示

直接把ip一起提交上来,直接var ip=$("#ip").html();

可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappmPFH9MCjybmU7
2014-09-11 · TA获得超过452个赞
知道小有建树答主
回答量:684
采纳率:100%
帮助的人:382万
展开全部
<div><input type="text" id="ip" name="ip" value="<?php echo GetIP(); ?>"></div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式