Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Dateien ins Internet (PHP!) senden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MFox²



Anmeldungsdatum: 26.08.2007
Beiträge: 1

BeitragVerfasst am: 26.08.2007, 17:26    Titel: Dateien ins Internet (PHP!) senden Antworten mit Zitat

Hallo ihr FB Coder da draußen,

ich Programmiere seit einiger Zeit (7 Jahre..) hier und da mal ein bisschen QB. Und seit ein paar Jahren auch ein bisschen FB. Aber naja, meine Kenntnisse sind alles andere als großzügig.

Ich möchte aber folgendes versuchen:

Ich möchte ein Programm schreiben welches eine Datei an ein PHP Script ins Internet sendet, das denke ich, geht sicherlich irgendwie per Sockets. PHP beherrsche ich gut bis sehr gut. Ein Upload Formular welches online ist kann ich ohne probleme Programmieren. Aber nun möchte ich per FB eine Datei an ein PHP Script senden. Das PHP Script soll die datei am besten per $_POST empfangen.

Könnt ihr mir Helfen meine Idee zu realisieren?
Wäre euch mehr als Dankbar!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 26.08.2007, 17:30    Titel: Antworten mit Zitat

Wie Du selbst schon sagtest, geht es am besten ueber sockets (getHTTP bzw postHTTP) ich koennte ein kleinen source eines Examples der SDL_Net anbieten bit der es recht einfach zu handlen ist....

Code:
'----------------------------------------------------------------------------------------------------------------------------------------------------------'
#inclib "SDL_net"
'Global Information from SDL_net
 Type Uint16 as ushort
 type Uint32 as uinteger

 type IPaddress
   host as Uint32
   port as Uint16
 end type


 Type TCPsocket as _TCPsocket ptr

 Extern "c"
  declare function SDLNet_Init () as integer
  declare function SDLNet_ResolveHost (byval address as IPaddress ptr, byval host as zstring ptr, byval port as Uint16) as integer
  declare function SDLNet_TCP_Open (byval ip as IPaddress ptr, byval Port as Integer=80) as TCPsocket
  declare function SDLNet_TCP_Recv (byval sock as TCPsocket, byval data as any ptr, byval maxlen as integer) as integer
  declare function SDLNet_TCP_Send (byval sock as TCPsocket, byval data as any ptr, byval len as integer) as integer
  declare sub SDLNet_TCP_Close (byval sock as TCPsocket)
  declare sub SDLNet_Quit ()
 End Extern

'----------------------------------------------------------------------------------------------------------------------------------------------------------'
'Standart HTTP Functions

Const recv_timeout = 5 '100 seconds
Const RECVBUFFLEN = 8192
Const NEWLINE = !"\r\n"
Const Referer = ""

Declare Function TCP_open (Byval hostname As String, byval Port as Integer=80) As TCPSocket
Declare Function TCP_http (Byval method As String="get", Byval Socket As TCPSocket, Byval hostname As String, Byval path As String="") As Integer
Declare Function TCP_recv (Byval socket As TCPSocket) As String
Declare Function TCP_close (Byval socket As TCPSocket) As Integer

'----------------------------------------------------------------------------------------------------------------------------------------------------------'

'****************************************************************
Function TCP_open (Byval hostname As String, byval Port as Integer=80) As TCPSocket
'****************************************************************       
   '' init
   If( SDLNet_Init <> 0 ) Then
      'print "Error: SDLNet_Init failed"
      Return 0
   End If
                         
   '' resolve
   Dim ip As IPAddress
    Dim socket As TCPSocket
   
    If( SDLNet_ResolveHost( @ip, hostname, Port ) <> 0 ) Then
      'print "Error: SDLNet_ResolveHost failed"
      Return 0
   End If
   
    '' open
    socket = SDLNet_TCP_Open( @ip )
    If( socket = 0 ) Then
      'print "Error: SDLNet_TCP_Open failed"
      Return 0
   End If

    Return socket
'****************************************************************
End Function 'TCP_open
'****************************************************************


'****************************************************************
Function TCP_http (Byval method As String="get", _
                   Byval Socket As TCPSocket, _
                   Byval hostname As String, _
                   Byval path As String="") As Integer
'****************************************************************   
   
    '' send HTTP request
    Dim sendbuffer As String
    Dim MString As String
   
    Select Case Lcase (method)
        Case "post"
            MString="POST /"
        Case Else
            MString="GET /"
    End Select
       
   
    SendBuffer= _
    MString+path+" HTTP/1.1"+NEWLINE+ _
    "Host: "+hostname+NEWLINE+ _
    "Connection: close"+NEWLINE
   
    If MString="POST /" Then SendBuffer+= _
    "Accept-Encoding: gzip"+NEWLINE
   
    SendBuffer+= _
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"+NEWLINE+ _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"+NEWLINE+ _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"+NEWLINE+ _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"+NEWLINE+ _
    "Referer: "+Referer+NEWLINE
   
    If MString="POST /" Then SendBuffer+= _
    "Content-type: application/x-www-form-urlencoded"+NEWLINE            
   
    SendBuffer+=NEWLINE
   
    If( SDLNet_TCP_Send( socket, Strptr( sendbuffer ), Len( sendbuffer ) ) < Len( sendbuffer ) ) Then
      'print "Error: SDLNet_TCP_Send failed"
      Return -1
   End If
    Return 0
'****************************************************************   
End Function 'TCP_http
'****************************************************************


'****************************************************************
Function TCP_recv (Byval socket As TCPSocket) As String
'****************************************************************   
    Dim TimeOut As Single
    Dim TimeOutX As Single
    TimeOut=Timer
    '' receive til connection is closed
    Dim recvbuffer As Zstring * RECVBUFFLEN+1
    Dim recv_Buffer as String
    Dim bytes As Integer
   
    Do
        If TimeOutX>recv_TimeOut Then Exit Do
       
        bytes = SDLNet_TCP_Recv( socket, Strptr( recvbuffer ), RECVBUFFLEN )
       
        If( bytes <= 0 ) Then
          'Sleep (100),1
            exit do
       Else
            timeout=Timer
        End If
       
       '' add the null-terminator
       
        recvbuffer[bytes] = 0
       '' print it as string
       'Print recvbuffer;
       
        recv_Buffer+=recvbuffer
       
        TimeOutX=Timer-TimeOut
    Loop While Instr(Lcase(recvbuffer),"</html>")=0
   
    Return recv_Buffer
'****************************************************************
End Function 'TCP_recv
'****************************************************************
                         
   
'****************************************************************
Function TCP_close (Byval socket As TCPSocket) As Integer
'****************************************************************   
    '' close socket
   SDLNet_TCP_Close( socket )
   
   '' quit
   SDLNet_Quit
    Return 0
'****************************************************************   
End Function 'TCP_close
'****************************************************************   

'----------------------------------------------------------------------------------------------------------------------------------------------------------'



Benoetigt SDL.DLL und SDL_Net.DLL
damit ist es recht einfach moeglich einen get bzw post zu senden...
erforderlich sind nur Domain und Path... vielleicht hilft es Dir weiter, muss hier und da vielleicht noch angepasst werden, wenn fragen aufkommen, einfach raus damit, und ich bemuehe mich sie zu klaeren happy

EP
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz