php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.01.2011, 15:49  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Ok, jetzt wird es klarer.

Also wenn CURL erfolgreich einen Benutzer am Wordpress Blog angemeldet hat und dies auch vermeldet, dann lese ich den Cookie aus und leite auf ein Script im Blog, was den Cookie nochmal MIR setzt, quasi:
header('location: http://die-url-zum-blog.de/?set_cook...gelesen');

Richtig verstanden?

Ich hab auch noch folgendes im Netz gefunden, daraus habe ich mir meine Funktion zusammengebaut:

http://stackoverflow.com/questions/7...n-to-wordpress
http://stackoverflow.com/questions/7...ockopen-in-php

Aber so wie ich das erkennen kann, besteht da genau das gleiche Problem.

Was mich jetzt noch interessiert, ich könnte auch ein Wordpress Plugin den Cookie setzen lassen, wenn das Plugin nur ausgeführt wird, wenn ein gewisser Parameter in der URL gesetzt ist, richtig?

Ich danke!
Lightware ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.01.2011, 16:00  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ja, das hast du richtig verstanden. Der Cookie MUSS vom Server des WP gesetzt werden, andernfalls ist zwar dein Server (via CURL) eingeloggt, aber der hat ja nichts mit deinem Browser zu tun und kann aus Sicherheitsgründen auch nur Cookies für seine eigene Domain setzen. Rein theoretisch könntest du auch den Inhalt des Adminpanels via CURL und PHP direkt an deinen Browser weitergeben, allerdings passen dann natürlich sämtliche relativen Pfade nicht mehr und die sind nunmal im Web üblich, das wird in einem deiner Links auch angesprochen.

Daher ist die Idee mit der Weiterleitung die sinnvollste, aber da besteht eben die Cookie problematik. Wie das mit den WP-Plugins läuft weiss ich nicht, aber generell kann jedes Script auf dem Zielserver diesen Cookie setzten. Sogar Javascript kann das.

Wenn du eine Lösung ohne modifizieren der Zielserver suchst, dann kommt IMHO eben nur eine in Frage die die Zugangsdaten im Quellcode (Formular oder JS) bereit hält, denn diese werden dann ja vom Zielserver genommen und liefern deinem Browser den Cookie.
cycap ist offline   Mit Zitat antworten
Alt 29.01.2011, 03:30  
Benutzer
 
Registriert seit: 02.12.2010
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
Atikos zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Hi,

bin auch grad an sowas dran.
Ich berichte dir wie es bei mir läuft, wenn ich fertig bin

Gruß
Atikos
Atikos ist offline   Mit Zitat antworten
Alt 29.01.2011, 03:34  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Hi,

bei mir hängt es nochmal.
Und zwar hab ich Probleme die Cookie.txt, welche cUrl befüllt, auszulesen.

Der Loginvorgang an Wordpress erstellt 5 Cookies, mehrere davon sind Sitzungscookies.

Die Werte sind in der Cookie.txt allerdings so komisch angelegt, dass ich die Datei erst mit PHP auslesen, die Werte trennen - exploden - und dann sortieren muss, um diese für die setcookie Funktion nutzen zu können, oder gibt es eine einfachere Variante?

Es geht darum, die Cookie Werte auszulesen, per header-Location zum Blog zu gelangen mit in den header-Location-Parametern die Werte der Cookies, quasi ?cookie1_name=abc&cookie1_value=123&cookie2_name=n eu&cookie2_value=php usw.

Wie kann ich am besten die Cookies aus der Cookie.txt (von cUrl angelegt) auslesen und mitübergeben?

Besten Dank an euch!
Lightware ist offline   Mit Zitat antworten
Alt 31.01.2011, 11:26  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Sry, aber nach weiteren versuchen den Cookie aus der Cookie.txt zu verwerten bin ich Ratlos wie das funktionieren soll.

Ich hab einen weiteren curl-Prozess gestartet indem ich mit der curl-Option COOKIEFILE die Cookie.txt lade, aber da funktioniert ja kein Redirect.

Steh gerade etwas auf dem Schlauch, bitte um Hilfe.

Danke!
Lightware ist offline   Mit Zitat antworten
Alt 31.01.2011, 11:51  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Wenn du dich mit Server1 bei Server2 per cURL an WordPress anmeldest kannst du nur mit Server1 auf Wordpress zugreifen, weil der Server IP die Session zugewiesen wurde und du das Cookie für diese Session bekommen hast.

Was du dir basteln müsstes ist nen Script auf Server 2 das eine Session für deine Aktuelle IP die an Server1 klebt und sich einloggen lässt in die DB von Wordpress packt, quasi die Session manuell erstellt, du leitest dann auf selbiges Script um und ethablierst per Cookie die Session in deinem Browser. Das Prinzip nennt man Login-Bridge.

Logischer Weise sollte nur die Session auch ethabliert werden wenn IP + User-Agent und von mir aus auch noch nen Security-Key der übergeben wird stimmt. Das ganze am besten an ein x Sekunden Zeitfenster gebunden.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 24.02.2011, 17:45  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Hi,

ich komm da nicht so ganz voran, es mangelt am Umsetzungsvermögen.

Was genau die Aufgabe vom Script auf dem Server wo das Blog liegt ist bzw. was es machen soll.

@Tr0y: Kennst du dich mit WP aus?
Lightware ist offline   Mit Zitat antworten
Alt 28.02.2011, 10:04  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ich hab WordPress nie verwendet noch angepasst. Tut auch nichts zur Sache, das was du willst ist mit simpler Logik umsetzbar und auch durch solche Begründet wie es Funktionieren könnte.

Du hast mich zwar per PM angeschrieben, ich versuch das hier mal weiter aufzuschlüsseln wie genau ich es in #16 vorschlug:

Das willst du:
- Login-Daten Server 1 mitteilen
- Auf Server1 in Wordpress einloggen.
- Auf Server2 in Wordpress einloggen.

Da diese beiden Server vollkommen unabhängig von einander sind, arbeiten sie logischer Weise auch mit getrennten Sessions innerhalb von WordPress. Das bedeutet das du auf dem 2ten Server automatisiert das tun musst was dein Browser bei Server1 tut. Allerdings nicht wirklich genau so wie der Browser auf Server1, aber das Wordpress auf Server2 muss das denken.

Nun gut. Was du realisieren musst ist ein Script das einen Login auf Server1 ins WordPress-System umsetzt. Gleichzeitig muss dieses auf Server2 ein weiteres Script aufrufen, das dort einen Login für eine bestimmte IP vorbereitet, gebunden ( aus sicherheitsgründen ) an einen generierten Schlüssel und die IP, damit du vom Login-Script auf Server1 auf das Vorbereitungsscript von Server2 umleiten kannst.

Arbeiten kannst du wärend der Interserver-Kommunikation ( also dem aufrufen des Scripts von Server1 auf Server2 ) mit cURL.

Folgenden Prozess-Ablauf sollten die Scripte hintersich bringen:

Code:
Browser ruft Login von Wordpress auf, User gibt Zugangsdaten ein und sendet sie dem Server.

{Server1 : wordpresslogin} => Eigene Funktion sollte bei erfolgreichem Login die Logindaten abfangen und
per cURL an "PREPARE_LOGON.PHP" auf Server2 per CURL senden.

   {Server2 : PREPARE_LOGON.PHP} => {
      - Zugangsdaten mit dem User in der Userdatenbank von Wordpress auf diesem Server prüfen
      - neue Session anlegen mit einer Blank-IP, dem generierten Schlüssel als UserID und User-Agent
        => 0.0.0.0, Google Chrome..., 34934
      - Schlüssel generieren und als response ein serialisiertes Array an den cURL Request von Server1 zurückgeben.
        => bspw.: md5() aus -> username + IP ( falls mitübergeben ) vom eigentlichen Client + User Agent + time()
        => außerdem die UserID des Users in der Session
   }

{Server1: wordpresslogin} => Response vom cURL Request lesen und den übergebenen Schlüssel und die ID nehmen
   und den User zum PREPARE_LOGON.PHP-Script auf Server2 umleiten, mit dem zusatz ?logon_token=$logontoken
   Die Variable $logon-Token ist hier am günstigsten ein serialisiertes Array mit Schlüssel, realer IP des Clients und User-Agent und der UserID

   {Server2: PREPARE_LOGON.PHP} => {
      - $_GET['logon_token'] unserialisieren
      - nach 0.0.0.0 + User Agent sowie dem schlüssel im session-table suchen und die 0.0.0.0-IP und die UserID gegen die mitgeteilten
        UserID- und IP-Werte ersetzen. Natürlich nur wenn der Key und der Browser auch passte.
      - Browser Cookie Senden das er eingeloggt ist ( wie jedes Wordpress es auch tun würde ) 
   }
Das wäre so das was ich prinzipiell als Ansatz mir ausdenken würde. Bedenke das die Werte die du da durchs netz übergibst nur maskiert sind. Keinesfalls verschlüsselt. Du musst natürlich auch Login-Fails behandeln auf Server2 und dann entsprechend nicht umleiten. du kannst dir dann ja trotzdem eine Umleitung auf das PREPARE_LOGON.PHP-Script geben lassen das du dort den Loginfehler dann mitgeteilt bekommst.

Bedenke in jedem Fall das so ein "Wordpress Hack" an einen einzigen User gebunden ist. Solltest du irgendwann Wordpress mit mehreren Usern nutzen wollen, werden auch diese bei striktem einhalten dieses "Plans" sich an beiden Wordpress'es einloggen. Das kannst du aber mit Schalter die die UserIDs checken, verhindern.

Bridging ist immer davon abhängig wo und was man zur verfügung hat. Beispielsweise ist es deutlich einfacher 2 Wordpress-Logins synchron von statten zu bringen wenn beide auf ein und der Selben Domain liegen.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche freien Webentwickler/Programmierer für Wordpress TomPoulain Gewerblich 1 29.11.2010 00:01
[Erledigt] cURL Upload Probleme bei unterschiedlichen Servern iits PHP-Fortgeschrittene 3 25.10.2010 18:11
curl drives me crazy unicl PHP Tipps 2010 16 24.10.2010 13:06
Mit curl Bilder anzeigen AllOnline PHP Tipps 2010 2 03.02.2010 22:48
Curl Installation bumer2006 PHP Tipps 2009 14 15.01.2010 16:42
Wordpress als Framwork nutzen und massiv erweitern ? anandi Software-Design 2 24.11.2009 19:28
[Erledigt] curl post GTA26 PHP Tipps 2009 1 11.03.2009 20:09
Curl mit Server-IP fettyteddy PHP-Fortgeschrittene 1 10.03.2009 21:01
Curl mehrere URLs öffnen in einer Curl Session. Buschdieb PHP Tipps 2008 8 20.12.2008 13:01
CURL funktieonieren nicht bazik PHP-Fortgeschrittene 12 07.11.2008 09:43
nuSOAP SSL und cURL Typhon PHP Tipps 2008 0 24.10.2008 15:10
Datei Upload mit curl? R.E.M. PHP Tipps 2006 1 18.09.2006 20:44
[Erledigt] PHP nachträglich mit CURL Support ausstatten PHP-Fortgeschrittene 2 20.12.2004 16:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
curl wordpress, autologin php script, php curl curl erkennung unterbinden, curl mehere seiten auslesen, autologin wordpress, php script auto login, autologin.php script, curl erkennen, wordpress auto login javascript, curl wordpress artikel erstellen, facebook curl session, wordpress autologin php code, login curl browser, wordpress automatic login ip, wordpress cookies setzen, curl session ablauf verhindern php, php curl 2 urls aufrufen, wordpress auto login, php curl post wordpress plugin install, php curl login seite und dann auf die nächste

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum