JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 25.01.2012, 22:39
xun
Guest
 
Posts: n/a
Default nur 1 Link bei CNL2

Hi.

Ich versuceh seit einigen Tagen CLN2 auf einer Page zu hinterlegen, stosse dabei allerdings auf ein kurioses problem, da sich nicht gelöst bekomme. Auch dei Wiki zu CNL und CNL2 sind da nicht sonderlich gut ausgestattet, was die dokumentation von CNL angeht. :/

Und zwar packe ich, wie auf der wiki angegeben, die Links (welche durch ein | vonainder getrennt sind) über einen replace mit \r\n in die $link var und crypte sie.

PHP Code:
                                        $key="1234567890987654";
                                        
$transmitKey=base16Encode($key);
                                        
$linkstr_replace('|''\r\n'$mylinks) . '\r\n';
                                           echo 
">|" $mylinks "|<br>|" $link "|<";
                                        
$cp mcrypt_module_open(MCRYPT_RIJNDAEL_128'''cbc''');
                                        @
mcrypt_generic_init($cp$key$key);
                                        
$enc mcrypt_generic($cp$link);
                                        
mcrypt_generic_deinit($cp);
                                        
mcrypt_module_close($cp);
                                        
$crypted=base64_encode($enc); 
der Output via echo sieht so aus:
Quote:
>|http://google.de/1.fab|http://google.de/2.rab|http://google.de/3.rab|<br>|http://google.de/1.fab\r\nhttp://google.de/2.rab\r\nhttp://google.de/3.rab\r\n|<
rufe ich nun die POST anfrage
HTML Code:
<form ACTION="**External links are only visible to Support Staff** target="hidden" METHOD="POST">
<input TYPE="hidden" NAME="passwords" VALUE="test.cc">
<input TYPE="hidden" NAME="source" VALUE="**External links are only visible to Support Staff**>
<input TYPE="hidden" NAME="jk" VALUE="function f(){ return '31323334353637383930393837363534';}">
<input TYPE="hidden" NAME="crypted" VALUE="v1D9WiCDOFdwfwtMEiGkOATzsR3q/LX+Ft6nr85Ov/ZSUVvGNsQ0cCq2YJSZDLAwp3sjw97lE7NENn+OK3UW/L1pkN4t6pWiyjp5j74yKQE=">
<input TYPE="SUBMIT" NAME="submit" VALUE="JD">
</form>
auf, dann fügt mir JD nur einen Link hinzu. und zwar den letzten.

Habe schon versucht das \r\n durch chr(13, 10) zu ersetzen, was dazu führt, das JD die letzten beiden links added. allerdings nie vollständig. manchmal kommt es auch vor, das er garkeine hinzufügt.


habe auch das beispiel auf der Wiki mit den requests von mir verglichen (wireshark). abegsehen vom crypted value ist es im grossem udn ganzen identisch. Daher eghe ich davon aus, das irgend etwas mit dem crypted value nicht stimmt.

wie genau muss denn die formatierung der links sein? werden sie expliziet durch \r\n getrennt, oder liegen sie zeilenweise cryptografiert for? (sprich reale 13, 10) ?
müssen die Links seperat formular-encodiert werden?


PS: ich wünschte mir eine ausführlichere doku für CNL2 auf der wiki.


JimJim
XUN

Last edited by Jiaz; 31.01.2012 at 11:52.
Reply With Quote
  #2  
Old 26.01.2012, 08:20
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 66,053
Default

pro zeile ein link
die links sollten urlencoded sein
hast du ne seite wo ich das testen kann, dann kann ich dir mehr debug info geben
__________________
JD-Dev & Server-Admin
Reply With Quote
  #3  
Old 26.01.2012, 17:23
xun
Guest
 
Posts: n/a
Default

Hi.

Leider funktioniert das seperate encodieren der URLs auch nicht mehr oder weniger als ohne urlencode. Wie schon zuvor beschreiben, liegen bei uns die URLs in der folgenden Form vor.

Quote:
<url1>|<url2>|<url3>
Diesmal zerlegen wir sie und urlencoden sie einzeln. Anschliessend werden sie wieder in die $link var, getrennt mit \r\n (ich weis noch immer nicht, ob es sinniger ist \r\n oder Chr(13, 10) zu nutzen :/ ) wieder zusammen gesetzt.

Auch hier sind die effekte weiterhin die gleichen. (Es hat sich am verhalten nichts verändert)

PHP Code:
<?    function base16Encode($arg){
        $ret="";
        for($i=0;$i<strlen($arg);$i++){
            $tmp=ord(substr($arg,$i,1));    
            $ret.=dechex($tmp);    
        }
        return $ret;
    }
?>
                               <form ACTION="**External links are only visible to Support Staff** target="hidden" METHOD="POST">
                                   <input TYPE="hidden" NAME="passwords" VALUE="password">
                                   <input TYPE="hidden" NAME="source" VALUE="**External links are only visible to Support Staff**>
                                   <?
                                        $key="1234567890987654";
                                        $transmitKey=base16Encode($key);
                                        $link = "";
                                        foreach(explode('|', $mylinks) as $download) :
                                            if($download) :
                                                $link .= urlencode($download) . '\r\n';
                                            endif;
                                        endforeach;
                                        //$link = str_replace('|', '\r\n', $mylinks) . '\r\n';
                                           echo ">|" . $mylinks . "|<br>|" . $link . "|<";
                                        $cp = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
                                        @mcrypt_generic_init($cp, $key, $key);
                                        $enc = mcrypt_generic($cp, $link);
                                        mcrypt_generic_deinit($cp);
                                        mcrypt_module_close($cp);
                                        $crypted=base64_encode($enc);
                                   ?>
                                   <input TYPE="hidden" NAME="jk" VALUE="function f(){ return '31323334353637383930393837363534';}">
                                   <input TYPE="hidden" NAME="crypted" VALUE="<?= $crypted ?>">
                                   <input TYPE="SUBMIT" NAME="submit" VALUE="&nbsp;">
                               </form>
Die seite, auf welchem dies installiert wird, darf ich nicht bekannt geben. Allerdings sollte sich der in der [ php ] gezeigte Source auf jeder seite problemlos integrieren lassen, um dies zu testen.


PS: Warum gibt es eigetnlich keine Dokumentation zu dem oft eingesetztem FLASH-Button der auf der JD webseite lagert? ( http://jdownloader.org/_media/sender.swf? )
Ursprünglich wollten wir diesen nutzen, aber dank absoluter 0-Informationsfindung via google und in der wiki haben wir dann leider auf CNL2 umlenken müssen.


JimJim
XUN
Reply With Quote
  #4  
Old 30.01.2012, 21:59
xun
Guest
 
Posts: n/a
Default

hat niemand eine idee, woran das liegen könnte?


JimJim
XUN
Reply With Quote
  #5  
Old 31.01.2012, 10:37
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 66,053
Default

dann gib mir ne testseite per pm. ich hoffe du verstehst das ich net für jeden supportfall erst wieder am server rumfummeln und php (würgs ) rumhacken muss, weil cih kein php kann und das obige beispiel so nicht lauffähig ist.
Wäre mir neu das unser FlashButton groß verwendet wird. Soweit ich weiss nutzen Viele Seiten ne eigenKreation
hier mehr infos zu dem FlashCnl zeugs
http://svn.jdownloader.org/projects/flashcnl
__________________
JD-Dev & Server-Admin
Reply With Quote
  #6  
Old 31.01.2012, 11:00
xun
Guest
 
Posts: n/a
Default

PN is raus.

Jo .. ist verständlich, das man da nicht unbedingt viel dran rumschrauben möchte.

Bezüglich Flash-Button. Das habe ich jetzt schon auf einigen Seiten gesehen. Und in jedem fall linkt es scheinbar zum oben genanntem Server.

Link: Werde ich mir mal ansehen. Thx.


JimJim
XUN
Reply With Quote
  #7  
Old 31.01.2012, 11:06
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 66,053
Default

http%3A%2F%2Fgoogle.de%2F1.fab\r\nhttp%3A%2F%2Fgoogle.de%2F2.rab\r\nhttp%3A%2F%2Fgoogle.de%2F3.rab\r \n
das kommt raus
weil das \r\n plain übertragen wird. ich kenne mich zuwenig mit php aus, aber evtl musst du das escapen damit php weiss das es nicht das zeichen ist sondern das steuerzeichen.
und lass das urlencode weg, der browser selbst urlencoded ja die url (die info ist nur wichtig für leute die den request selbst bauen mit der sprache). man sieht deutlich das der link 2 fach urlencoded ist.
sprich normale links nehmen und irgendwie ein newline dazwischen, keine ahnung wie das in php geht.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #8  
Old 31.01.2012, 11:43
xun
Guest
 
Posts: n/a
Default

Jo. habe schon beides ausprobiert. nachdem du gemeint hattest, das man die urls seperat encoden muss, hab ich das auf die urls einzeln gemacht. aber, auch in deinem wege funktioniert es nicht.

(habe es entsprechend geändert. kannst nochmal versuchen)
Bei der jetzigen Variante kann ich nur 2 (die letzten) beiden Links adden. der 2. button fügt garkeinen link hinzu.

Wireshark reportet das POST korrekt, und die Page zeigt auch, das die Funktion mit informationen gefüllt wird, und diese entsprechend verarbeitet werden.

Ich verstehe nicht, warum er nur die letzten beiden addet, und beim anderen garkeine. Das will nicht in meinen Kopf rein.


JimJim
XUN
Reply With Quote
  #9  
Old 31.01.2012, 11:47
Xavyer
Guest
 
Posts: n/a
Default

Muss es nicht " sein statt ' , weil ' ein String einfügt? PHP ist aber jetzt schon sehr lange her bei mir ^^
Reply With Quote
  #10  
Old 31.01.2012, 11:50
xun
Guest
 
Posts: n/a
Default

er scheint beides zu schlucken ... Aber sicherheitshalber habe ich auch " versucht. geht leider auch nicht. :(


JimJim
XUN
Reply With Quote
  #11  
Old 31.01.2012, 11:51
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 66,053
Default

Grund ist ganz easy
.fab ist keine bekannte dateiendung und google kein bekannter hoster
.rab ist auch keine bekannte dateiendung sondern nur .ra und daher siehst die letzten 2 links

nimm richtige links dann sollte es gehen
gleiches gilt für 2ten button
.html wird nicht vom direkt http plugin gegessen
willst du normale http links dann musst du
1.) directhttp :// (ohne leerzeichen) an den anfang
oder
2.) .jdeatme endung geben

aber so ist der button korrekt
__________________
JD-Dev & Server-Admin
Reply With Quote
  #12  
Old 31.01.2012, 11:53
xun
Guest
 
Posts: n/a
Default

oO .... oha ... ein so einfacher fehler. da wär ich ja nie drauf gekommen!

Alles klar. dann versuche ich das mal zu ändern. VIELEN DANK! (*kopfschmerzen lassen jetzt sicher nach*)


JimJim
XUN
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 18:59.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.