mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Bewertung: Bewertung: 1 Stimmen, 4,00 durchschnittlich.
Alt 14.05.2005, 14:49   #1
TP-Junior
 
Registriert seit: Feb 2005
rigo2 macht alles soweit korrekt
Question

Bildupload zu RapidShare + Antwortdaten in Datenbank schreiben


Hi,

ich möchte meinen Mitgliedern die Möglichkeit geben, Bilder/Videos hochzuladen. Diese sollen aber nicht auf meiner Seite sondern bei RapidShare gehosted werden.

Die Bilder können ja über ein Formular, dass ich auf meiner Seite einbaue, hochgeladen werden. Nun kommt das Problem:

Nach dem Hochladen kommt eine Bestätigungsseite mit dem Bildlink und dem Löschlink. Diese Seite möchte ich aber nicht anzeigen, sondern die Links nur auslesen (parsen) und in meine Datei schreiben. Es soll dann nach dem Upload wieder ganz normal meine Seite angezeigt werden. Wie realisiere ich das?

Auf meiner Seite erscheint dann nur der Link zu dem Bild/Video. Sonst nichts. Klickt jemand auf den Link, wird er natürlich auf die RapidShare-Seite geleitet. Davon leben die ja und das ist auch ok.

Ich stehe gerade auf dem Schlauch, wi ich anfagen soll und würde mich über jede Hilfe freuen.

CU
rigo2

Geändert von rigo2 (14.05.2005 um 16:28 Uhr).
rigo2 ist offline   Mit Zitat antworten


Alt 14.05.2005, 16:51   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
ich glaub kaum, das Dir jemand Tipps geben kann, da keiner weiss wie Du das realisiert hast.
Also : poste das Formular und die Auswertung, dann kann man sich reindenken
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.05.2005, 17:59   #3
TP-Junior
 
Registriert seit: Feb 2005
rigo2 macht alles soweit korrekt
Ok. Ich habe jetzt folgendermaßen angefangen:

Ich habe ein Formular, über das man einen Video auf meinen Server laden kann. Das klappt auch, d.h. die Videodatei ist in einem bestimmten Ordner abgelegt.

Mein Problem ist jetzt folgendes:

Wie bekomme ich diese Videodatei von meinem Server auf RapidShare (Formulardaten für RS siehe unten), fange die Antwortseite von RS ab und parse diese nach den Datei- und Löschlinks?

Formular für RS:
Code:
<form method="post" target="_blank" action="http://3rdul.rapidshare.de/cgi-bin/upload.cgi" enctype="multipart/form-data" onsubmit="this.u.value='Uploading...';this.u.disabled=true">
<input type="file" size="48" name="filecontent">
<input type="submit" name="u" value="Upload!">
</form>
Ich hoffe, dass das weiterhilft.

rigo
rigo2 ist offline   Mit Zitat antworten
Alt 14.05.2005, 18:38   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
genau wie Du gesagt hast.
Du füllst das Formular dynamisch mit den richtigen Werten und sendest es ab, fängst die Rückgabeseite ab und extrahierst die beiden Links.

Was die Technik angeht, bin ich noch nicht sicher, wie man das am elegantesten löst.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.05.2005, 18:43   #5
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
habe gerade ein Script gefunden, mit dem Du die POST-Methode simulieren kannst, ohne ein Formular zu benutzen. Schaus Dir mal an:

PHP-Code:
function PostToHost($host$path$referer$data_to_send) {
  
$fp fsockopen($host,80);
  
printf("Open!\n");
  
fputs($fp"POST $path HTTP/1.1\n");
  
fputs($fp"Host: $host\n");
  
fputs($fp"Referer: $referer\n");
  
fputs($fp"Content-type: application/x-www-form-urlencoded\n");
  
fputs($fp"Content-length: ".strlen($data_to_send)."\n");
  
fputs($fp"Connection: close\n\n");
  
fputs($fp"$data_to_send\n");
  
printf("Sent!\n");
  while(!
feof($fp)) {
      
$res .= fgets($fp128);
  }
  
printf("Done!\n");
  
fclose($fp);

  return 
$res;
}

$data "pid=14&poll_vote_number=2";

printf("Go!\n");
$x PostToHost(
              
"www.linux.com",
              
"/polls/index.phtml",
              
"http://www.linux.com/polls/index.phtml?pid=14",
              
$data
); 
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.05.2005, 18:57   #6
TP-Junior
 
Registriert seit: Feb 2005
rigo2 macht alles soweit korrekt
Hi Steffen,

danke für das Skript, hier steht sogar noch ein besserer: http://www.php-faq.de/q/q-code-upload.html

Leider bekomme ich folgenden Fehler:
Code:
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /srv/www/htdocs/dummy.php on line 13

Warning: fsockopen(): unable to connect to http://3rdul.rapidshare.de:80 in /srv/www/htdocs/dummy.php on line 13
errno: 0 errstr: Success 22 0 -22
Also schon beim fsockopen() steift mein Apache aus.

rigo
rigo2 ist offline   Mit Zitat antworten
Alt 14.05.2005, 19:07   #7
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
poste doch mal Dein Script mit gefüllten vars (von mir aus dummies)
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.05.2005, 19:18   #8
TP-Junior
 
Registriert seit: Feb 2005
rigo2 macht alles soweit korrekt
Das Skript von der obigen Seite:
PHP-Code:
<?php

// Andreas Bohne-Lang / a.bohne@dkfz.de / 22.10.2001 / GPL
// Ergaenzt: 19.9.2003

function PostToHost($host$port$path$referer$data_to_send)
{
     
$dc 0;
     
$bo="-----------------------------305242850528394";

     
$fp fsockopen($host$port$errno$errstr20);
// Hier steigt er aus mit der obigen Fehlermeldung
     
if (!$fp) {
     echo 
"errno: $errno \n";
     echo 
"errstr: $errstr\n";
     return 
$result;
     }

     
fputs($fp"POST $path HTTP/1.1\n");
     
fputs($fp"Host: $host\n");
     
fputs($fp"Referer: $referer\n");
     
fputs($fp"User-Agent: Mozilla/4.05C-SGI [en] (X11; I; IRIX 6.5 IP22)\n");
     
fputs($fp"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\n");
     
fputs($fp"Accept-Charset: iso-8859-1,*,utf-8\n");
     
fputs($fp"Content-type: multipart/form-data; boundary=$bo\n");

     foreach(
$data_to_send as $key=>$val) {
     
$ds =sprintf("--%s\nContent-Disposition: form-data; name=\"%s\"\n\n%s\n"$bo$key$val);
     
$dc += strlen($ds);
     }
     
$dc += strlen($bo)+3;
     
fputs($fp"Content-length: $dc \n");
     
fputs($fp"\n");

     foreach(
$data_to_send as $key=>$val) {
     
$ds =sprintf("--%s\nContent-Disposition: form-data; name=\"%s\"\n\n%s\n"$bo$key$val);
     
fputs($fp$ds );
     }
     
$ds "--".$bo."--\n";
     
fputs($fp$ds);

     while(!
feof($fp)) {
     
$res .= fread($fp1);
     }
     
fclose($fp);

     return 
$res;
}

// Fuer eine ASCII-Datei kann man es so machen
// bei bin-Daten ueber fread gehen

$fa = @file("http://www.example.com/00000310.jpg");

// Konkretes Beispiel - Eine Chemie-Datei
$xf="Content-Type: image/jpeg\n\n"implode(""$fa);

$data["disk"]            = "on";
$data["file\"; filename=\"hb_123.jpg"]        = $xf;
$data["smiles"]          = "";
$data["hadd"]            = "add";
$data["aroresolver"]     = "on";
$data["format"]          = "gif";
$data["interlace"]       = "1";
$data["width"]           = "600";
$data["height"]          = "400";
$data["atomcolor"]       = "Black";
$data["asymbol"]         = "xsymbol";
$data["hcolor"]          = "";
$data["csymbol"]         = "special";
$data["hsymbol"]         = "special";
$data["bondcolor"]       = "Black";
$data["bgcolor"]         = "White";
$data["border"]          = "12";
$data["bonds"]           = "8";
$data["wedges"]          = "1";
$data["dashes"]          = "1";
$data["crop"]            = "2";
$data["align"]           = "none";
$data["coord"]           = "0";
$data["imagemap"]        = "none";
$data["headercolor"]     = "Black";
$data["header"]          = "";
$data["footercolor"]     = "Black";
$data["footer"]          = "";
$data["commenttype"]     = "none";
$data["comment"]         = "";
$data["structure"]       = "none";

$x PostToHost("http://3rdul.rapidshare.de"80"/cgi-bin/upload.cgi""http://rapidshare.de/"$data );


// Diesen Teil kann man bestimmt noch optimieren ;-)
$fp fopen("struktur.gif""wb");
$tok 0;
for (
$i=20$i<strlen($x); $i++){
    if ((
substr($x,$i,1)=="\n") || (substr($x,$i,1)=="\r")) {
    
$tok++;
    if(
$tok>=3) break;
    } else {
    
$tok=0;
    }
}
$i++; $i++;
printf(" %d %d %d \n"$istrlen($x), strlen($x)-$i);
fwrite($fpsubstr($x,$i,strlen($x)-$i));
fclose($fp);

$fp fopen("struktur.xxx""wb");
fwrite($fp$xstrlen($x));
fclose($fp);

?>
rigo2 ist offline   Mit Zitat antworten
Alt 14.05.2005, 19:53   #9
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
1. lass das http:// weg:

$x = PostToHost("3rdul.rapidshare.de", 80....

2. bei $fa = @file("http://www.example.com/00000310.jpg");
muss natürlich die Datei eingelesen werden, also in Deinem Fall
$fa = @file("hb_123.jpg");

dann sollte es gehen
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 14.05.2005, 21:25   #10
TP-Junior
 
Registriert seit: Feb 2005
rigo2 macht alles soweit korrekt
Klappt jetzt. Er rödelt lange(!) rum bis eine Meldung kommt. Wie kann ich denn jetzt die Antwortseite Abfangen und z.B. in einer Datei speichern, um zu kontrollieren ob es auch wirklich geklappt hat?

Bis dann
rigo
rigo2 ist offline   Mit Zitat antworten
Alt 14.05.2005, 23:00   #11
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
k.A., da müsst ich auch forschen.

Vielleicht hat ja jemand Erfahrung damit.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.05.2005, 14:52   #12
TP-Veteran
 
Benutzerbild von jonemo
 
Registriert seit: Dec 2002
Ort: london
jonemo macht sich hier sehr viel Mühe
Am besten das mit einer der php-xml funktionalitäten einfach mal auslesen und den gesamten dom-baum anzeigen lassen. dann den pfad durch das array/die objekte raussuchen, der deinen link enthält und das dann eben benutzen. war das verständlich?
__________________
the daily london photo
jonemo ist offline   Mit Zitat antworten
Alt 15.05.2005, 16:11   #13
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
ich glaub es geht überhaupt um die Frage, wohin die Rückgabe kommt und wie man die abfängt, eben bei obiger Aufrufmethode.

Für die Analyse wäre Deine Lösung denkbar. Da es aber nur um 2 Links geht, die jeweils mit http://rapidshare.de/files/ beginnen (oder s.ä.), kann man das auch leicht mit einer Stringfunktion erledigen.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 25.04.2007, 11:04   #14
TP-Senior
 
Benutzerbild von mat81
 
Registriert seit: Jun 2005
Ort: Köln
mat81 macht alles soweit korrekt
Moin moin,

ich hänge gerade an einem ähnlichen Problem. Und zwar soll der User auf meiner Seite ein Video hochladen können, welches dann zusätzlich zu Heywatch gesand werden soll. Der Direkte Upload kommt nicht in Frage, da das Originalvideo ja auf dem Server bleiben soll.

Als Antwort auf das Skript bekomme ich den Fehler 500 (internal Server error).

Vermutlich hängt das mit der Angabe in der Variable $pfad zusammen. Ich habe keine Idee, was ich dort eintragen soll. Ist das nicht ein Wert, der sich auf den Zielserver bezieht?
__________________

The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
mat81 ist offline   Mit Zitat antworten