Ik heb dus een zeer uitgebreid bannerscirpt geschreven wat werkt met sessions. Dus als je op een banner klikt staat in een session variabele opgeslagen welke banner dat was en wordt de overeenkomstige url uit de database gehaald en geladen. er is echter 1 probleem. Als ik een pagina open met zo'n banner erop worden de banners wel geladen maar wordt de url na een klik niet uit de database gehaald. het werkt echter pas als ik de pagina een keer gefreshed heb, heeft dit iets met die sessions te maken? en zoja wat is er aan te doen?! (zo nee trouwens ook
)
Ja wat wil je hebben? het is een behoorlijk groot script natuurlijk...
<?php
session_start();
session_register("AD");
if(count($AD) == "0"){$AD[] = "";}
?>
daar begint het ongeveer mee bij mij...
verder zit er ook nog een toekenning van het bannerid aan een variabele in en die gaat ongeveer zo:
<?if($AD[$sid.$aid] != $idban){
$AD[$sid.$aid] = $idban;
}?>
waarbij die $idban het id van de banner is die geladen is (uit de db) en $sid en $aid het nummer ($aid) van de banner op side $sid is.
de redirect voor de url begint hiermee:
<?php
session_start();
session_register("AD");
$id = $AD[$sid.$aid];
?>
<?php
session_start();
session_register("AD");
if(count($AD) == "0"){$AD[] = "";}
?>
daar begint het ongeveer mee bij mij...
verder zit er ook nog een toekenning van het bannerid aan een variabele in en die gaat ongeveer zo:
<?if($AD[$sid.$aid] != $idban){
$AD[$sid.$aid] = $idban;
}?>
waarbij die $idban het id van de banner is die geladen is (uit de db) en $sid en $aid het nummer ($aid) van de banner op side $sid is.
de redirect voor de url begint hiermee:
<?php
session_start();
session_register("AD");
$id = $AD[$sid.$aid];
?>
Verwijderd
Sorry, maar ik kan hier niet echt wijs uit worden zo.. snap ook niet echt bijzonder goed wat je probleem eigenlijk is.. De url wordt dus niet direct als link onder de banner geladen?? maar pas na een refresh? Tja, dat kan aan van alles liggen... zo kan ik er iig weinig mee...
Een banner ziet er zo uit:
<a href="redir.php?sid=15&aid=0" target="_blank">
[img]"banner.php?sid=15&aid=0&x=468&y=60"[/img]
</a>
Uit banner.php komt een random banner, het probleem is dus dat het ID van die random banner ook op de 1 of andere manier in redir.php moet komen. Vandaar dat deze in een sessionvariabele moet worden opgeslagen. Dit werkt ook allemaal al, maar als je de pagina voor de eerste keer opent is er nog geen sessionvariabele gesetm dit gebeurt pas na een keer refreshen...
<a href="redir.php?sid=15&aid=0" target="_blank">
[img]"banner.php?sid=15&aid=0&x=468&y=60"[/img]
</a>
Uit banner.php komt een random banner, het probleem is dus dat het ID van die random banner ook op de 1 of andere manier in redir.php moet komen. Vandaar dat deze in een sessionvariabele moet worden opgeslagen. Dit werkt ook allemaal al, maar als je de pagina voor de eerste keer opent is er nog geen sessionvariabele gesetm dit gebeurt pas na een keer refreshen...
Verwijderd
Kan je het niet beter gewoon bij 1 file houden??? Deze doet een random in de database (eventueel) om een banner te kiezen en haalt dus direct de url van het plaatje en die van de site zelf eruit... Dan krijg je dus zoiets als dit...
<a href="banner.php?sid=15&aid=0">[img]"banner15.gif"></a[/img]
Dat is toch veel makkelijker dan wat jij nu aan het doen bent?? Je hebt hier naar mijn mening helemaal geen sessions en dergelijke nodig....
HTH
<a href="banner.php?sid=15&aid=0">[img]"banner15.gif"></a[/img]
Dat is toch veel makkelijker dan wat jij nu aan het doen bent?? Je hebt hier naar mijn mening helemaal geen sessions en dergelijke nodig....
HTH
Nee dat kan dus niet, dit systeem moet op meer dan 1000 sites worden geïmplementeerd waar ze met een systeem werken waar je alleen maar img src's en a href's kan gebruiken, je kan er dus vanuit gaan dat er geen php werkt of gebruikt kan worden op die servers... anders was het idd wel heeeel erg simpel ja
javascript mag ook niet, voor het geval dat het volgende was... en cookies ook niet omdat het dan third-party cookies zouden worden en die natuurlijk niet door iedere browser geslikt worden
Verwijderd
Je kan toch 1 server hebben waar het php script op draait? en dan een random pagina geneert voor de desbetreffende site? dan kan je toch wel de methode gebruiken die ik hierboven beschreef? Of ben ik nou heel dom?Op vrijdag 22 februari 2002 11:11 schreef zellufs het volgende:
Nee dat kan dus niet, dit systeem moet op meer dan 1000 sites worden geïmplementeerd waar ze met een systeem werken waar je alleen maar img src's en a href's kan gebruiken, je kan er dus vanuit gaan dat er geen php werkt of gebruikt kan worden op die servers... anders was het idd wel heeeel erg simpel jajavascript mag ook niet, voor het geval dat het volgende was... en cookies ook niet omdat het dan third-party cookies zouden worden en die natuurlijk niet door iedere browser geslikt worden
En hoe komt de code van jou manier (dus de echte url van het plaatje en de link) op de pagina waar de banner op staat?
Verwijderd
Als het script wordt aangeroepen dan kan je toch kijken vanaf welke site het wordt aangeroepen, als je dan zorgt dat je dan voor al die sites een template hebt dan kan je ervoor zorgen dat binnen die template de vars (url plaatje, site url) worden geparsed... het enige nadeel is dat je dan wel alles op 1 server gooit, weet niet of dat verstandig is met zoveel sites...Op vrijdag 22 februari 2002 11:21 schreef zellufs het volgende:
En hoe komt de code van jou manier (dus de echte url van het plaatje en de link) op de pagina waar de banner op staat?
maargoed.. weet niet precies hoe je het anders om kan lossen dit is mijn idee ervan..
heb er verder ook nog niet echt goed me gedachten over laten gaan
Nope, dat was dus net niet de bedoeling idd... het MOET met sessions en dat werkt dus bijna maar nog niet helemaal
we kijken gewoon nog even verder, toch bedankt!
Verwijderd
Anytime, always welcomeOp vrijdag 22 februari 2002 11:31 schreef zellufs het volgende:
Nope, dat was dus net niet de bedoeling idd... het MOET met sessions en dat werkt dus bijna maar nog niet helemaalwe kijken gewoon nog even verder, toch bedankt!
IMHO zou je toch beter een andere aanpak kunnen gebruiken. Tegenworodig zijn mensen behoorlijk wat strenger mbt cookies. Op dit moment wordt er een cookie gezet door het plaatje. Dit plaatje komt niet van dezelfde server als de site, en wordt dus ook minder snel geaccepteerd. Daarnaast zijn mensen sowieso niet echt happig op cookies van bannerboeren.
Je zegt dat je een beperking hebt mbt het plaatsen van de banner op sites van derden, maar heb je wel eens aan de javascript oplossing gedacht?
ipv je 'klanten' een plaatje + url op hun pagina te lanten zetten, laat je ze een extern javascriptje inladen. Met dit script doe je vervolgens een paar 'document.writes' die de uiteindelijke URL's van de link en het plaatje neerzetten. Dit javascript laat je genereren door php. Je kunt nu gewoon de sessie variabelen of wat dan ook gewoon meegeven als get parameters in de URL die door het javascript geprint wordt.
Dit werkt makkelijker voor jouw (aangezien je er nu niet uit komt
), voor de sites met banners (Hoeven maar 1 regeltje code in te voegen) en de algehele werking van je systeem (Je maakt geen gebruik van cookies)
Je zegt dat je een beperking hebt mbt het plaatsen van de banner op sites van derden, maar heb je wel eens aan de javascript oplossing gedacht?
ipv je 'klanten' een plaatje + url op hun pagina te lanten zetten, laat je ze een extern javascriptje inladen. Met dit script doe je vervolgens een paar 'document.writes' die de uiteindelijke URL's van de link en het plaatje neerzetten. Dit javascript laat je genereren door php. Je kunt nu gewoon de sessie variabelen of wat dan ook gewoon meegeven als get parameters in de URL die door het javascript geprint wordt.
Dit werkt makkelijker voor jouw (aangezien je er nu niet uit komt
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
Javascript was geen optieOp vrijdag 22 februari 2002 11:44 schreef Janoz het volgende:
Je zegt dat je een beperking hebt mbt het plaatsen van de banner op sites van derden, maar heb je wel eens aan de javascript oplossing gedacht?
Bij het zoeken naar het stukje waar de topicstarter zei dat geen Javascript gebruikt mocht worden kwam ik dit tegen...Op vrijdag 22 februari 2002 11:11 schreef zellufs het volgende:
...... en cookies ook niet omdat het dan third-party cookies zouden worden en die natuurlijk niet door iedere browser geslikt worden
Wist je dat sessions OOK met cookies werken? (tenzij je de sessionID met de URL mee geeft, maar dat is hier niet het geval)
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
klopt maar wel met server-side cookies, weet niet of dat nog uit maakt voor het script? of dat wel is toegestaan dus....Op vrijdag 22 februari 2002 12:11 schreef Janoz het volgende:
Wist je dat sessions OOK met cookies werken? (tenzij je de sessionID met de URL mee geeft, maar dat is hier niet het geval)
Uhm vergeet niet dat het sessie_id ook nog ergens moet blijven (juist in een cookie bij de klant). Kan er geen cookie geset worden, dan gaat het sessie ID mee via de POST of GETOp vrijdag 22 februari 2002 12:14 schreef DiStance het volgende:
[..]
klopt maar wel met server-side cookies, weet niet of dat nog uit maakt voor het script? of dat wel is toegestaan dus....
Verwijderd
klopt en dat laatste mocht geloof ik wel (van de topicstarter) Cookie client-side waren geen optie...Op vrijdag 22 februari 2002 12:25 schreef Glimi_ie het volgende:
Uhm vergeet niet dat het sessie_id ook nog ergens moet blijven (juist in een cookie bij de klant). Kan er geen cookie geset worden, dan gaat het sessie ID mee via de POST of GET
Verwijderd
Misschien vind je hier nog wat tussen dat je kan gebruiken 
http://www.hotscripts.com/search/?query=banner&category=PHP
http://www.hotscripts.com/search/?query=banner&category=PHP
Maar ja.... Het probleem daar is dat ie niks in de aanroep source mag veranderen, dus in de URL ook geen get-parameters toevoegen.Op vrijdag 22 februari 2002 12:29 schreef DiStance het volgende:
[..]
klopt en dat laatste mocht geloof ik wel (van de topicstarter) Cookie client-side waren geen optie...
Waarschijnlijk is dit probleem onmogelijk op te lossen door de randvoorwaarden.. het enige dat ik nog kan bedenken is het uniek identificeren van clients mbv IP+browser enz enz...
Met Sessions gaat het NIET lukken.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
Ben inderdaad bang van nietOp vrijdag 22 februari 2002 12:39 schreef Janoz het volgende:
Maar ja.... Het probleem daar is dat ie niks in de aanroep source mag veranderen, dus in de URL ook geen get-parameters toevoegen.
Waarschijnlijk is dit probleem onmogelijk op te lossen door de randvoorwaarden.. het enige dat ik nog kan bedenken is het uniek identificeren van clients mbv IP+browser enz enz...
Met Sessions gaat het NIET lukken.
Waarom WERKT het dan al met sessions? afgezien van die ENE keer refreshen?! Op deze site staan 2 banners die via mijn script worden aangeroepen, als je er de eerste keer op klikt werkt het niet (dan is er geen url en kom je dus in de map terecht waar het script staat) en na een refresh van die site werken de banners wel, rara hoe kan dat?
En oja, het kan natuurlijk ook nog door alles iedere keer tijdelijk in de database (MySQL) te proppen, maar ik denk niet dat die databasesever dat leuk gaat vinden, aangezien hetzelfde script op meer dan 1000 sites aangeroepen woprdt door heeeeeel veel gebruikers...
En oja, het kan natuurlijk ook nog door alles iedere keer tijdelijk in de database (MySQL) te proppen, maar ik denk niet dat die databasesever dat leuk gaat vinden, aangezien hetzelfde script op meer dan 1000 sites aangeroepen woprdt door heeeeeel veel gebruikers...
Het WERKT mischien wel, maar het voldoet niet aan je eisen.. Als je goed kijkt zie je dat er WEL een cookie wordt gezet terwijl dit NIET de bedoeling zou zijn...Op vrijdag 22 februari 2002 12:53 schreef zellufs het volgende:
Waarom WERKT het dan al met sessions? afgezien van die ENE keer refreshen?! ...........
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Er mag dus wel een cookie worden ge-set, maar met een normale setcookie werkt dit niet omdat het dan een third-party cookie is. Dan werkt het script alleen als de pagina die de banners aanroept op dezelfde server staat, en DAT is dus het probleem.
Verwijderd
beetje raar verschijnsel misschien, maar de kleine rechterbanner deed het wel in 1 keer, dus zonder refresh..????
met de linker grote kwam ik inderdaad in de map terrecht.. je moet die map trouwens ff afschermen ofzo....
met de linker grote kwam ik inderdaad in de map terrecht.. je moet die map trouwens ff afschermen ofzo....
Ja achja... Heb je eerst de grote geklikt? want dan zou dat ook nog eens iets kunnen zijn, dattie gewoon eerst 1 klik nodig heeft (om misschien de session in redir.php te initialsieren ofzow)...
Die map afschermen? achja, je kan er nu ook weinig mee natuurlijk...
Die map afschermen? achja, je kan er nu ook weinig mee natuurlijk...
Verwijderd
Ik had inderdaad eerst de grote geklikt en toen deed die kleine het daarna idd.. wat betreft het afschermen.. tja tis maar wat je wilt natuurlijkOp vrijdag 22 februari 2002 13:06 schreef zellufs het volgende:
Ja achja... Heb je eerst de grote geklikt? want dan zou dat ook nog eens iets kunnen zijn, dattie gewoon eerst 1 klik nodig heeft (om misschien de session in redir.php te initialsieren ofzow)...
Die map afschermen? achja, je kan er nu ook weinig mee natuurlijk...
Toch snap ik niet waarom je niet bijvoorbeeld bij de link van de redir.php het volgende doet
http://www.fjf.be/ads/redir.php?sid=24&aid=0&url=www.url.nl
zoiets.. ff zorgen natuurlijk dat er niks fout gaat met eventuele slashes en dergelijke... kijk dan heb je namelijk wel gelijk de url en dan is het toch mogelijk hem in 1 keer te redirecten?
Maar hoe wil je dan dat die URL van een random banner in een a href op een htmlpagina komt? als ik bijvoorbeeld
<a href=http://site.com><random img></a>
doe dan slaat dan toch nergens meer op, of zit ik nou helemaal verkeerd te denken...
<a href=http://site.com><random img></a>
doe dan slaat dan toch nergens meer op, of zit ik nou helemaal verkeerd te denken...
Verwijderd
Waarom moet het perse zo? Je kan toch juist een hele simpele functie in de redir.php maken waarin je hetvolgende doet...
Dan is toch alles klaar? Dan wordt je door gestuurd naar de goede page in 1 keer, geen cookie of niks nodig, het enige is dat ie ff terug wordt gestuurd naar de redir.php op jou server om hem vervolgens naar de goede page door te sturen via de header() functie...?
Waarom kan mijn verhaal hierboven dan niet???
PHP:
1
2
3
4
5
| <? function go_to_page($url) { header("location: $url"); } ?> |
Dan is toch alles klaar? Dan wordt je door gestuurd naar de goede page in 1 keer, geen cookie of niks nodig, het enige is dat ie ff terug wordt gestuurd naar de redir.php op jou server om hem vervolgens naar de goede page door te sturen via de header() functie...?
Waarom kan mijn verhaal hierboven dan niet???
Je kunt je bannerplaatje ook een cookie laten zetten hoor, Dan is het geen 3rd party meerOp vrijdag 22 februari 2002 13:01 schreef zellufs het volgende:
Er mag dus wel een cookie worden ge-set, maar met een normale setcookie werkt dit niet omdat het dan een third-party cookie is. Dan werkt het script alleen als de pagina die de banners aanroept op dezelfde server staat, en DAT is dus het probleem.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
De random banner wordt toch uit een database getrokken??? daar hoort dan toch een url bij??? dat is dan toch geen statische url???? ja het is een statische url maar wel voor die banner???Op vrijdag 22 februari 2002 13:20 schreef zellufs het volgende:
Ik kan toch geen statische URL meegeven als ik een random banner heb!
Dat bannerplaatje wordt toch via een andere server aangeroepen? banner.php spuugt gewoon een random banner uit, waarvan de ID even ergens bewaard moet worden zodat bij een klik erop de goede URL gevolgd wordt. Maar zowel banner.php als redir.php staan op een andere server als de server waarvandaan de banner wordt aangeroepen, en met cookies heb ik het geprobeerd maar dat werkt dus alleen op dezelfde server als diegene waar de scripts staan... 
Ennuh, die url kan ik dus niet aan redir.php meegeven aangezien (zie ergens bovenstaande code) exact dezelfde code wordt gebruikt voor alle banners die op een bepaalde site mogen verschijnen.
Ennuh, die url kan ik dus niet aan redir.php meegeven aangezien (zie ergens bovenstaande code) exact dezelfde code wordt gebruikt voor alle banners die op een bepaalde site mogen verschijnen.
Verwijderd
hmmz... I give up... 
Aan de ene kant zit ik te denken dat het zo moeilijk toch niet kan zijn om dit voor mekaar te krijgen, maar ik kan me gewoon ff niet bedenken wat hier de oplossing is..
Waar haal je de desbetreffende url van de site dan bijvoorbeeld vandaan?
dus banner.php en redir.php staan op een server met database? hoe ziet het er dan allemaal uit? dan heb ik een wat duidelijker beeld nog.. misschien had je dat al eerder neer gezet, maar zet het ff duidelijk voor me neer..
dan kan ik misschien nog wat bedenken
tot nu toe kom ik er zo ook niet uit...
Aan de ene kant zit ik te denken dat het zo moeilijk toch niet kan zijn om dit voor mekaar te krijgen, maar ik kan me gewoon ff niet bedenken wat hier de oplossing is..
Waar haal je de desbetreffende url van de site dan bijvoorbeeld vandaan?
dus banner.php en redir.php staan op een server met database? hoe ziet het er dan allemaal uit? dan heb ik een wat duidelijker beeld nog.. misschien had je dat al eerder neer gezet, maar zet het ff duidelijk voor me neer..
dan kan ik misschien nog wat bedenken
Okee, nog 1 keer om even alles duidelijk te maken het hele verhaal...
Op server x wordt een banner aangeroepen via deze code:
<a href="http://www.fjf.be/ads/redir.php?sid=24&aid=0" target="_blank">[img]"http://www.fjf.be/ads/ad.php?sid=24&x=468&y=60&aid=0"[/img]</a>
In ad.php wordt een randombanner uit een MySQL database gehaald (eerst worden er allerlei selecties enzo gemaakt omdat er met percentages etc wordt gewerkt, die zal ik even weglaten).
In redir.php gebeurt dan ongeveer dit:
Dat is het wel zo'n beetje...
Op server x wordt een banner aangeroepen via deze code:
<a href="http://www.fjf.be/ads/redir.php?sid=24&aid=0" target="_blank">[img]"http://www.fjf.be/ads/ad.php?sid=24&x=468&y=60&aid=0"[/img]</a>
In ad.php wordt een randombanner uit een MySQL database gehaald (eerst worden er allerlei selecties enzo gemaakt omdat er met percentages etc wordt gewerkt, die zal ik even weglaten).
PHP:
1
2
3
4
5
6
7
8
| <? session_start(); session_register("AD"); //hier is natuurlijk heeeeel erg veel weggelaten, //maar er is via allerlei omwegen een randombanner uit de database gehaald. $AD[$sid.$aid] = $adobject->id; readfile($adobject->img); ?> |
In redir.php gebeurt dan ongeveer dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <? session_start(); session_register("AD"); $id = $AD[$sid.$aid]; //hier worden de stats geupdate etc... nix boeiends $adquery = mysql_query("SELECT * FROM adstats WHERE id = '$id'"); $adobject = mysql_fetch_object($adquery); $so = mysql_fetch_object(mysql_query("SELECT site_name FROM sites WHERE site_id = '$sid'")); if(ereg("(.*)(resultonline)(.*)",$adobject->url)){ $url = $adobject->url . $so->site_name; }else{ $url = $adobject->url; } header("Location: $url"); ?> |
Dat is het wel zo'n beetje...
Leuk verhaalOp vrijdag 22 februari 2002 13:33 schreef zellufs het volgende:
Okee, nog 1 keer om even alles duidelijk te maken het hele verhaal...
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Verwijderd
Ik zat ookal vol verwachting te wachten op meerOp vrijdag 22 februari 2002 13:37 schreef Janoz het volgende:
[..]
Leuk verhaal
rustig aan hè... was alleen om even aan te geven dat het er aan zat te komen 
Als jullie er even naar zouden willen kijken... ben er vanavond weer
Als jullie er even naar zouden willen kijken... ben er vanavond weer
Verwijderd
vol verwachting klopt ons hart....Op vrijdag 22 februari 2002 13:45 schreef zellufs het volgende:
rustig aan hè... was alleen om even aan te geven dat het er aan zat te komen
Verwijderd
Ik kon er niet wijzer uit worden, sorry, heb me best gedaan.. maar ik heb het gevoel nog steeds dat het moet kunnen zoals ik al eerder zei.. zal wel niet goed genoeg snappen hoe het probleem in elkaar steekt dan, maarja 
Ik hoop dat iemand anders na deze "kick" nog een idee heeft..
Ik hoop dat iemand anders na deze "kick" nog een idee heeft..
Hoppa, ben ik weer! heb alweer iets zelf uitgevonden, dat het op deze manier met sessions niet lukt aangezien mijn sessioncookies geblockt worden... betere opties?
Pagina: 1