Beiträge von SinnlosS

    Hast du irgendetwas geändert? Jetzt wird mir für jede aufgerufene Seite ein Cookie gesetzt, vorhin war es wie erwähnt nur einer für die Session.

    Und dass der normale Counter um 1 steigt beim F5 ist ja klar, der wird ja auch ohne Prüfung ob der Cookie existiert schon erhöht. Die Prüfung greift ja nur beim erhöhen des $countday.

    Edit:
    Ergänzung: $countall zählt bei dir aktuell komplett alle Seitenaufrufe, egal von welchem Benutzer und wie oft er F5 drückt, $countday zählt von jedem Besucher der deine Cookies akzeptiert pro Seite einen Aufruf.

    [Blödsinn, siehe edit]Da du $_GET['page'] in deinem Code verwendest und die URLs der Seiten auf PHP-Dateien leiten gehe ich wohl Recht in der Annahme, dass ihr Mod_Rewrite verwendet um alles nach http://throneofgames.org/ in $_GET['page'] zu schreiben.
    Und jetzt achte mal auf den Unterschied zwischen http://throneofgames.org/ und http://throneofgames.org/index.php
    Ein Besucher der die Seite aufruft wird das index.php nicht miteingeben, also ist da $_GET['page'] leer. Der Startseite-Link verweist aber auf index.php, da steht dann also "index.php" in $_GET['page']. Also ein neuer Eintrag.

    Einfach vor dem Setzen von $cname prüfen ob $page leer ist, und falls ja index.php reinschreiben.[/Blödsinn]

    Im übrigen würde ich für Besucherstatistiken einfach Google Analytics verwenden. Da erfährst du deutlich mehr über das Besucherverhalten, von wo sie auf deine Seite kommen, über welche Suchbegriffe du gefunden wurdest, etc. Da braucht man sich nicht selber mit rumschlagen.

    Edit: Sorry, hatte mich vertan, dass Counter-Script wird ja über die script-src eingebunden. Das es beim normalen Refresh nicht hochzählt liegt vermutlich am Cache. Das es ansonsten immer wieder zählt liegt daran, dass du über so eine Einbindung keine Cookies setzen kannst. Das muss direkt auf der Seite die der Besucher aufruft selber geschehen. Schau mal in deinem Browser nach, bei mir ist ein einziger Cookie von throneofgames.org gesetzt, und das ist PHPSESSID, also der für die Session. Deine Cookies werden über das eingebundene Skript nicht gesetzt.

    Es geht gewiss nicht um Werbung. :D

    Ich mache gerade ein Praktikum und soll für die Firma die Webseite etwas umbauen. Der Abteilungsleiter möchte das sich die Stellenanzeigen in einem neuem kleinem Fenster öffnen. Quasi direkt als Druckansicht. Ausserdem soll es eine Auswahlmöglichkeit geben, d.h. man kann bei verschiedenen Stellen ein Häkchen setzten und dann auf öffnen klicken und alle ausgewählten Stellen öffnen sich in einem neuem Fenster. Als Vorbild hat er sich die Seite genommen:


    http://karriere.thyssenkrupp.com/de/karriere/st…013f447f7b35ac5

    also es geht wirklich um Werbung oder ähnliches.


    Na gut. Dann schau dir mal die Dokumentation zu window.open an:
    http://de.selfhtml.org/javascript/objekte/window.htm#open

    Aber auch für sowas braucht man kein neues fenster, das kann man auch schicker machen, mit sowas z.B.:
    http://twitter.github.com/bootstrap/javascript.html#modals (Button "Launch Demo Modal")

    Es gibt auch dritte und vierte und fünfte Vornamen. Das kann keine Klasse oder Funktion in der Form realisieren. Theoretisch könntest du Listen mit Vor- und Nachnamen anlegen und die Bestandteile abgleichen. Da dürfte aber zum einen die Erstellung der Listen schon eine Sisyphus-Arbeit sein, zum anderen gibt es auch Namen die sowohl Vor- als auch Nachname sein können, also wäre nichtmal damit alles eindeutig abgedeckt.
    Wenn es um Nutzer eines Systems geht solltest du einfach zwei Felder verwenden, Vor- und Nachname, und diese auch getrennt abspeichern, damit wäre das dann am simpelsten geklärt.
    Falls es nicht um Namen aus dem System geht könntest du höchstens einen Kompromiss eingehen indem du sagst, der erste Name wird ausgeschrieben, alle Folgenden auf den Anfangsbuchstaben gekürzt. Dafür kommst du dann auch mit explode und substr aus.

    Das target-Attribut wurde mit gutem Grund mit strict aus der XHTML-Spezifikation entfernt. Der User weiss in der Regel besser als du, wie er einen Link öffnen will, also in einem neuen Tab, Fenster oder im aktuellen Fenster

    Soll heissen: Ausser du hast einen wirklich guten Grund, deinen Link in einem neuen Fenster zu öffnen, lass die Finger davon.

    Gruss,
    -Lukas

    Das target-Attribut wurde aus HTML 4 Strict und XHTML 1 Strict entfernt, weil diese keine Frames erlauben.
    In HTML5 ist es aber wieder drin, und das halte ich auch für sehr sinnvoll. Für mich ist es ein dicker Minuspunkt wenn eine Seite externe Links nicht in einem neuen Tab öffnet.

    Einen vernünftigen Grund für das Öffnen eines komplett neuen Fensters kenne ich aber nicht. Solange der TE da keinen liefert gehe ich davon aus, dass es um nervige Werbung oder ähnlichen Blödsinn geht, da werde ich nicht bei helfen.

    Also @TE, bitte erstmal erklären warum es unbedingt ein neues Fenster sein muss, vorher wird - zumindest von meiner Seite - keine Hilfe kommen.

    Der JQuery-Code zu #b6 ist so garantiert nicht richtig, der macht definitiv nicht das, was du oben als dein Wunschverhalten beschrieben hast.

    Ich habe gerade meinen gnädigen, daher gebe ich dir grad mal die paar Zeilen Code die du möchtest. Erwarte das aber nicht nochmal ohne sichtbare Eigenarbeit und Auseinandersetzung mit der Doku (und komm mir nicht wieder damit du hättest die gelesen, deine Posts zeigen das Gegenteil):

    Code
    $(function(){
      $(".klickbar").click(function(){
        $(this).next(".verborgen").toggle(100);
      });
    });

    Dein überflüssiges <br> hinter deinen <b>-Tags muss dafür entfernt werden. Im übrigen ist <b> da auch kein sinnvolles Tag, wieso keine Überschrift, oder einfach ein div-Tag?

    ich versuche mit Hilfe von jQuery einen Text einzublenden, wenn ich auf eine Überschrift bei mir die <b> Elemente zu klicken beim erneuten Klicken auf die Überschrift, soll der Text wieder ausgeblendet werden.

    Ich sehe nirgends in deinem JQuery-Code das du click-Events auf .klickbar abfängst.
    Und wenn du wissen willst was toggle macht, wieso schaust du nicht in die Doku, wieso erwartest du, dass dir das hier jemand abtippt?
    Hier findest du alles was du brauchst für dein Vorhaben:
    http://api.jquery.com/click/
    http://api.jquery.com/next/
    http://api.jquery.com/toggle/

    Wenn du einen URL bei require_once angibst, dann wird die Datei auf dem Zielserver ausgeführt, nicht innerhalb deiner Applikation. Daher ist dann auch in deinem Skript die Facebook-Klasse nicht vorhanden.
    Du musst die Datei mit der Facebook-Klasse schon über eine absolute oder relative Pfadangabe auf deinem Server einbinden.

    http://www.php.net/manual/de/function.include.php

    Zitat

    Wenn "fopen-URL-Wrapper" aktiviert sind (was sie in der Standard-Konfiguration sind), kann die einzubindende Datei mit einem URL (über HTTP oder ein anderes unterstütztes Protokoll - siehe Unterstützte Protokolle and Wrappers für eine Liste unterstützter Protokolle) anstall eines lokalen Pfades eingebunden werden. Wenn der Zielserver die Zieldatei als PHP-Code interpretiert, können Variablen an die einzubindende Datei mithilfe von HTTP-GET-Query-Strings übergeben werden, obwohl dies nicht das selbe ist, wie wenn man die Datei einbindet und sie den Variablenbereich übernimmt; das Skript läuft weiterhin auf dem entfernten Server und das Ergebnis wird in das lokale Skript eingebunden.

    Erstmal vorweg, ich nehme an du sprichst von einer Seitenreiter-App für eine Facebook-Page. Bei Canvas-Apps oder Website-Applikationen kannst du nicht überprüfen oder der Besucher etwas geliked hat.

    Für eine Seitenreiter-App ist das ganze sehr simpel:

    Pfadangabe zur Facebook-Klasse und deine AppID + AppSecret müssen angepasst werden.

    Kleiner Hinweis:
    Wenn in dem Seitenreiter eine eigene Navigation enthalten ist, der Besucher also innerhalb des iframes navigieren kann, dann musst du den signedRequest in die Session schreiben oder immer wieder per GET oder POST übergeben, da von Facebook nur beim ersten Laden des iframes ein sigendRequest gesendet wird, nicht mehr beim navigieren innerhalb des iframes (ist ja auch logisch).

    Habe ich, und damit hätte ich deine Frage korrekt beantwortet.

    Speichere zu jedem Kauf einen Zufallsstring und schicke dann dem Kunden den Link per Mail. Wenn der Kunde dann den Link anklickt, guckst du in der Datenbank nach, ob der angehängte String vorhanden ist und wenn ja, startest du den Download.

    Kleine Ergänzung (dass Bandit das so gemeint hat ist mir klar), der Kunde erhält dann keinen direkten Link zu der Datei, sondern zu einem PHP-Skript welches erst prüft ob der Downloadlink gültig ist, und falls ja die Datei in so einer Form ausliefert:

    PHP
    header('Content-type: application/x-rar-compressed');
    header('Content-Disposition: attachment; filename="Effendi_Eins_-_Egos.rar"');
    readfile('data/Effendi_Eins_Egos.rar');

    Beispiel ist von http://effendi.sinnloss.de (Schleichwerbung für nen Kollegen, da gehts aber nur um nen Downloadcounter :D). Der direkte Zugriff auf die Datei über http://effendi.sinnloss.de/data/Effendi_Eins_Egos.rar ist per .htaccess untersagt und leitet auf die Startseite.

    Eher ein kleines Snippet, dass ich für ein aktuelles Projekt geschrieben habe, ich finde es aber ganz praktisch.

    Es ermöglicht für ein HTML-Element mit fester Höhe und overflow:hidden; durch den enthaltenen Content zu scrollen.

    Hier eine simple kleine Demo:
    http://coding-keller.de/scrollable-div/demo.html

    Code für die Demo:

    Erläuterung
    Ich habe um den scrollbaren Content ein div-Element mit fester Höhe und den overflow auf hidden gesetzt. Darin liegt ein div welches den eigentlich Content enthält. Dieses wird beim Scrollen durch die Eigenschaft margin-top innerhalb des umschließenden div-Elements verschoben.
    Wie schnell und flüssig bzw. ruckelig dies geschieht kann über die JS-Variablen scrollPx und scrollSpeed festgelegt werden.
    Die Steuerelemente erhalten onmousedown- bzw. onmouseup-Anweisungen (genausogut kann onmouseover und onmouseout verwendet werden). Bei onmouseup soll das scrollen gestoppt werden, also wird die Funktion scrollstop aufgerufen. Beim onmouseover soll gescrollt werden, also wird die Funktion scroll aufgerufen. Hier müssen in dieser Reihenfolge die JQuery-Handler für das umschließende div, für das div welches den Content enthält, sowie die Richtung in die gescrollt wird ("up" oder "down") übergeben werden.

    Ist denke ich nicht sonderlich kompliziert, wer Fragen hat stelle diese.

    Vielleicht kann es ja jemand mal brauchen.

    P.S.: Ok, das wird wohl auch das letzte Mal sein, dass ich Code hier im Forum poste. Es macht nicht besonders viel Spaß im Nachhinein jeden einzelnen Zeilenumbruch nochmal hier im Eingabefenster setzen zu müssen, weil das Forum Zeilenumbrüche aus Ubuntu nicht erkennt...

    Naja, wenn du die Seite aktualisiert hast hättest du auch den alten Thread pushen können, der verlinkt ja auf die gleiche Seite. ;)

    Kurzes Feedback:
    Grundsätzlich finde ich die Seite schon ganz ok, ein paar Kleinigkeiten die mir spontan auffallen und nicht ganz so gut gefallen:
    1. Zwei verschiedene Schriftarten verwendet, eine davon eine Serifen-Schrift. Serifen-Schriften sind für mich auf Webseiten ein rotes Tuch, die sind für den Druck gedacht, Bildschirmschriften haben im Normalfall keine Serifen aus Gründen der Lesbarkeit.
    2. Ich hätte jetzt gedacht, dass der Fokus eher auf den Bildergalerien liegt. Da finde ich es suboptimal wenn sich diese immer ganz unten finden und man erst scrollen muss um sie zu sehen. Würden für meinen Geschmack nach oben gehören.
    3. Die rote Schrift gefällt mir persönlich auch nicht so gut, fände da eine dezentere Farbe schöner zum Hervorheben.


    Da es bei deiner Seite um Zitate geht und ich gerade woanders über ein schönes gestolpert bin lasse ich das hier auch mal noch da, soll jetzt nichts über deine Seite sagen:
    "Normalität ist wie eine gepflasterte Strasse, man kann gut darauf gehen ... doch es wachsen keine Blumen auf ihr." Vincent van Gogh

    Ich habe keine Ahnung von Access, schon Ewigkeiten nicht mehr angerührt. Aber MySQL unterstützt nicht generell Referenzen. Das hängt von der verwendeten Table-Engine ab. MyISAM kennt beispielsweise keine Referenzen. Bei InnoDB können Referenzen und zugehörige ON DELETE Angaben festgelegt werden.
    Ob/wie das bei einer Übertragung von Access nach MySQL zu übernehmen ist kann ich dir leider nicht sagen.


    So einfach werde ich das ganze bei mir zwar nicht Implementieren können..... hätte das von Anfang an berücksichtigen sollen......

    Ich glaube das denkt sich jeder Programmierer immer und immer wieder bei den unterschiedlichsten Problemen. :D
    Wichtig ist nur, dass es nicht mehrmals bei der gleichen Problemstellung passiert. :)

    Wenn es rein um SQL-Injection und um eine Seite die du selbstgeschrieben hast geht, müsstest du eigentlich wissen, ob du abgesichert bist. Wenn sämtliche Werte die vom Client kommen (also alles aus $_GET, $_POST, $_COOKIE, $_SERVER) vor der Verwendung in SQL-Statements mit der entsprechenden escape-Methode (hängt davon ab ob du mysql (veraltet), mysqli oder pdo verwendest) "entschärft" werden, sollte sich diese Frage nicht stellen.
    Auf der absolut sicheren Seite bist du bei der Verwendung von Prepared Statements mit Platzhaltern für sämtliche Werte vom Client, weil dabei Statement und Werte getrennt zum Server geschickt werden, die Werte können also niemals in einen Kontext geraten, in dem sie interpretiert würden.

    Falls es um eine fertige Software geht solltest du eher versuchen dich im zugehörigen Forum (sofern vorhanden) schlau zu machen.

    Wenn es mehrere Parameter werden und die Anzahl der Parameter auch bei jedem Seitenaufruf variiert würde ich mittels .htaccess alles in einen GET-Parameter schreiben und diesen dann in PHP zerlegen und analysieren.

    Um mal ein Beispiel von einer privaten Fanseite zu zeigen die ich gemacht habe:

    .htaccess:

    URL:
    http://www.machone361.de/Diskographie/R…2_-_RocknRoll-7

    In meiner index.php steht dann in $_GET['request']: Diskographie/Release/~/Mach_One_-_Meisterstueck_Vol._2_-_RocknRoll-7

    Ich habe dann eine Routing-Klasse die mir diesen String in PHP mittels explode() zerlegt, Diskographie ist in dem Fall der Controller, Release ist die Action, und Mach_One_-_Meisterstueck_Vol._2_-_RocknRoll-7 der Parameter der an die Action übergeben wird.

    Klasse Route:

    PHP
    <?phpclass Route {  protected $activeHref = "";  protected $frontcontroller = array();
        public function __construct($route,Settings $settings,Navigation_Point_Repository $repository) {    if(trim($route)=="") {      $this->frontcontroller = array(          "controller"=>$settings->get("defaultController"),          "action"    =>$settings->get("defaultAction"),          "params"    =>array()      );    }    else {      $parts = explode("/~/",$route);      $first = array_shift($parts);      if(strpos($first,"/")) {        list($hrefParam,$action) = explode("/",$first);        $navigationPoint  = $repository->find()->unique($repository->href()->eq($hrefParam));        $controller       = $navigationPoint->controller;        $action           = strtolower($action);        $this->activeHref = $hrefParam;      }      else {        $navigationPoint  = $repository->find()->unique($repository->href()->eq($first));        $controller       = $navigationPoint->controller;        $action           = $navigationPoint->action;        $this->activeHref = $first;      }      $params = count($parts)?explode("/",$parts[0]):null;      $this->frontcontroller = array(          "controller"=>$controller,          "action"    =>$action,          "params"    =>$params      );    }    }  public function __get($property) {    if(!property_exists($this, $property)) {      throw new Exception("Unknown property '{$property}'");    }    return $this->$property;  }  private function resolveParams($parts) {    $params = $parts;    $params = array();    $count  = count($parts);    $i      = 0;    while($i<$count) {      $params[$parts[$i]] = $parts[$i+1];      $i+= 2;    }    return $params;  }}?>

    Die Methode resolveParams($parts) wird in diesem Beispiel nicht genutzt, da ich auf der Seite keine benannten Parameter benötige. Die Methode würde beispielsweise aus dem String "branch/1/category/12/supplier/3/orderby/articleNumber" folgendes Array bauen:

    Code
    $params = array(
        "branch"=>1,
        "category"=>12,
        "supplier"=>3,
        "orderby"=>"articleNumber"
    );

    Edit: Schön, dass das Forum hier keine Zeilenumbrüche aus Netbeans übernimmt. Das korrigiere ich jetzt nicht von Hand...