-2

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でそれを解決できますか??

4

1 に答える 1

0

主な問題は次のとおりです。

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

PHPはサーバー上で実行されます。そのため、PHP によってページが生成されると、hello 関数が呼び出されます。このようにコードを機能させることはできません。サーバー上のPHPがそのブロックを関数呼び出しによって生成された警告/エラーに置き換えているため、 Javascriptは決して見ません。hello()<?php hello() ?>

フォームデータをサーバーに送り返すか、少なくとも従来のフォーム送信を行うには、AJAX 呼び出しが必要です。

于 2013-05-03T20:52:46.980 に答える