php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 15-05-2009, 21:07
Nucular
 Registrierter Benutzer
Links : Onlinestatus : Nucular ist offline
Registriert seit: May 2009
Beiträge: 10
Nucular befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Moment, du schaust dir die Header über ein Browser-Plugin an?
Dabei bekommst du natürlich die Header-Kommunikation zwischen deinem Browser und deinem Script mit - aber doch nicht die zwischen deinem Script und dem anderen Server ...
Ok wieder was gelernt,...


Zitat:
Siehe Zlib-Funktionen im Manual.
Das hab ich mir gerade mal angeschaut,... ich müsste also nur das was ankommt mit gzdecode dekompremieren richtig?!...

Dann kommt aber bei mir der Fehler dass die Funktion nicht gefunden wird. Aber bei phpinfo() steht unter "Registered PHP Streams" --> "compress.zlib" was laut google zlib ist nur dass es umbenannt wurde...

edit:

macht der erst das gzip und dann deflate und muss ich es dann auch wieder auf umgekehrte Weise dekomprimieren?...

Geändert von Nucular (15-05-2009 um 23:49 Uhr)
Mit Zitat antworten
  #17 (permalink)  
Alt 16-05-2009, 00:49
Nucular
 Registrierter Benutzer
Links : Onlinestatus : Nucular ist offline
Registriert seit: May 2009
Beiträge: 10
Nucular befindet sich auf einem aufstrebenden Ast
Standard

Ok vergesst den letzten Thread,... alles Mist ;-)

Aber Fragen aber ich dennoch :-/....

1. Man kann nicht schauen auf welche Art es komprimiert ankommt richtig? also gzip oder deflate...

2. Ich kann einen String gzcompress() und danach auch wieder gzuncompress() ohne Probleme,... aber den Response den ich schon seit Stunden probiere zu "entschlüsseln" lässt sich mit gzuncompress() nicht dekomprimieren,... data error! D.h. entweder nicht mit gzip compressed oder ich will womöglich zuviel/zuwenig gzuncompressen...

Wenn ich sich jemand die Zeit nehmen will/kann und mir mit ein paar Sätzen unter die Arme greifen könnte wäre ich sehr dankbar ;-)
Mit Zitat antworten
  #18 (permalink)  
Alt 16-05-2009, 01:02
Forsaken
  Administrator
Links : Onlinestatus : Forsaken ist offline
Registriert seit: May 2009
Beiträge: 30
Forsaken befindet sich auf einem aufstrebenden Ast
Standard

Es ist ja normal nicht meine Art solche Mengen an Code "vorzukauen" aber ich hab da schon einen Ziemlich weiten Ansatz wie sich das ganze relativ bequem lösen lässt.

Nötige Links zu dieser Methode:
PHP: file_get_contents - Manual / PHP: HTTP and HTTPS - Manual
PHP: stream_context_create - Manual
In den Kommentaren finden sich jeweils zahlreiche Beispiele die die verschienen Möglichkeiten demonstrieren.

Irgend eine kleinigkeit ist daran noch faul, sobald ich einen anständigen Netzwerk-Sniffer für Linux gefunden habe finde ich das bestimmt auch noch raus Aber für den Fall das du schneller bist hier die Funktionen und der Aufruf mit denen ich es derzeit versuche:
PHP-Code:
function www_get_contents($url$method$ar_params$cookies$opt_header) {
  if (
$ar_params)
    
$params http_build_query($ar_params);  
  if (
strtoupper($method) == "POST") {
    
$opts = array(
      
'http'=>array(
        
'method'=>"POST",
        
'header'=>($opt_header implode("\r\n",$opt_header)."\r\n" "").GetCookieHeader($cookies).
          
"Content-Type: application/x-www-form-urlencoded;\r\n".
          
"Content-Length: ".strlen($params)."\r\n",
        
'content'=>$params
      
)
    );
  } else {
    
$opts = array(
      
'http'=>array(
        
'method'=>"GET",
        
'header'=>($opt_header implode("\r\n",$opt_header)."\r\n" "").GetCookieHeader($cookies)
      )
    );
    if (
$ar_params)
      
$url $url."?".$params;
  }
  
//var_dump($opts);
  //echo("<hr>");
  //var_dump($url);
  
$context stream_context_create($opts);
  
$result file_get_contents($url0$context);
  if (
strlen($result) > 0) {
    
//echo("<hr>");
    //var_dump($http_response_header);
    
$cookies = array();
    foreach (
$http_response_header as $httpline) {
       @list(
$header,$parameters) = explode(";",$httpline,2);
       @list(
$attr,$value) = explode(":",$header,2);
       if (
strtolower(trim($attr)) == "set-cookie") {
          
$cookies_raw explode("&"trim($value));
          foreach(
$cookies_raw as $cookie) {
            list(
$cookie_name$cookie_value) = explode("="$cookie);
            
$cookies[$cookie_name] = $cookie_value;
          }
       }
    }
    if (!
is_array($_SESSION['cookies']))
      
$_SESSION['cookies'] = $cookies;
    else
      
$_SESSION['cookies'] = array_merge($cookies$_SESSION['cookies']);
    return 
$result;
  }
  echo(
"<hr>");
  
var_dump($http_response_header);
}   

function 
GetCookieHeader($cookies) {
  if (empty(
$cookies))
    return 
"";
  
$header = array();
  foreach(
$cookies as $cookie=>$value) {
    
$header[] = $cookie."=".$value;
  }
  return 
"Cookie: ".implode("; "$header)."\r\n";
}
    
session_start();

$uni 60;
$user "Name";
$pass "Passwort";

if (!
is_array($_SESSION['cookies']))
  
$_SESSION['cookies'] = array();
$_SESSION['cookies']["uni_selected_".$uni] = 1;
$_SESSION['cookies']["uni_user"] = $user;
$_SESSION['cookies']["uni_lastLogin"] = $uni;

$params = array();
$params["submitInput"] = "Login";
$params["uni_id"] = $uni;
$params["is_utf8"] = 0;
$params["v"] = "2";
$params["uni_url"] = "uni".$uni.".ogame.de";
$params["login"] = $user;
$params["pass"] = $pass;

$url "http://uni".$uni.".ogame.de/game/reg/login2.php";
//$url = "http://localhost/ogame/post.php";
$header = array();
$header[] = "Referer: http://ogame.de/";
$header[] = "Accept: */*";
// gzip nicht akzeptieren das spaart arbeit solange der Server mitmacht ;) (ogame macht es mit)
$header[] = "Accept-Encoding: deflate";
$result www_get_contents($url"POST"$params$_SESSION['cookies'], $header);
if (
preg_match("/URL\=(.+?)'/"$result$redirect_url)) {
  
// Weiterleitung folgen
  
  
$header = array();
  
$header[] = "Accept: */*";
  
// gzip nicht akzeptieren das spaart arbeit solange der Server mitmacht ;) (ogame macht es mit)
  
$header[] = "Accept-Encoding: deflate";
  
$header[] = "Referer: ".$url;
  
$url "http://uni".$uni.".ogame.de".$redirect_url[1];
  
  
$result www_get_contents($url"GET"false$_SESSION['cookies'], $header);
  echo(
$result);

Läuft jetzt ohne Probleme

Geändert von Forsaken (16-05-2009 um 18:33 Uhr)
Mit Zitat antworten
  #19 (permalink)  
Alt 16-05-2009, 01:12
Nucular
 Registrierter Benutzer
Links : Onlinestatus : Nucular ist offline
Registriert seit: May 2009
Beiträge: 10
Nucular befindet sich auf einem aufstrebenden Ast
Standard

Die erste Funktion hab ich mir heute mittag schon angeschaut,... hattest du glaub in deinem ersten Post geschrieben,... bin ich dir dankbar für,.. nur jetzt sitzt ich seit 2 Tage an meinem Script und bin alle 1-2 Stunden ein Schritt weiter gekommen,... und irgendwie kommts mir so vor als wär ich kurz vor meinem ersten Ziel, und zwar ein einfacher Login per PHP.. ^^...
deswegen scheuts mir davor mit einer ganz anderen Art und Weise und neuen Funktionen neu anzufangen :-P

Zitat:
Irgend eine kleinigkeit ist daran noch faul
Und genau diese Befürchtung hab ich auch....

Zitat:
sobald ich einen anständigen Netzwerk-Sniffer für Linux gefunden habe finde ich das bestimmt auch noch raus
das wär natürlich mue buenoooo!! ^^

Zitat:
Aber für den Fall das du schneller bist hier die Funktionen und der Aufruf mit denen ich es derzeit versuche:
Werd ich mir morgen aufjedenfall mal anschauen...

So,... ne gute Nacht wünsch ich ;-)
Mit Zitat antworten
  #20 (permalink)  
Alt 16-05-2009, 01:17
Forsaken
  Administrator
Links : Onlinestatus : Forsaken ist offline
Registriert seit: May 2009
Beiträge: 30
Forsaken befindet sich auf einem aufstrebenden Ast
Standard

Hehe klar hab ich absolut Verständniss für
Ich werd noch eben schaun ob der Post nur bei OGame nicht vernünftig erkannt wird oder ob das ein allgemeines Problem ist... aber ich Tippe eher auf ersteres.

Gute Nacht

Edit: Ähm ja... es ist schon ziemlich spät... Letzten endes hab ich meinen Fehler dann aber doch gefunden. So habe ich jetzt immerhin auch wieder eine ziemlich effektive funktion für http requests.
Für den Lerneffekt hab ich die wichtigen ausgaben mal auskommentiert drin gelassen.
Ansonsten viel Erfolg bei was auch immer du vor hast

Geändert von Forsaken (16-05-2009 um 02:25 Uhr)
Mit Zitat antworten
  #21 (permalink)  
Alt 16-05-2009, 19:46
Forsaken
  Administrator
Links : Onlinestatus : Forsaken ist offline
Registriert seit: May 2009
Beiträge: 30
Forsaken befindet sich auf einem aufstrebenden Ast
Standard

Ich hab mir Heute mal etwas Zeit genommen und eine Klasse geschrieben die ich dann auch in meinen Kernel übernehmen werde
Es gibt noch viele um das man sie erweiten kann (was ich auch noch werde) aber für deine Zwecke reicht sie denke ich jetzt schon aus.

Die Klasse ist komplett im PHP-Doc Stil Kommentiert und auch Allgemein war ich mal spendabel mit den Kommentaren
Zum besseren Verständniss noch ein kurzes Anwendungsbeispiel:
PHP-Code:
  require_once("sys.http.php");
  
  
session_start();
  
  
$ogame = new http_wrapper($_SESSION["ogame_cookies"]);
  
  
// GZIP nicht akzeptieren
  
$ogame->AddHeader("Accept: */*");
  
$ogame->AddHeader("Accept-Encoding: deflate");
  
  
// Account daten
  
$uni 60;
  
$user "Name";
  
$pass "Passwort";

  
// Login-Cookies setzen 
  
$ogame->AddCookie("uni_selected_".$uni1);
  
$ogame->AddCookie("uni_user"$user);
  
$ogame->AddCookie("uni_lastLogin"$uni);
  
  
// Parameter für den Login Setzen
  
$params = array();
  
$params["submitInput"] = "Login";
  
$params["uni_id"] = $uni;
  
$params["is_utf8"] = 0;
  
$params["v"] = "2";
  
$params["uni_url"] = "uni".$uni.".ogame.de";
  
$params["login"] = $user;
  
$params["pass"] = $pass;
  
$ogame->AddParameters($params);
 
  
// Login-Request abschicken
  
$ogame->referer "http://ogame.de/";
  
$ogame->SetMethod("POST");
  
$result $ogame->GetURL("http://uni".$uni.".ogame.de/game/reg/login2.php");
  echo(
"<noscript>".$result."</noscript>"); 
Angehängte Dateien
Dateityp: php sys.http.php (7,6 KB, 98x aufgerufen)

Geändert von Forsaken (16-05-2009 um 20:09 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ie7 sessionid RanzigeMilch PHP Developer Forum 3 29-01-2007 14:19
sessionID und Iframe bweichel PHP Developer Forum 2 27-09-2005 10:48
Häufigkeit der SessionID PowerPaul BRAINSTORMING PHP/SQL/HTML/JS/CSS 8 14-06-2005 15:32
Cache und SESSIONID dacat PHP Developer Forum 8 05-11-2002 16:07
SessionID Sperre Brain2kone PHP Developer Forum 11 25-12-2001 16:43

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:36 Uhr.