Bilder auslagern

Dieses Thema im Forum "Webentwicklung" wurde erstellt von YOOUI, 9. Dezember 2011 .

Schlagworte:
  1. 9. Dezember 2011
    Servus an die Community,

    ich würde die Bilder meiner Website gerne auslagern.
    Habe schon mit dem Betreiber von Imagebanana geklärt, das ich das auf deren Server machen darf.
    Nun scheitert es bei mir an der umsetztung, sitze schon seit 2 wochen an dem Problem, und komme nicht weiter. Google und die SuFu hilft mir auch nicht weiter.
    Ich habe nur die Snoopy PHP Klasse gefunden, doch auch damit komme ich nicht zum Ziel.
    Also mein konkretes Ziel, ist das verschicken eines POST Request per PHP und das auslesen der darauf vom externen Server angezeigten Seite, um einen bestimmten Teil -Den Bild URL- auszulesen.

    MIt Freundlichen Grüßen,

    YOOUI
     
  2. 10. Dezember 2011
    AW: Bilder auslagern

    snoopy ist eine uralte klasse die man auf heutigen php-systemen besser nicht mehr einsetzen sollte. (der quelltext ist veraltet)

    warum klärst du dein problem nicht einfach mit dem betreiber ab? bieten die keine api/sdk für solche probleme an?
     
  3. 10. Dezember 2011
    AW: Bilder auslagern

    Ne Leider bietet der Betreiber keine API an, da er nicht will das das jeder macht
    Aber trotzdem danke für deine Antwort, jetzt weiß ich wenigstens, das es nicht ur an mir lag das ich auch nach 1 ¹/² Wochen mit Snoopy nicht zustande gebracht habe.
    Falls jemandem noch etwas einfällt, würde ich mich über Vorschläge und Ideen freuen.

    Mit Freundlichen Grüßen,

    YOOUI
     
  4. 10. Dezember 2011
    AW: Bilder auslagern

    naja, snoopy funktioniert schon noch wenn man es richtig einsetzt.
    ich würde das aber mit curl lösen.

    wenn du das nötige know-how hast (http/sessions/cookies etc.) sollte das recht schnell von der hand gehen.

    welche probleme hast du denn und wo bleibst du stecken?
     
  5. 10. Dezember 2011
    AW: Bilder auslagern

    Hi Murdoc,
    cUrl kenne ich jetzt gar nicht, aber ich werde es mir anschauen.
    Ich habe Folenden Code:
    PHP:
    <? php

    include  "Snoopy.class.php" ;
    $snoopy  = new  Snoopy

    $submit_url  "http://post.imageshack.us/" ;
    $submit_vars [ "uploadtype" ] =  "on" ;
    $submit_vars [ "fileupload" ] =  "bild.png" ;
    $submit_vars [ "url" ] =  "" ;
    $submit_vars [ "email" ] =  "" ;
    $submit_vars [ "MAX_FILE_SIZE" ] =  "13145728" ;
    $submit_vars [ "refer" ] =  "" ;
    $submit_vars [ "brand" ] =  "" ;
    $submit_vars [ "optimage" ] =  "resample" ;
    $submit_vars [ "optsize" ] =  "resample" ;
    $submit_vars [ "rembar" ] =  "0" ;
    $submit_vars [ "searchhost" ] =  "" ;
    $snoopy -> submit ( $submit_url , $submit_vars );
    print (
    $snoopy -> results );
    ?>
    Das Script gibt mir auch keine Fehlermeldung zurück aber es wird einfach die Seite Imagebanana angezeigt, aber nur die Startseite - also nicht wie erwartet die Seite nach dem Uploade.

    Mit Sessions und Cookie kenne ich mich so weit aus, das ich also Loginsystem für meine Site benutze.

    Mit Freundlichen Grüßen,

    YOOUI

    p.S. das Script ist jetzt von einem Alternativen Imagehostet (Imageshack), wollte schauen, ob es nur an Imagebanana liegt.


    Edit: Habe mir jetzt cUrl angeschaut. Bräuchte aber bitte ein gutes Deutsches Tutorial.
     
  6. 10. Dezember 2011
    AW: Bilder auslagern

    Das ganze sollte nur mit Erlaubnis von Imagebanana.com genutzt werden!

    Das Script gibt am ende ein Array zurück in dem die Verschiedenen Codes/Linkes stecken.

    PHP:
    <? php

    $ch 
    curl_init ();

    curl_setopt ( $ch CURLOPT_HEADER 1 );
    curl_setopt ( $ch CURLOPT_VERBOSE 1 );
    curl_setopt ( $ch CURLOPT_RETURNTRANSFER 1 );
    curl_setopt ( $ch CURLOPT_USERAGENT "Mozilla/4.0 (compatible;)" );
    curl_setopt ( $ch CURLOPT_URL 'http://www.imagebanana/' );

    curl_setopt ( $ch CURLOPT_FOLLOWLOCATION );
    curl_setopt ( $ch CURLOPT_HTTPHEADER , array( 'Expect:' ));

    curl_setopt ( $ch CURLOPT_POST 1 );
    curl_setopt ( $ch CURLOPT_REFERER 'http://www.imagebanana/' );


    $post  = array(
          
    'upload[]'  =>  '@' realpath ( '0e7b2bfdddece8cc46e55a521172cf76_80[1].jpg' )
        , 
    'options[resize]'  =>  '-0'    // dont resize
        
    'options[thumbnail_infobar_disable]'  =>  '1'    // no infobar on thumbnail
    );


    curl_setopt ( $ch CURLOPT_POSTFIELDS $post ); 
    $response  curl_exec ( $ch );

    if( 
    curl_errno ( $ch ) >  )
    {
        die( 
    '<h1>Curl Error</h1><pre>' . print_r ( curl_error ( $ch ), true ). '</pre>'  );
    }


    $url  curl_getinfo ( $ch CURLINFO_EFFECTIVE_URL  );


    // Set new options
    curl_setopt ( $ch CURLOPT_URL $url . '?extended' );
    curl_setopt ( $ch CURLOPT_POST 0 );
    curl_setopt ( $ch CURLOPT_POSTFIELDS false ); 

    // exec
    $response  curl_exec $ch  );

    // Filter all value="<values>"
    preg_match_all '!value="([^"]*)"!i' $response $matches  );


    $imgurl  = array();

    $imgurl [ 'pictureview' ] =  $matches [ 1 ][ 0 ];
    $imgurl [ 'websitethumbnail' ] =  $matches [ 1 ][ 1 ];
    $imgurl [ 'boardthumbnail' ] =  $matches [ 1 ][ 2 ];
    $imgurl [ 'websitehotlink' ] =  $matches [ 1 ][ 3 ];
    $imgurl [ 'boardhotlink' ] =  $matches [ 1 ][ 4 ];
    $imgurl [ 'directlink' ] =  $matches [ 1 ][ 5 ];


    echo 
    '<pre>'  print_r $imgurl true  ) .  '</pre>' ;
     
  7. 10. Dezember 2011
    AW: Bilder auslagern

    Danke für den Code Nanobyte (BW ist Raus),
    ich hätte nur noch eine Frage:
    Was bedeutet dieser Fehler:
    Spoiler
    Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /srv/www/web175/html/imagebananhack.php on line 11

    Warning: curl_exec() has been disabled for security reasons in /srv/www/web175/html/imagebananhack.php on line 26

    Warning: curl_exec() has been disabled for security reasons in /srv/www/web175/html/imagebananhack.php on line 43

    Array
    (
    [pictureview] =>
    [websitethumbnail] =>
    [boardthumbnail] =>
    [websitehotlink] =>
    [boardhotlink] =>
    [directlink] =>
    )
    ich habe bei meinem Hoster nie die Möglichkeit gehabt das einzustellen.

    Mit Freundlichen Grüßen,

    YOOUI
     
  8. 11. Dezember 2011
    AW: Bilder auslagern

    CURLOPT_FOLLOWLOCATION

    bedeutet, dass weiterleitungen (redirects) verfolgt werden sollen.
    diese option wird von php deaktiviert wenn safe_mode/open_basedir aktiviert ist.

    curl_exec() has been disabled for security reasons

    bedeutet, dass dein hoster dir nicht erlaubt curl zu verwenden.
    bei free-space verständlich, bei "legit" paid-space ne frechheit.

    lösung: hoster kontaktieren.

    safe_mode / open_basedir kann an bleiben, nur musst du dich dann selber um redirects kümmern.

    curl_exec() muss natürlich aktiviert werden.
    schon komisch, dass curl zwar installiert wurde aber nicht verwendet werden darf
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.