php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.12.2008, 11:05  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard Curl mehrere URLs öffnen in einer Curl Session.

Hallo Leute,

mittlerweile weiß ich einigermaßen wie ich Curl benutze nun steh ich vor meinem nächsten Problem. Vielleicht kann mir ja jemand von euch helfen.

test.php
PHP-Code:
<?php

//Die Session initialisieren
$ch curl_init();

//Variablen setzen
$hidden "index.html";
$login "Benutzername";
$password "Passwort";
$url ="https://www.domain.de/index.html";
$arrSubmit='target_page=' $hidden '&loginname=' $login '&password=' $password;
$cookies="/";
$fp fopen("test.html""w");
//Session Optionen setzen
curl_setopt($chCURLOPT_URL,$url);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$arrSubmit);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_COOKIEJAR$cookies);
curl_setopt($chCURLOPT_COOKIEFILE$cookies);
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
curl_setopt($chCURLOPT_FILE$fp);
//Ausführen der Aktionen
curl_exec($ch);
fclose($fp);
###########################################################################
#Session ID herausfinden...
$handle fopen("test.html","r");
$content fread($handle,filesize("test.html"));
fclose($handle);
$starttag '<li class="tab1"><a href="info.html?session=';
$endtag '">Information</a></li><li class="tab2">';
$text $content;
if (
false !== ($startpos=strpos($text$starttag)) )
  {
  if (
false !== ($endpos=strpos($text$endtag$startpos)) )
    {
    
$sp $startpos+strlen($starttag);
    
$versatel_session substr($text$sp$endpos-$sp);
    }
  }
###########################################################################
$url "https://www.service.domain.de/logout.html?session=$test_session";
#URL im eigenen Browser aufrufen funktioniert!!!
echo"<html><a href=".$url.">".$url."</a></html>";

//Session beenden
curl_close($ch);
?>
Ich möchte jetzt, dass Curl die neu erstellte $url aufruft damit die auf der Internetseite erstellte Session geschlossen wird (Logout-Link). Wenn ich manuell den Link aufrufe dann klappt alles wunderbar aber wenn ich das mit Curl versuche gehts irgendwie nicht.

Sollte nicht folgender Code reichen? Ich setze ihn vor //session beenden curl_close($ch)
Problem ist ums nochmal auf den Punkt zu bringen. Ich werde auf der mittels curl geöffneten Internetseite nicht ausgeloggt.

PHP-Code:
###########################################################################
$url "https://www.service.domain.de/logout.html?session=$test_session";
#URL im eigenen Browser aufrufen funktioniert!!!
#echo"<html><a href=".$url.">".$url."</a></html>";

$fp fopen("test.html""w");
//Session Optionen setzen
curl_setopt($chCURLOPT_URL,$url);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_COOKIEJAR$cookies);
curl_setopt($chCURLOPT_COOKIEFILE$cookies);
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
curl_setopt($chCURLOPT_FILE$fp);
//Ausführen der Aktionen
curl_exec($ch);
fclose($fp

//Session beenden
curl_close($ch); 
Hat jemand eine Idee?
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.12.2008, 11:07  
PTC
Erfahrener Benutzer
 
Benutzerbild von PTC
 
Registriert seit: 27.10.2007
Beiträge: 1.708
PHP-Kenntnisse:
Anfänger
PTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nett
Standard

Benutze die Forensuche, die Frage hatten wir auf jeden Fall schonmal. Danach kannst du dich nochmal melden.
PTC ist offline  
Alt 20.12.2008, 11:18  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

Habe wieder den Beitrag von gestern Nacht gefunden. Der mir schon einmal weitergeholfen hat.
http://www.php.de/php-einsteiger/511...il-parsen.html

Habe mich sogar daran gehalten aber ich komm nicht darauf warum ich nicht per Curl ausgeloggt werde. Manuell funktioniert es ohne Probleme wenn ich die neu erstellte URL aufrufe in meinem eigenen Browser.
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline  
Alt 20.12.2008, 11:19  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Eine Frage vorweg, hast du mal error_reporting aktiviert und die fehler ausgabe aktiviert ?

was mir an deinem Code auffällt:
PHP-Code:
$cookies="/";
/* .... */
curl_setopt($chCURLOPT_COOKIEJAR$cookies);
curl_setopt($chCURLOPT_COOKIEFILE$cookies); 
Kann es sein dass hier ein Problem ensteht, weil meines erachten nach ist / keine Datei. Also kann er garkeine Cookies speichern dementsprechend wird er beim Logout da keine Cookies haben die er mitsendet [z.b. ein Session-cookie vielleicht oder was auch immer das Script an Cookies nutzt] und damit wird der User dann auch nicht ausgeloggt.
robo47 ist offline  
Alt 20.12.2008, 11:35  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

Hab jetzt mal die Cookie.txt hinzugefügt. Funktioniert hats noch immer nicht.
PHP-Code:
$cookies="cookie.txt"
PHP-Code:
$mydebug fopen('debug.txt','w');
curl_setopt($chCURLOPT_STDERR$mydebug);
curl_setopt($chCURLOPT_VERBOSE1); 
Gibt mir folgendes aus.
__________________
fragen ist kostenlos!

Buschdieb.com

Geändert von Buschdieb (20.12.2008 um 12:05 Uhr).
Buschdieb ist offline  
Alt 20.12.2008, 11:51  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Und du bist dir Sicher dass Versatel das was du da machst erlaubt ?
robo47 ist offline  
Alt 20.12.2008, 11:58  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

Das ist eine andere Frage! Ich probiere dat ja mit meinen eigenen Zugangsdaten aus. - fertig.

Hast Du eine Idee? Also als letztes wird die richtige Seite abgespeichert aber der logout will nicht so richtig laufen. Wenn ich mich manuell wieder einlogge weißt er mcih darauf hin, dass ich nciht auf Logout geklickt habe.
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline  
Alt 20.12.2008, 12:50  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Naja, wenn ein Anbieter soetwas will, dann bietet er seinen Kunden normalerweise in irgendeiner Form eine API dafür an.
Wenn es die nicht gibt, gehe ich üblicherweise davon aus, dass der Anbieter soetwas nicht will und automatisiertes Abfragen von irgendwelchen Inhalten, auch wenn man dort Kunde/Mitglied oder sonstwas ist, fällt damit in eine Grau bis Schwarzzone.
robo47 ist offline  
Alt 20.12.2008, 13:01  
Erfahrener Benutzer
 
Registriert seit: 11.12.2004
Beiträge: 238
PHP-Kenntnisse:
Anfänger
Buschdieb
Standard

Das sind bloß Tests. Ich will wissen wie Curl arbeitet und wie man es anwendet.

Ich sende den Logout jetzt wie folgt:

PHP-Code:
###########################################################################
$url "https://www.service.domain.de/logout.html?session=$test_session";
#URL im eigenen Browser aufrufen funktioniert!!!
#echo"<html><a href=".$url.">".$url."</a></html>"; 

//Die Session initialisieren
$ch curl_init($url);
$fp fopen("test_re.html""w");

//Session Optionen setzen
curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);

//Ausführen der Aktionen
curl_exec($ch);
fclose($fp); 
Vielen Dank für die Hilfe!!!
__________________
fragen ist kostenlos!

Buschdieb.com
Buschdieb ist offline  
 


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
Session nofear87 PHP Tipps 2008 8 05.11.2008 10:42
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
curl session, php curl session, curl php session, curl session speichern, curl session cookie, curl url aufrufen, per curl urls öffnen, http://www.php.de/php-tipps-2008/49962-curl-mehrere-urls-oeffnen-einer-curl-session.html, curl-session, curl session php, curlopt_file, curl link öffnen, curl mehrere, php curl url aufrufen, php session curl, curl link aufrufen, curl session id, mehrere urls aufrufen, curl öffnen, session curl

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:38 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