Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

(PHP) teller doet het niet, waarom??

pc_freak17
2 antwoorden
  • Hoi,
    Ik ben bezig in php een eigen teller te bouwen, omdat ik die dan op verschillende delen van mijn site kan zetten, maar nu wil het ff niet lukken. Dit is de code die ik gebruik, die $control gebruik ik dan om te bepalen of de waarde van de teller opgehoogd moet worden of dat die gebruiker die dag al op mijn site geweest is:
    [code:1:e937020714]<?php
    $control= 0 ;
    $ip = getenv ("REMOTE_ADDR"); // get the ip number of the user
    $check = fopen ("check.dat", "r");
    while (!feof ($check)) {
    $ipcheck = fgets($check);
    if ($ip ==$ipcheck)
    {
    $control = 1;
    }
    echo ("{$ipcheck}<br>");
    }
    fclose ($check);
    echo ("{$ip}<br>");
    echo $control;
    ?>[/code:1:e937020714]
    Hier zit het deel van de teller zelf nog niet bij, maar dat is al gelukt alleen dit lukt niet zo goed, want op het punt waar ik uit het bestand dat ik al heb de ip's ga inlezen dan herkent de code het einde van een regel niet, weet iemand hoe dit komt ik heb in het .dat bestandje gewoon netjes alle ip's onder elkaar staan (zelf verzonnen om de code te testen)
  • fgets() retourneerd de ingelezen regel _inclusief_ de carriage return.
    De regel trimmen is hiervoor een oplossing.
    [code:1:d2ef2c388e]$ipcheck = trim(fgets($check));[/code:1:d2ef2c388e]
    Het laatste teken ervan afhalen kan problemen opleveren op de laatste regel, deze heeft namelijk geen <enter> er meer achter staan.

    Nog even wat info over die <enter>
    Deze wordt in een tekstbestand opgeslagen in 2 tekens.
    Te weten <CR> en <LF> = Carriage return en Line Feed. Afgeleid van de 'ouderwetse' typemachine: Zet de letterslede terug naar het begin van de regel en voer een nieuwe regel.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.