2013-08-18 4 views
0

У меня есть <?php include 'stats.php'; ?> на каждой странице моего сайта. в файле stats.php есть запрос SQL Insert, который вставляет данные в таблицу в моей базе данных.Вставка нескольких строк в базу данных

По какой-то причине при посещении только одной страницы он вставляет 4 строки в базу данных - есть только одна команда SQL.

почему бы это делать это ... ниже ALL код на файл stats.php

<?php 
    $activity_history_sql= 
     "INSERT into user_activity_history (user_seq, user, timestamp, ip_address, user_request_uri, 
       user_script_filename, user_script_uri, user_script_url, user_script_name, user_php_self) 
     values ('".$_SESSION["domain.co.uk"]["sequence"]."', 
      '".$_SESSION["domain.co.uk"]["forename"].' '.$_SESSION["domain.co.uk"]["surname"]."', 
      '".date("Y-m-d H:i:s")."', 
      '".$_SERVER["REMOTE_ADDR"]."', 
      '".$_SERVER["REQUEST_URI"]."', 
      '".$_SERVER["SCRIPT_FILENAME"]."', 
      '".$_SERVER["SCRIPT_URI"]."', 
      '".$_SERVER["SCRIPT_URL"]."', 
      '".$_SERVER["SCRIPT_NAME"]."', 
      '".$_SERVER["PHP_SELF"]."') "; 
    $activity_history_rs=mysql_query($activity_history_sql,$conn) or die(mysql_error()); 
?> 
+1

Возможно, вы включаете файлы, которые включают 'stats.php'. Используйте 'require_once' вместо' include'. – rightfold

+1

Кроме того, ваш код уязвим для SQL-инъекции. См. [_Как я могу предотвратить SQL-инъекцию в PHP? _] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Не говоря уже о том, что 'mysql_ *' набор функций устарел. – rightfold

+0

Предупреждение: расширение mysql устарело от PHP 5.5.0 и будет удалено в будущем. Вместо этого [MySQLi] (http://www.php.net/manual/en/book.mysqli.php) или [PDO_MySQL] (http://www.php.net/manual/en/ref.pdo- mysql.php). Не используйте mysql для разработки нового кода. – bansi

ответ

0

ok - кажется, сейчас работает. возможно, мой кеш не обновился должным образом. возможно, он все еще использовал include, а не require_once

0

require_once() Пожалуйста, используйте при включении stats.php.

Оператор require_once идентичен требуется, за исключением PHP будет проверить, если файл уже был включен, и если да, то не включают (требуется) снова.

+0

, просто изменили все страницы на require_once, но все равно та же проблема –

+0

Где-то в вашем коде вы либо (1), включая файл статистики более одного раза, (2) или обновляя вашу страницу. – Zorayr

0

Попробуйте использовать другой метод, например require_once ('stat.php');

... которые могли бы решить проблему ...

Этот сценарий не кажется неисправна.

+0

только что изменил все страницы на require_once, но по-прежнему остается той же проблемой –

+0

, а затем проверьте другие коды своей страницы, если они зацикливаются на странице ... –

+1

нет ничего нет петли вообще –