我在使用php脚本时遇到了一些麻烦。
当我点击某个链接时,我想在php代码上运行mysql查询..
有我的代码
<?php
function hello(){
$browser=$_SERVER['HTTP_USER_AGENT'];
$url="http://".$_SERVER[SERVER_NAME].$_SERVER[REQUEST_URI];
$ip=$_SERVER['REMOTE_ADDR'];
mysql_connect("localhost","root","") or die("cannot connect");
mysql_select_db("kpp924");
mysql_query("INSERT INTO logs(ip,url,link,browser,waktu) VALUES ('$ip','$url','http://www.google.com','$browser','this is waktu')");
mysql_close();
}
?>
<a href="http://www.google.com" onclick="document.write('<?php hello() ?>');" >Click to save log</a>
当我点击链接时,这个代码得到了工作,将值插入到数据库中。但我的问题是,当我打开页面时,该功能正在运行,一个新数据插入数据库而不点击链接。
我的代码有问题吗?可以取悦任何告诉我错误的地方。或者也许有人可以用javascript解决它?
答案 0 :(得分:0)
主要问题是:
<a href=[..snip...]ment.write('<?php hello() ?>');" >Click to save log</a>
^^^^^^^^^^^^^^^^
PHP在服务器上执行。因此,当PHP生成页面时,会调用hello函数。您不能让代码像这样工作。 Javascript将从不查看hello()
,因为服务器上的PHP将替换该<?php hello() ?>
块,其中包含函数调用生成的任何警告/错误。
您需要通过AJAX调用将表单数据发送回服务器,或者至少进行传统的表单提交。