-2

我在使用 php 脚本时遇到了一些问题。

当我单击某个链接时,我想在 php 代码上运行 mysql Query。

有我的代码

<?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解决它?

4

1 回答 1

0

主要问题是这样的:

<a href=[..snip...]ment.write('<?php hello() ?>');" >Click to save log</a>
                               ^^^^^^^^^^^^^^^^

PHP 在服务器上执行。因此,当 PHP 生成页面时,会调用 hello 函数。你不能让代码像这样工作。Javascript永远不会看到hello(),因为服务器上的 PHP 将<?php hello() ?>用函数调用生成的任何警告/错误替换该块。

您需要 AJAX 调用将表单数据发送回服务器,或者至少进行传统的表单提交。

于 2013-05-03T20:52:46.980 回答