Authentifizierung Admin-Session / AJAX / XmlHttpRequest

  • Hallo.
    Ich plane gerade die Überarbeitung meines Statistikplugins, die Grundidee ist es statt vieler einzelner Adminseiten alle Satistikausgaben übersichtlich auf einer Seite zu plazieren.

    Beispiel 'Besuche':
    Man stelle sich ein Tab-Menü mit unterhalb gelegenem Datenfenster vor

    Das Ganze jeweils für Besucher, Referer, Suchmaschinen, Suchworte, Browser/-Versionen,Artikel- und Seitenaufrufe, Visit-Rohdaten,...
    Statt nun alle Daten per MySQL komplett auszulesen und zu verarbeiten (Overkill bei grösserer Datenmenge) und in versteckte DIVs zu packen habe ich mir überlegt dass man bei Klick auf einen TAB die Daten per externem Script generieren lassen könnte und dann per XmlHttpRequest in das DIV laden könnte. Benutzt werden soll hierfür Ajax Tabs Content documentation
    sofern Lizenzkompatibel, muss ich noch gucken.

    Zur Frage:
    Wenn die Daten/Diagramme von einem externen Script generiert werden sollen
    - Wie sichere ich das externe Script ab (nur Benutzung durch Admin) ?
    - Wie bekomme ich am günstigsten/schnellsten die Datenbankverbindung (über include() der wp-config) ?


    V.a. die Absicherung ist mein grosses Problem, weiss da jemand Näheres? Ich suche mir einen Wolf und kann absolut nichts finden...

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Also ich arbeite da mit WP-Bordmitteln, sprich SACK und jQuery. Die werden eh schon im Admin-Bereich instanziert, von daher kann man die nutzen ohne neue Frameworks dazupacken zu müssen.

    Den Aufruf starte ich z.B. mit:


    Damit werden POST-Variablen an eine PHP-Funktion "php_funktion) übergeben, mit der du alle WP-Funktionen (auch den DB-Wrapper $wpdb) zur Abfrage des User-Levels nutzen kannst etc.. zur Abfrage ob jemand Admin ist, z.B.

    PHP
    current_user_can( 'level_10' )


    oder was meinst du mit 'absichern'?

    Btw, als Tabs würde ich auch auf jQuery setzen: jQuery UI Tabs / Tabs 3
    Damit hast du die Möglichkeit, mit Callbacks zu arbeiten, um z.B. die DB-Abfrage bei Klick zu starten...

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (28. Mai 2008 um 17:04)

  • Hmja, die UI-Tabs sind definitiv interessant, danke.
    Von SACK habe ich bisher noch nicht viel mitbekommen, allgemein orientiert sich mein Wissen eher in Richtung PHP/XHTML/CSS und weniger AJAX/JS.

    AJAX in Plugins « WordPress Codex werde ich mir mal zu Gemüte führen müssen, ich bin mir nach grobem überfliegen aber nicht sicher ob es das ist was ich benötige:

    - User klickt im Adminbereich auf 'CyStats'
    ---> Container mit Tagesbesuchen wird angezeigt
    ------> User klickt auf Tab 'Wochenübersicht'
    ---------> jetzt soll die Seite nicht neu geladen sondern ein XmlHttpRequest an z.B. eine /plugins/cystats/build-graph.php mit Parameter z.B. 'week' abgesetzt werden.
    -------------> die build-graph.php muss jetzt eine DB-Verbindung aufbauen und vorher den Adminstatus prüfen.
    ----------------> Wenn alles ok, Diagramm o.Ä. generieren und zurückschicken, soll im gleichen Container angezeigt werden.

    So soll das Prinzip sein wenn möglich, bin für jede Hilfe dankbar :)

    Grüsse und danke

  • Ja, dafür ist SACK prädestiniert. Der Vorteil daran ist, dass du zum Verarbeiten der AJAX-Daten nicht eine extra PHP-Datei brauchst, sondern dies dann alles in der http://www.domain.de/wp-admin/admin-ajax.php geschieht. :)

    Ohne deinen Code zu kennen, mal ein Beispiel für deinen Fall.

    - Bei Klick auf ein Tab, wird als Callback die obige JS-Funktion deine_function() ausgeführt. Damit wird die Anfrage gestellt.

    - Die Anfrage bearbeitet eine PHP-Funktion


    Mit der add_action wird der wp-ajax.php gesagt, dass sie deine Funktion "aufnehmen" soll.
    Den Inhalt der Variablen $q kannst du dann in dein Tab/DIV schreiben lassen.

    Ist eigentlich recht einfach und ein mächtiges Feature für Entwickler von WP wie ich finde. :)

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Hmja, der erste Schritt ist getan, JQuery und UITabs sind eingebaut und funktionieren. Frage: Die Anzeigefunktionen des Statistiksystems sind derzeit in eine eigene Klasse gekapselt die bei is_admin() eingebunden ( include() ) wird. Muss ich diese Klasse im Plugin instant(z?)iieren und an SACK irgendwie übergeben oder wie kann ich die einbinden? Ist evtl. sogar ein komplettes Rewrite des Systems dafür nötig?

  • Hmm, wenn du die Klasse "inkludiert" hast, ist sie im Admin-Scope vollständig verfügbar. Um sie zu nutzen, musst du die Klassen-Prozeduren nur aufrufen. Oder wie meinst du das?

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Genau so habe ich das gemeint, danke :)
    Versuche imernoch die tieferen Geheimnisse und Beziehungen in der Kombination PHP/jQuery|SACK zu verinnerlichen...
    lange ( jahrelang) habe ich alles was mit Javascript zu tun hat abgelehnt, so langsam fängt es an Spass zu machen... Danke nochmal.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!