Werbung beim ersten Seitenaufruf

  • Themenstarter Themenstarter crilla
  • Beginndatum Beginndatum
ok, warum mit session?

warum nicht mit einer user id? finde ich 1. viel einfacher. das ganze in die datenbank mit einbinden und fertig. prüft direkt bei seitenaufruf ob schon eingeblendet oder nicht. da muss kein cookie gesetzt werden, es muss keine session aufgebaut werden und wenn man irgendwann eine session brauch, kann ich die für wichtigere dinge verwenden als für so nen werbekram.
 
saila ganz einfach. Du musst noch eine query machen und es daten handeln, die von der Datenbank kommt. Das ist viel langsamer. Mit einer Session haste einfach die Variable da und brauchst nichts mehr zu ändern. 5 Zeilen Code wenns hoch kommt.

PHP:
<?php
session_start();

if(isset($_SESSION['bshow_ad'])) {
  $_SESSION['bshow_ad'] = true;
  showAd();
}
?>
 
falsch, das ist ein einmaliger aufwand und hat letztlich eine zeile pro datei. man nennt es funktion. aber es ist jedem selbst überlassen wie man was machen will, kann oder für richtig hält. eine session ist auf jeden fall nicht für solche zwecke gedacht und ehrlich gesagt ist sie so überflüssig für diesen zweck wie sonst was.

man kann es mit session, db oder mit einer datei händeln. im grunde wurscht wie. nur man sollte sich schon im klaren sein für was eine session ist, eine db und oder eine datei.

wenn du den zweifaktor ansprichst, was schneller ist, sprechen wir von millisekunden und nicht von sekunden und schon gar nicht von 10 und mehr sekunden wartezeit ;)

es war und ist nach wie vor ein vorschlag.
 
Wenn das ganze mit Sessions realisiert wird entsteht folgender Ablauf:
Ein beliebiger Nutzer ruft die Seite auf, die Session wird gestartet oder wieder aufgenommen und es wird in der Session-Variable nachgeschaut, ob die Werbung angezeigt werden muss oder nicht. Gegebenenfalls wird die Werbung angezeigt und die Session-Variable modifiziert. Beim Nutzer wird ein Cookie gesetzt, das die Session-ID enthält und die Session-Variablen werden durch PHP automatisch serialisiert und gespeichert.

Quasi: Session-Daten aus Datei lesen, Cookie lesen und ggf. setzen, Session-Daten speichern.

@saila: Und wie soll das nun mit Deiner "user_id" funktionieren?
Der Nutzer muss ja auch durch ein Cookie oder etwas anderes wieder identifiziert werden. Oder willst Du die, beim ersten Seitenaufruf generierte, user_id jedes mal via GET übergeben? Und welche Rolle spielt die Datenbank? Ich sehe da noch nicht so ganz durch.

snuu
 
Ich würd das auch mit Userid+DB machen.

Session ist doof...wenn sie bisher nicht auf allen Seiten vorhanden ist, müsste man das erst sicherstellen...das könnte enormer Aufwand werden, falls das Projekt schon vorangeschritten ist

Cookies sind doof...falls sie aus sind:-)

Das mit der Userid....man nehme einen hash aus Browserkennung und IP...dazu noch nen Timestamp

...ist der hash nicht in der DB..schreibt man ihn hinein und zeigt die Reklame
...ist er da, wird der Timestamp erneuert
...Datensätze mit veralteten Timestamps regelmässig rauswerfen

.....sicher...das ist natürlich ein Query mehr...aber mit Verlaub...hier gehts um Millisekunden...soviel Zeit sollte sein:-)
 
Bei dieser Methode musst Du den Funktionsaufruf, wie bei den Sessions auch auf jeder Seite einfügen. Das Argument unterschreibe ich daher nicht ;-)

Des Weiteren wird in vielen Projekten ohnehin mit Sessions gearbeitet, sodass die zusätzliche Überprüfung nicht ins Gewicht fällt.

Bei der user-id Methode quälst Du den Datenbankserver mit 2 zusätzlichen Abfragen.
 
Zuletzt bearbeitet:
Bei dieser Methode musst Du den Funktionsaufruf, wie bei den Sessions auch auf jeder Seite einfügen. Das Argument unterschreibe ich daher nicht
....das will ich nicht bestreiten....ich gehe aber mal frech davon aus, dass es irgendein Skript gibt, welches überall includet wird(bspw. mit der DB-Connection)....das wäre der ideale Platz, um mit wenig Aufwand die Sache einzubinden.

Ansonsten...auch kein Einwand:-) ...wenn sowieso überall eine Session vorhanden ist, wäre diese ungleich empfehlenswerter dafür....aber ob dies der Fall ist, kann man schliesslich nicht wissen.
 
Original geschrieben von fatalus
....das will ich nicht bestreiten....ich gehe aber mal frech davon aus, dass es irgendein Skript gibt, welches überall includet wird(bspw. mit der DB-Connection)....das wäre der ideale Platz, um mit wenig Aufwand die Sache einzubinden.

Und das soll man nicht auch bei Sessions machen können?

Original geschrieben von fatalus
das könnte enormer Aufwand werden, falls das Projekt schon vorangeschritten ist
Also nehmen wir mal an dieses Projekt ist "groß". Dann wird dieser Admin sicherlich ein Templatesystem benutzen. Also fakt ist, dass man bei einem Templatesystem nur eine Stelle hat, wo man die Erweiterung einbringt. Also nicht der große Schreibaufwand meiner Meinung nach.

Auf SQL-Funktionen würd ich verzichten, weil ein UPDATE zum Beispiel ziemlich viel Zeit in Anspruch nimmt. Nicht nur das. Es müssen sogar wichtige SQL-Query warten, bis diese Abfrage abgearbeitet ist. Also bei einem Projekt, wo viele Nutzer die Seite bssuchen würde ich es nicht empfehlen.

Bis jetzt kam noch kein passendes Argument. Warum soll ich denn ein paar Zeilen mehr schreiben, wenn es im Endeffekt langsamer ist. Ich schade mir doch selber, wenn ich die Variante mit der Datenbank benutze.

Nehmen wir mal an, der User loggt sich aus und in einer Stunde wieder ein. Dann bekommt er keine Werbung angezeigt, weil vielleicht der Zeitabschnitt, wo die Daten aus der db gelöscht werden, noch nicht erreicht ist. Bei Sessions, vorrausgesetzt sie sind ordentlich konfiguriert, passiert sowas nicht. Und man muss ja auch sein Brot verdienen und dadurch schadet ja Werbung nicht. Klar könnte jetzt jemand sagen, dass es nicht nutzerfreundlich ist. Aber mal ehrlich. Wem schadet ein kleiner Banner, wenn man auf die Seite kommt. Mit einem Klick ist er verschwunden.

Original geschrieben von saila
kann ich die für wichtigere dinge verwenden als für so nen werbekram.

Session-Variablen sind ja nicht begrenzt. und ob du nun ein Bit mehr speicherst oder weglässt ist ja nun wirklich nebensächlich (ok sagen wir mehrere bits wegen dem Variablennamen). Mann sollte schon versuchen alles kompakt zu machen. Aber so datenbankfixiert find ich auch nicht gut. Und wie gesagt. Es gibt ja immernoch [phpf]include[/phpf] :-)
 
Zuletzt bearbeitet:
:-)....Vielleicht, vielleicht, vielleicht...

Bevor wir uns ineinander verbeissen, warten wir vielleicht lieber ab, bis uns crilla erzählt, wie es bei seinem Projekt tatsächlich aussieht.

Vielleicht ist es ihm ja auch alles zuviel Aufwand, und er verzichtet ganz drauf:rolleyes:
 
Hey Leute,
erstmal danke für eure Tipps wie ich es löschen könnte ich habe mittlerweile jetzt auch schon was zusammen geproggt. Habe mich dabei jetzt für eine Datenbank entschieden. Kann sein das es mit den Session und Cookies evtl. einfacher und unkomplizierter ginge aber habe es damit versucht und nicht wirklich hinbekommen bei der Datenbank hingegen hat es funktioniert. Ich werde diese dann halt jeden Tag gegen 24:00 Uhr mit einem Cronjob leeren lassen.

Ich hab zwar auch ne Version mit Cookies geproggt gehabt aber dort waren öfters auch wenn Cookies bei mir selber aktiv waren sehr viele Aussetzer evtl. habe ich ja auch etwas im Code falsch gemacht :) aber egal mir recht die Datenbank Version.
 
Zurück