Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z licznikiem kliknięc - baza w plikach
xmarko
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 26.02.2004

Ostrzeżenie: (0%)
-----


Witam,
Szukam pomocy w rozwiązaniu mojego problemu.Napisałem skrypt w php, ma on na celu liczyc klikniecia na linki.
Każdy link na stronie używa zapisu index?akcja="nazwa linku".Na podstawie tego wyselekcjonowałem "nazwę linku".
A oto skrypt:
<?
php$element=$_SERVER["REQUEST_URI"];
$link_czlony=explode("=",$element);
$akcja=$link_czlony[0];
$link=$link_czlony[1];
$plik="nabijaj.in";
$plik1=file($plik);
$ile_lini=count($plik1);
for($index=0;$index<$ile_lini;$index++)
{$podzial=explode("|&&|",$plik1[$index]);
if ($podzial[0]==$link) { $nabijaj="tak";}
else { $nabijaj="nie";}}
if ($nabijaj="tak")
{$plik1=file($plik);
$ile_lini=count($plik1);
for($index=0;$index<$ile_lini;$index++)
{$podzial2=explode("|&&|",$plik1[$index]);
if ($podzial2[0]==$link)
{$wpis_przed="$podzial2[0]|&&|$podzial2[1]|&&|";
$licznik=$podzial2[1]+1;
$wpis_po="$link|&&|$licznik|&&|";
$plik1=fopen($plik,"r");
$czytaj=fread($plik1,filesize($plik));
fclose($plik1);
$po=str_replace($wpis_przed,$wpis_po,$czytaj);
$plik=fopen($plik,w);fwrite($plik,$po);fclose($plik); } } }
if ($nabijaj="nie") {
$plik="nabijaj.in";
$plik1=fopen($plik,"a");
fputs($plik1,"$link|&&|1|&&|n");
fclose ($plik1);} ?
I to wszystko prawie działa, ale powstają dodatkowe zapisy typ "$link|&&|1|&&|.
W jaki sposób i gdzie należy zmienić skrypt ?
Trochę się z tym męczę i nie mogę sobie poradzić, jeżeli możliwe, to proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
borec
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


niezly bajzel, zacznijmy od poczatku:

Cytat
[php:1:5a436fd32f]<?php

$element=$_SERVER["REQUEST_URI"];
$link_czlony=explode("=",$element);
$akcja=$link_czlony[0];
$link=$link_czlony[1];
[/php:1:5a436fd32f]


a nie prosciej by bylo

[php:1:5a436fd32f]<?php
$link = $_GET['akcja'];
?>
[/php:1:5a436fd32f]

:?: w koncu od tego jest ta tablica :wink:

a dalej proponowal bym tak:

[php:1:5a436fd32f]<?php

$plik = file("nabijaj.in");
$c = count($plik);
$nabijaj = FALSE;

for ($i = 0; $i < $c; $i++)
{
$wiersz = explode("|&&|", $plik[$i]);

if ($wiersz[0] == $link)
{
$update = $link . "|&&|" . ($wiersz[1]+1) . "|&&|n";
$file = file_get_contents("nabijaj.in");
$file = str_replace($plik[$i], $update, $file);
$fp = fopen("nabijaj.in", "w");
flock($fp, LOCK_EX);
fputs($fp, $file);
flock($fp, LOCK_UN);
fclose($fp);

$nabijaj = TRUE;
break;
}
}

if (!$nabijaj)
{
$fp = fopen("nabijaj.in", "a");
flock($fp, LOCK_EX);
fputs($fp, $link . "|&&|1|&&|n");
flock($fp, LOCK_UN);
fclose($fp);
}
?>[/php:1:5a436fd32f]

u mnie dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 01:40