Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1050
Jeg har da et ønske om å lage en kode som gjør at hver ip adresse blir lagret i en liste (for øyeblikket) og at koden skal kunne så se i listen og telle hvor mange ganger ip adressen har vært innom fra før av. Først del av koden er tatt fra en tutorial, men den funket og selv om noe er overflødig så er det ingen grunn til å ta det vekk. Sånn hvis noen lurte :P
<?php
$filename = 'file.php';
$somecontent = $_SERVER['REMOTE_ADDR'];




if (is_writable($filename))
{
if (!$handle = fopen($filename, 'a'))
{
echo "Cannot open file ($filename)";
exit;
}

if (fwrite($handle, "\n $"."kake[]="." '$somecontent';") === FALSE)
{
echo "Cannot write to file ($filename)";
exit;
}

echo "Success, wrote ($somecontent) to file ($filename)";
fclose($handle);

}

else
{
echo "The file $filename is not writable";
}


include ("http://www.stud.hio.no/~s171634/nabzor/file.php");

$antall=0;


for($i=0; $i<=count($kake); $i++)
{
if ($kake[$i] == $somecontent)
{
$antall++;
}
}

echo "<br/> Du har besøkt siden $antall ganger, så da vet du det gitt.";

?>

Så langt har jeg kommer. Jeg er nå ganske sikker på at dette ikke er letteste måten å gjøre noe slikt på, men jeg har da minimal kunnskap i php og prøver å gjøre det beste ut av det jeg kan. Problemet er at det som skrives i file.php kommer jo ut som html, og hvis jeg skal legge til php start og slutt-tag inne i documentet så blir det feil hver gang jeg legger til en ip adresse. Copy paster jeg derimot det som havner i file.php inn i siden som kjører php skriptet så fungerer det helt fint.

Hvis noen lurer så er det dette som står i file.txt etter et par besøk :
$kake = array();

$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx;
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
$kake[]= '84.215.244.xxx';
hvorfor bruker du ikke $_COOKIE ? det vil jo gi ett bedre resultat enn og basere seg på ip.
Folk får jo ny ip til tider og utider med mindre de har fast ip eller noe sånt smart...

http://www.w3schools.com/PHP/php_cookies.asp - kan du lese om den

og da vil du bare kunne kjøre en:

$_COOKIE['antall']++;

for og øke antall ganger de har besøkt deg, om nå kake variablen heter "antall"
Sist endret av djchain; 30. september 2010 kl. 04:15.
Trådstarter
6 0
Vell, som sakt så har jeg bare brukt det jeg kan. Har grunnelegende programmering som fag men vi har ikke kommet til cookies enda. Leste litt på linken men vet ikke helt hvordan det skal gjøres, har du noen forslag? Det så adskillig mye lettere ut det må jeg være enig i, men jeg vet ikke helt hva som skal til her.
Denne øverst på siden, over all annen php kode.
<?
if (isset($_COOKIE["antall_besok"])) {
$tmp_besok = $_COOKIE["antall_besok"] + 1;
setcookie("antall_besok", $tmpbesok);
}
else {
setcookie("antall_besok", 0);
}
?>


Så kan du bare bruke variablen $_COOKIE['antall_besok'] og den vil returnere ett tall som tilsvarer antall besøk de har gjort.

Du kan også snuse på expire, står mer beskrevet om det på linken jeg gav, og dermed utvide når kaka utløper hver gang de besøker siden din igjen

Data vil ikke bli husket for alltid, men tror du kan huske data i opptil 1 år eller noe sånt uten og si det for sikkert, dette blir bare tatt ut ifra hukommelsen min, og det er par år siden jeg dreiv med dette nå :P
Trådstarter
6 0
Herlig, du er en engel. Har bare et lite problem, verdien til antall_besok vil ikke stige, den hopper mellom ingenting og 0 når jeg echoer det ut via:
echo "Du har besøkt siden " .$_COOKIE["antall_besok"]. " ganger.";
Skifter jeg ut:
$tmp_besok = $_COOKIE["antall_besok"] +1;
med
$tmp_besok = $_COOKIE["antall_besok"] ++;
hopper den mellom ingenting og 1. Ser jo at det i prinsippet skal fungere, og jeg forstår hvordan det fungerer nå. Men tror det er for lite søvn som gjør meg uegnet til å se feilen her :P
Denne øverst på siden, over all annen php kode.
<?
if (isset($_COOKIE["antall_besok"])) {
$_COOKIE["antall_besok"]++;
}
else {
setcookie("antall_besok", 0);
}
?>


Prøv den, som sagt er litt rusten, mulig du kan endre variablen til kaken direkte når den alt er satt ser du...
Sikkerhetsklarert
Sitat av djchain Vis innlegg
Denne øverst på siden, over all annen php kode.
<?
if (isset($_COOKIE["antall_besok"])) {
$tmp_besok = $_COOKIE["antall_besok"] + 1;
setcookie("antall_besok", $tmpbesok);
}
else {
setcookie("antall_besok", 0);
}
?>
Vis hele sitatet...
Skrivefeil, du bruker tmp_besok og tmpbesok

Tenker det løser det.
Sitat av Pjukern Vis innlegg
Skrivefeil, du bruker tmp_besok og tmpbesok

Tenker det løser det.
Vis hele sitatet...
ah! jeg leste faktisk ikke igjennom min egen kode engang må jeg ærlig innrømme får skylde på att klokken var godt over 4 på natten fordi om det var en slurvefeil fra min side
Trådstarter
6 0
Takker dere begge, det fungerer nå. La faktisk merke til den feilen jeg også i dag tidlig og fikk fikset det. Men vi får skylde på søvnmangel begge to tror jeg, burde jo ha sett det tidligere
Hva skjer hvis brukeren har slått av cookies da?

Ville vel heller brukt en database og sjekket der. Kan jo kombinere database + cookies?

btw; hvis det er til en seriøs side kan du vel bare bruke Google Anal.. Google Analysten.. Google Analyized :3 eller hvordan man nå staver det >_>
Sist endret av hayer; 1. oktober 2010 kl. 18:33.
problemet her er att d er faktisk større sjangs for att brukeren har kakene aktivert enn att brukeren vil ha samme ip hver gang han besøker deg fra sin egen pc... er ikke mangen med fast ip