Vraag & Antwoord

Webprogrammeren & scripting

Reffer probleempje php

7 antwoorden
  • Hallo, Waarom werkt deze reffer script niet zo dat ik kan zien welke site mij gelinkt heb. [code:1:a19b2f1b60] $referer = $_SERVER["HTTP_REFERER"]; $query8547 = mysql_query("SELECT url FROM nfsu_referer WHERE url='$referer'") or die(mysql_error()); while($row = mysql_fetch_array($query8547)) { $uri = $row[url]; if($referer == $uri) { mysql_query ("UPDATE nfsu_referer SET counter = counter +1 WHERE url = '$referer'") or die (mysql_error()); }else{ mysql_query("INSERT INTO nfsu_referer (rid,url,counter) VALUES ('$user_id','$referer','1')") or die (mysql_error()); } [/code:1:a19b2f1b60] Bedankt
  • Het probleem is.... ? :-? - Bas
  • Nou ik denk dat het probleem is dat voor een referer die niet bestaat de query geen results teruggeeft en er dus ook nooit een insert kan plaatsvinden in de db omdat de insert binnen de while-lus staat. Overigens is de while lus imho sowieso een beetje krom gekozen aangezien je altijd maar 1 of 0 resultaten verwacht. Ik zou gewoon de rowcount opvragen (of een [i:077075d58e]select count(*)[/i:077075d58e]) en afhankelijk daarvan een update of een insert doen. Een nog kortere methode zou zijn om gewoon meteen een update te doen en indien er geen rows aangepast zijn (dat kan je afaik opvragen) een insert te doen, dat scheelt je weer een query.
  • Het probleem is: hij slaat alleen alles op van van z`n eigen url is komen ze via een andere site dan doet dat ruk ding niets
  • [quote:640520a0c0="old"]komen ze via een andere site dan doet dat ruk ding niets[/quote:640520a0c0] En mag ik vragen wat je zelf al hebt onderzocht? Wat staat er bijvoorbeeld in de referer? Wat staat er in de database (zie mijn vorige antwoord)?
  • ik heb hem iets aangepast [code:1:1a3a2ccc81] $result = mysql_query("SELECT url FROM nfsu_referer WHERE url='$referer'"); $referer = $_SERVER["HTTP_REFERER"]; $uri201 = $row[url]; $uri = @mysql_result($result, "url"); if ($referer == $uri201){ mysql_query ("UPDATE nfsu_referer SET counter = counter +1 WHERE url ='$referer'") or die (mysql_error()); }else{ mysql_query("insert into nfsu_referer values( '','$referer','1')")or die (mysql_error()); }[/code:1:1a3a2ccc81] en pak nog steeds alleen mijn site url andere niet
  • Je doet eerst een query (.... where url='$referer') en zet daarna pas een waarde in die $referer. Taalgebruik mag overigens wat netter.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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