Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема: скрипт пихает в БД по две записи


Автор: Include 22.4.2006, 19:03
вот такая у меня проблема, дело в том что скрипт (простейший счетчик посещений, показывающий число хостов) при выполнении пихает в БД по 2 записи.
но если убрать вывод изображения и сделать например просто echo все работает нормально...
в чем трабла? и как ее исправить?

Код

<?
$hostname = "localhost";        //хост
$username = "root";                //юзер
$password = "";                    //пороль
$dbName = "count";                //имя БД

mysql_connect($hostname,$username,$password) OR DIE("error ");
mysql_select_db($dbName) or die(mysql_error());

//IP посетителя
$ip = $REMOTE_ADDR;

//Подсеть (если доступна)
$forward = getenv (HTTP_X_FORWARDED_FOR);

//Формирование строки с полным ip
if (($forward != NULL) && ($forward != $REMOTE_ADDR))
    $ip = $ip."/".$forward;

//добавляем ip пользователя в БД
$request1 = "INSERT INTO ip_log(ip) VALUES('$ip')";
$result1 = mysql_query($request1);

//вытаскиваем из БД кол-во оригинальных ip
$request = "SELECT count(distinct ip) FROM ip_log";
$result = mysql_query($request);
if (!mysql_error()) while ($row = mysql_fetch_row($result)) $c_ip = $row[0];

header ("Content-type: image/png");
$im = ImageCreateFromPng("fon.png");
$black = ImageColorAllocate($im, 0, 0, 0);
imagettftext ($im, 18, 0, 25, 40, $black, "Torhok.ttf", $c_ip);
ImagePng($im);
ImageDestroy($im);

mysql_close();
?>
 

Автор: Mal Hack 22.4.2006, 20:23
Если выполняешь в PHP Expert Editor, то так и будет, он два раза скрипт прогоняет. 

Автор: Include 22.4.2006, 20:36
а как этого избежать? 

Автор: Satana 22.4.2006, 20:53
Include, Судя по всему запустить его в браузере, так сказать испытать в боевых условиях smile 

Автор: Mal Hack 22.4.2006, 21:06
Учитесь запускать скрипта работая на нормально установленном сервере.... 

Автор: Include 22.4.2006, 21:08
через браузер - тот же результат.

сервер - apache. 

Автор: Mal Hack 22.4.2006, 22:26
Этот скрипт картинку показывает?
Браузер Лиса небось?
Фишка в том, что Лиса два раза к картинке братиться, посему скрипт два раза и выполняется. Где-то это обсуждалось уже... 

Автор: Darhazer 5.5.2006, 17:59
Проблему можно решит через сессию. Так не будут несколько записей в одной и тоже сесии 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)