Möglichkeiten etwas Online umzusetzen ?

Übersicht BlitzBasic BlitzPlus

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Starwar

BeitragFr, Nov 23, 2012 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das STOR-Kommand weißt den Server nur an, dass er eine Datei empfangen soll, die er unter dem Dateinamen Speichern soll.
Die Daten musst du ihm schon noch zusenden. Wink
Dazu muss, soweit ich weiß, per PASV oder PORT eine seperate Verbindung aufgebaut werden,
in die du Bytes per WriteByte schreiben kannst.
Guckst du auch hier.
MFG

PS: FileZilla verwendet standardmäßig den Passiv-Modus (PASV) bei dem der Client die Transferverbindung aufbaut. Aus die Antwort auf PASV kannst du IP/Port ermitteln zu der du die Transferverbindung aufbauen musst. Steht alles im Link oben.
 

Indie-Maker

BeitragSa, Nov 24, 2012 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Nuja habe mich jetzt ein wenig vertrauter gemacht damit aber so ganze hab ich es noch nicht, aber das was ich habe sollte so eigenelich funktionieren !

Code: [AUSKLAPPEN]
Graphics 800,600,0,2




Server$ = OpenTCPStream ("ftp-web.funpic.de",21)
   Server_Antwort$ = ReadLine$ (Server$)
      Print Server_Antwort$
      
WriteLine Server$, "User XXXXXXX"
   ServerAntwort$ = ReadLine$ (Server$)
      Print Server_Antwort$
   WriteLine Server$, "Pass XXXXXXX"
      ServerAntwort$ = ReadLine$ (Server$)
         Print Server_Antwort$

   
      WriteLine Server$,"TYPE A"
         ServerAntwort$ = ReadLine$ (Server$) 
            Print ServerAntwort$
               
               
      WriteLine Server$, "PASV "
         ServerAntwort2$ = ReadLine$ (Server$) 
            Print ServerAntwort2$
            
                  
File$ = "Text.txt"
      WriteLine Server$, "STOR " + File$

   


Denke mal das, dass so weit alles richtig ist weiß jetzt nur noch nicht wie ich das weiter mache !!!
Weil jetzt kommt ja der part wo ich nur noch die bytes übertragen muss denke ich mal aber noch kein plan habe wie !
Kobold
*NEU*Sperrbereich

Eingeproggt

BeitragSa, Nov 24, 2012 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
So muss mans machen:
Starwar hat Folgendes geschrieben:
Dazu muss, soweit ich weiß, per PASV oder PORT eine seperate Verbindung aufgebaut werden,


Dein Ansatz, immer die Befehle zu schreiben und am Ende hoffen es passt is schonmal recht gut fürn Anfang. Aber leider nicht genug Wink Das ganze ist eine "Kommunikation" und du musst auch auf das achten, was der Server dir sagt. Insbesondere bei "PASV" sollte der Server antworten mit "Entering passive mode xxx.xxx.xxx.xxx:yyyy" (oder so ähnlich, weiß ned auswendig). Der letzte Teil is dabei die IP-Adresse und der Port. Darauf musst du n neuen Stream aufmachen und dort darfst du die Bytes hinschicken. Auf dem "Kommunikationskanal" werden keine Daten übertragen sondern nur Befehle sozusagen.

Irgendein Link zum Thema FTP war doch in dem Thread schon verlinkt wenn ich mich recht erinnere?

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Indie-Maker

BeitragSa, Nov 24, 2012 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso jetzt habe ich glaube verstanden das was ich mache ist so zusagen der KommandoKanal sag ich jetzt mal und das was ich wieder bekomme ist dann der Übertragungs Kanal ....und darüber muss ich dann die bytes versenden oder meinteste das anders ?!


aber woher weiß ich da denn den Port !? vom Übertragungs Kanal ???
Kobold
*NEU*Sperrbereich

Eingeproggt

BeitragSa, Nov 24, 2012 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, ja es is ned so einfach wie ich in Erinnerung hab, aber es geht im prinzip so. Gerade probiert, die Antwort vom Server auf PASV lautet zB:

Code: [AUSKLAPPEN]
Befehl:   PASV
Antwort:   227 Entering Passive Mode (176,40,86,231,151,75)


Die ersten 4 Zahlen sind die IP-Adresse, also hier 176.40.86.231.
Der Port ist dann tricky, der wird durch die letzten beiden Zahlen repräsentiert (151,75). Er errechnet sich dann aus 151 * 256 + 75 in diesem Beispiel. (hab ich von hier: http://www.melvinswebstuff.com...data-port/)

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Indie-Maker

BeitragSa, Nov 24, 2012 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke werds mal probiere !
Und nur mal so als frage gibts den eigentlich noch andere einfachere methoden ausser php zu lernen oder sich mit ftp rum zu ärgern xD
Kobold
*NEU*Sperrbereich

Starwar

BeitragMo, Nov 26, 2012 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst nur weniger PHP-Kenntnisse brauchen um Daten per POST auf dem Server zu speichern.
PHP: http://php.net/manual/de/featu...method.php
Die implementation in BB wird schwerer:
a) Suche dir den HTTP-Header der benötigt wird (POST, HTTP Header,... Arrow Google) und schicke ihn an den Server.
b) Schicke dem Server die Daten byteweise HTTP-Konfrom ( Arrow Google)
MFG

PS: Für ein paar Strings oder Integers brauchst du kein POST. Da kannst du das PHP $_GET benutzen. Da reicht es mit Blitz die entsprechend zusammengesetzte URL "auzurufen". Wie ein HTTP-Header funktioniert musst du dir trotzdem anschauen.
 

Indie-Maker

BeitragDi, Nov 27, 2012 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar danke für die Hilfe !
Kobold
*NEU*Sperrbereich
 

Indie-Maker

BeitragSa, Dez 08, 2012 2:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Habbe jetzt mal versucht das ganze via BB/php zu machen ! Funktioniert aber leider nicht weiß aber nicht ganz wieso ! Hier mal code vielleicht kann mir ja mal einer sagen was verkehrt ist !


PHP DATEI (Index.php)
Denke mal könnte so gehen !

Code: [AUSKLAPPEN]
<?php

$User = $_GET["Name"];

$Datei = fopen("Text.txt", w);

   fwrite($Datei, $User);

fclose($Datei);


?>




Und hier der BB teil !
Da glaube ich ist das nicht richtig weiß aber allerdings nicht was !

Code: [AUSKLAPPEN]
tcp = OpenTCPStream ("www.indiemaker.funpic.de",80)
WriteLine  tcp,"http://indiemaker.funpic.de/Index.phpName=Test.txtName=Klaus"

Kobold
*NEU*Sperrbereich

Midimaster

BeitragSa, Dez 08, 2012 3:04
Antworten mit Zitat
Benutzer-Profile anzeigen
die URL sieht seltsam aus. Ich kenn mich nicht mit den Besonderheiten von BB beim http-get aus, aber normalerweise würde die URL so aussehen:

Code: [AUSKLAPPEN]
http://indiemaker.funpic.de/Index.php?Name=" + Name$


also mit einem Fragezeichen nach dem "php".

ich experimentier mal rum und melde mich vielleicht gleich nochmal...


also ich hab da gleich mal ein test-script geschrieben. Es liegt hier:

Code: [AUSKLAPPEN]
http://www.midimaster.de/testphp/test.php

wenn du das in einem Browser aufrufst, antwortet es mit "hallo"


Übergibt man den Parameter "G=xxxx", antwortet es mit " halloxxxx"

Code: [AUSKLAPPEN]
http://www.midimaster.de/testphp/test.php?G=peter

wenn du das in einem Browser aufrufst, antwortet es mit "hallopeter"


soweit sogut....

von BB aus scheint das ganze aber nicht zu funktionieren. Hier hagelt es Fehlermeldungen. Das Problem muss also am BB Compiler liegen:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600

Print "Connecting..."
tcp=OpenTCPStream( "www.midimaster.de",80 )

If Not tcp Print "Failed.":WaitKey:End

Print "Connected! Sending request..."


WriteLine tcp,"GET http://www.midimaster.de/testphp/test.php"

WriteLine tcp,Chr$(10)

If Eof(tcp) Print "Failed.":WaitKey:End

Print "Request sent! Waiting for reply..."

While Not Eof(tcp)
DebugLog ReadLine$( tcp )
Wend

If Eof(tcp)=1 Then Print "Success!" Else Print "Error!"

CloseTCPStream tcp

WaitKey
End




ich vermute mal, das BB die Anfrage nicht korrekt übersetzt. Es scheint so zu sein, dass nur html Dokumente funktionieren.

Dies geht z.b.:
BlitzBasic: [AUSKLAPPEN]
WriteLine tcp,"GET http://www.midimaster.de/index.htm"
  • Zuletzt bearbeitet von Midimaster am Sa, Dez 08, 2012 4:16, insgesamt einmal bearbeitet

Eingeproggt

BeitragSa, Dez 08, 2012 4:11
Antworten mit Zitat
Benutzer-Profile anzeigen
So sollte der BB-Teil aussehen:
Code: [AUSKLAPPEN]
Name$ = "Test"
tcp = OpenTCPStream ("www.indiemaker.funpic.de",80)
WriteLine  tcp,"GET /Index.php?Name=" + Name$ + " HTTP/1.1"
WriteLine  tcp,"Host: www.indiemaker.funpic.de"
WriteLine  tcp,""

Vergleiche Antwort von Midimiaster (bzgl. Fragezeichen) und Wikipedia zum Rest.

Am Ende sowas wie
Code: [AUSKLAPPEN]
Repeat
  txt$=ReadLine(tcp)
  Debuglog txt$
until txt$=""

machen, um die Antwort auszulesen. Die Antwort (genau genommen der Antwort Header) könnte noch weitere Fehler (404, etc) enthalten denen du dann nachgehen müsstest wenn es nicht geht.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Indie-Maker

BeitragSa, Dez 08, 2012 5:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn ich das über mein Browser mache klappt es so wie Midimaster gesagt hat !
Allerdings bekomm ich das ganze einfach nicht in mein BB-Code zu laufen !

Code sieht mitlerweile so aus



PHP-CODE(HEISST JETZT Dat.php)

Code: [AUSKLAPPEN]
<?php

$User = $_GET ["Name"];

$GanzeDatei= $GanzeDatei . $User;
file_put_contents("Highscore.txt",$GanzeDatei);

?>



BB-CODE


Code: [AUSKLAPPEN]
name$ = "Klas"


tcp=OpenTCPStream("www.indiemaker.funpic.de",80)

WriteLine tcp,"GET http://indiemaker.funpic.de/dat.php HTTP 1.1"
WriteLine tcp,"Content-Type: application/x-www-form-urlencoded"
WriteLine tcp,"Content-Length: "+(4+Len(name$))
WriteLine tcp, " "
WriteLine tcp,"dat="+name$
WriteLine tcp,Chr$(10)



CloseTCPStream tcp
Kobold
*NEU*Sperrbereich
  • Zuletzt bearbeitet von Indie-Maker am Sa, Dez 08, 2012 15:27, insgesamt einmal bearbeitet

Eingeproggt

BeitragSa, Dez 08, 2012 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir meinen Beitrag nochmal genau an.
Also die erste Zeile am Ende mit HTTP/1.1 und die zeile mit Host.
Solange du die nicht richtig übermittelst wirst du in meiner vorgeschlagenen "Debuglog-Schleife" einen "Bad Request" Error kriegen.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

Indie-Maker

BeitragSa, Dez 08, 2012 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe da jetzt eine weile dran rumgespielt und soweit so gut wie von Eingeproggt gesagt aber Problem bekomme immer ne 404 in Debug also sprich klappt nicht ganz also der verbindet mich mit meiner gewünschten adresse findet auch die index datei aber überträgt die variable nicht !
Das 404 kommt im Debug immer bei Http/ 1.1 404 Not Found oder so ! ! !
Kobold
*NEU*Sperrbereich

Midimaster

BeitragSa, Dez 08, 2012 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe auch noch ein wenig rumprobiert. Mit localhost klappt es sogar,aber übers Internet nicht.

Bei mir antwortet der Server auf diese Zeile....

BlitzBasic: [AUSKLAPPEN]
WriteLine tcp,"GET http://www.midimaster.de/testphp/test.php HTTP/1.0"
WriteLine tcp,""

... immer mit :

Zitat:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
webadmin@kundenserver.de and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

Indie-Maker

BeitragSa, Dez 08, 2012 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir sieht so aus der aktuelle Code !


PHP (Index.php) -denke mal daran liegt es nicht weil im Browser klappt es-

Code: [AUSKLAPPEN]

<?php

$User = $_GET ["Name"];
   
$GanzeDatei= $GanzeDatei . $User;
file_put_contents("Highscore.txt",$GanzeDatei);

?>




BB-CODE

Code: [AUSKLAPPEN]
Name$ = "Hube"

tcp = OpenTCPStream("indiemaker.funpic.de",80)
WriteLine tcp,"GET /Index.php?Name=" + Name$ + " /HTTP/1.1"
WriteLine tcp,"Host: indiemaker.funpic.de"


WriteLine tcp, ""






Repeat
Print txt$
  txt$=ReadLine(tcp)
  DebugLog txt$
Until txt$=""






PROBLEM WURDE VON Xeres GELÖST EDIT: SO IST JETZT RICHTIG
Kobold
*NEU*Sperrbereich
  • Zuletzt bearbeitet von Indie-Maker am Sa, Dez 08, 2012 21:21, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragSa, Dez 08, 2012 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Chat gelöst, der Host muss natürlich mit
BlitzBasic: [AUSKLAPPEN]
WriteLine tcp,"Host: indiemaker.funpic.de"
angesprochen werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group