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, 12:00  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard Wordpress Autologin cUrl

Hallo,

ich versuche gerade meine Login Prozeduren in Blogs zu vereinfachen.

Folgendes Script habe ich dafür geschrieben, bzw. die Funktion für den Login:

PHP-Code:
function wordpressLogin$data ) {
    
$postfields 'log='.urlencode($data['user']).'&pwd='.urlencode$data['pw'] ).'&wp-submit=Anmelden&redirect_to='.urlencode($data["url"].'wp-admin/').'&testcookie=1';
    
$cookie "cookie.txt";
    
#echo "<pre>".print_r($data,true)."</pre>";
    
$ch curl_init();
    
curl_setopt$chCURLOPT_URL$data["url"].'wp-login.php' );
    
curl_setopt ($chCURLOPT_SSL_VERIFYPEERFALSE); 
    
curl_setopt$chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
    
curl_setopt$chCURLOPT_FOLLOWLOCATION);
    
curl_setopt$chCURLOPT_RETURNTRANSFER);
    
curl_setopt ($chCURLOPT_REFERER$data["url"] . "wp-login.php?redirect_to=".$data["url"]."wp-admin/&reauth=1");
    
curl_setopt ($chCURLOPT_TIMEOUT60);
    
curl_setopt$chCURLOPT_HTTPHEADER, Array( 'Content-Type: application/x-www-form-urlencoded' ) );
    
curl_setopt ($chCURLOPT_COOKIEJAR$cookie);
    
curl_setopt$chCURLOPT_COOKIEFILE'');
    
curl_setopt$chCURLOPT_POSTFIELDS$postfields );
    
curl_setopt$chCURLOPT_POST);
    
$page curl_exec$ch );
    
curl_close($ch);
    
#echo "Page: $page";
    
preg_match'/<h2>Dashboard.+/i'$page$token );
    
#echo "<pre>Token: ".print_r($token,true)."</pre>";
    
if($token[0]){
      
#header('Location: '.$data["url"].'wp-admin/');
      
echo $page;
    }
    return 
false;

Es ist nur so, dass es nicht so funktioniert wie ich es gerne hätte.

Ist der Login erfolgreich, wird eine HTML-Seite ausgegeben die das Wort 'Dashboard' enthält.
Wenn dem so ist, soll er mir die Seite anzeigen.
Das klappt wunderbar und ich bin auch eingeloggt, nur leider kann ich nichts ändern da alles von meiner Scripturl ausgeht.
Also http://url-des-scriptes.de/artikel-von-wordpress.php
es müsste aber
http://die-url-des-blogs.de/artikel-von-wordpress.php sein.

Das versuche ich mittels einer header-Weiterleitung die mich zwar auf die Blogseite führt, aber eine Reauthentication fordert, weil wahrscheinlich der Cookie mit den Anmeldeinformationen verloren gegangen ist, könnte ich mir vorstellen.

Hat jemand eine Idee was ich ändern muss?
Die Funktion ist nicht 100% ausgereift.

Besten Dank!
Freue mich von euch was zu hören
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, 12:26  
Benutzer
 
Registriert seit: 02.09.2010
Beiträge: 55
PHP-Kenntnisse:
Fortgeschritten
Slyx befindet sich auf einem aufstrebenden Ast
Standard

was genau willst du denn letzendlich erreichen?
Möchtest du dich von deinem Script aus am Blog anmelden und dann auf den Blog selbst weitergeleitet werden oder möchtest du komplett alles von deinem Script aus steuern können?
Slyx ist offline   Mit Zitat antworten
Alt 26.01.2011, 13:12  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Am besten wär ersteres.
Also vom Script aus anmelden und zur Admin-Oberfläche des Blogs weitergeleitet werden.
Wenn das nur mit zu großem Aufwand machbar ist, dann vom Script aus den Blog "kontrollieren".

Gruß
Lightware ist offline   Mit Zitat antworten
Alt 26.01.2011, 14:17  
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

Also du willst folgendes umsetzen:

- logindaten an adminpanel versenden
- cookie abholen
- cookie an browser weitergeben
- auf adminpanel weiterleiten

verstehe ich das richtig? Und wenn ja: wo ist das problem? befinden sich script und adminpanel unter der gleichen domain?
cycap ist offline   Mit Zitat antworten
Alt 26.01.2011, 14:26  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Richtig.

Das Script liegt extern auf nem Server und hat nur die Zugangsdaten zu den Blogs.

Das Script listet mir alle Blogs auf.
Klicke ich auf einen, werde ich zu diesem Blog weitergeleitet und direkt ins Admin-Panel, da der Anmeldeprozess im Hintergrund schon stattgefunden hat.


Im Grunde funktioniert das schon mit meinem Script, aber eben nicht die Weiterleitung ins Admin-Interface.

Gruß
Lightware ist offline   Mit Zitat antworten
Alt 26.01.2011, 14:39  
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

Du kannst den erforderlichen Cookie aus Sicherheitsgründen nur vom Server setzen auf dem das WP liegt. Das heisst entweder findest du die Stelle an der WP das macht oder du brauchst ein Script auf dem WP-Server.

Du könntest natürlich auch ein Formular mit versteckten und ausgefüllten Feldern bauen, welches dann einfach die Daten an die entsprechende Url sendet, aber es muss von Client aus kommen. Über Curl geht das nur wenn du entsprechend den Cookie von Zielserver aus setzt.
cycap ist offline   Mit Zitat antworten
Alt 26.01.2011, 14:53  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

CURL empfängt einen Cookie durch die Wordpress Anmeldung der von Wordpress gesetzt wird, aber ich vermute das der Cookie nur für CURL bzw. den Server über den CURL seine Anfrage versendete.

Oder kann CURL mir den Cookie irgendwie übergeben?

Gruß
Lightware ist offline   Mit Zitat antworten
Alt 26.01.2011, 14:56  
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

Du kannst den Cookie auch auslesen, aber (wie gesagt) es nützt dir nichts. Du kannst nämlich deinen Browser nicht dazu bringen den Cookie auch für den entsprechenden (anderen) Server zu nutzen.

Dein Vorhaben ist IMHO mit zwei verschiedenen Servern und CURL nicht möglich. Alternativ könntest du eine Reihe AJAX-Requests versenden oder eben versteckte Formulare. Wichtig dabei ist das dein Browser von dem Zielserver den Cookie bekommt und zwar direkt vom Zielserver.
cycap ist offline   Mit Zitat antworten
Alt 26.01.2011, 15:15  
Erfahrener Benutzer
 
Registriert seit: 18.08.2008
Beiträge: 131
PHP-Kenntnisse:
Fortgeschritten
Lightware befindet sich auf einem aufstrebenden Ast
Standard

Huiuiui das geht ja ganz schön tief.

Ich versteh schon ungefähr was Du meinst.
Mit dem Formular hab ich ein Problem, da niemand im Quelltext des Scripts bzw. dann der Scriptausgabe als HTML-Code sehen darf, was da für Login-Daten verwendet werden.

Außerdem verstehe ich noch nicht so ganz wie du das meinst mit "Über Curl geht das nur wenn du entsprechend den Cookie von Zielserver aus setzt."


Besten Dank!!!

Gruß
Lightware ist offline   Mit Zitat antworten
Alt 26.01.2011, 15:22  
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

Na ganz einfach:

- Via CURL einloggen und den Cookie auslesen
- link auf dem Zielserver bspw. set_cookie.php?cookie=4334HO434323rHH die dann den Cookie setzt auf die index des Adminpanels weiterleitet

du müsstest dann halt auf jedem Wordpress eine set_cookie.php packen
cycap 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
wordpress auto login, wordpress autologin, php curl login, wordpress login weiterleitung, wordpress login curl, php curl wordpress, wordpress curl, wordpress anmeldung reauth=1, autologin curl, login with curl, wordpress autologin php, wordpress anmelden admin geht nicht, wordpress php curl post, php curl weiterleitung, wp curl php, wordpress php curl, kann mich bei wordpress nicht mehr einloggen reauth, \autologin token, curl login \cookie weiterleiten\, reauth=1

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