Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

11

18.01.2004, 12:13

ja is ja klar, das "Füllen" ist ja klar. aber php kann doch immer nur "in Dateien" schreiben, da das ja auch die "Satandartausgabeoberfläche ist". Also muss ich ja doch etwas runterladen, und der IE wird sicherlich den Benutzer das dann fragen... darf ... blablabla??
oder wie meinste das? :huhu:

miko93

Frischling

Beiträge: 14

Wohnort: Regensburg

  • Private Nachricht senden

12

18.01.2004, 13:25

Hm, naja, eine Möglichkeit wäre so vielleicht:

- Aufrufen des php-Scripts mit Auslese-Befehl ("Select * from ..." o.ä.)
- Script löscht eine evtl. vorhandene "ausgabe.txt" auf dem Server und erstellt sie neu, mit den angeforderten Daten.
- Dein Programm lädt die *.txt-Datei herunter (mit API-Befehl, ftp, oder wie Du eben auf eine Textdatei von Deinem lokalen Programm aus zugreifst). Da sollte keine IE-Abfrage auftauchen.

Geht aber wohl auch eleganter (Senden der "richtigen Header" gleich durch das aufgerufene Script, und Senden der Daten - für das lokale aufrufende Programm würde es wie eine txt-Datei aussehen, die man empfängt).

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

13

18.01.2004, 21:01

hm, mal sehen, ob der IE mitspielt, ich werde das mal ausprobieren, erstmal Danke!

14

18.01.2004, 22:08

Warum so umständlich über IE arbeiten ? Nimm doch verdammt nochmal Winsock ...

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

15

19.01.2004, 07:24

ja ich schau die mir doch schon an :huhu:

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

16

20.01.2004, 16:04

so, winsock hab ich nun gestartet, auch eine Connection zu unserem Server hergestellt, sowie nen neuen Socket. Nun will ich die Datei downloaden. Ich bin per FTP also mit port 21 drin. So.

Im tutorial haben se auch gesagt das man Dateien mit ReadFile(...) und WirteFile(...) angebelich schreiben/lesen kann. allerdings auch gleichzeitig davon abgeraten.

Ich bin ja immerhin mit ftp, also per FILE TRANS PROTOKOLL DRIN!

wie muss ich die Daten anfragen mit send(...) bzw. recv(...)

miko93

Frischling

Beiträge: 14

Wohnort: Regensburg

  • Private Nachricht senden

17

20.01.2004, 20:03

Hier ein CodeSchnipsel, wie ich eine Datei von meinem Hoster heruntergeladen habe. Allerdings ohne login, also prinzipiell "offen zugänglich".

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void CBlabla::OnDownloadButton()
{
  CInternetSession* pInternetSession;
  pInternetSession = new CInternetSession();

  m_sData = "";  // CString containing data

  CHttpFile* pFile = (CHttpFile*)pInternetSession->OpenURL(
     "http://www.irgendwo.net/data/test.php?all=testtable",
     1,
     INTERNET_FLAG_TRANSFER_BINARY | 
     INTERNET_FLAG_DONT_CACHE | 
     INTERNET_FLAG_RELOAD,
     NULL,
     0);

if (pFile)
{
  char buf[256];
  while( int iRead = pFile->Read( buf, 255 ) )
  {
   buf[iRead] = '\0';
   m_sData += CString( buf );
  }

  pFile->Close();
  delete pFile;
}

pInternetSession->Close();
delete pInternetSession;

}


Der Witz ist, dass Du eine php-Datei aufrufst und einen (oder mehrere) Parameter übergibst. Anhand dieser Parameter holt das Script dann Daten aus der mySQL-Datenbank und liefert sie zurück.

Auszug aus dem php-script (hier wird ein temporäres File erzeugt und dann an den Aufrufer gesendet; warum ich das damals nicht direkt gemacht habe, weiss ich nicht mehr genau... ahem):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (isset($all))
{
   //... hier Datenbank öffnen
   //.....
   $query = "Select * from $all";
   $result= mysql_query($query,$DBHANDLE_GLOBAL);
   //... hier Datenbank schliessen
   //.....

   $fh = fopen("../tmp/daten.txt","wb");

   fwrite ($fh,...// hier nun alles, was man aus der DB hat, als Text ausgeben

   fclose($fh);

   // und jetzt an den Aufrufer senden   
   header("Content-Type: application/octet-stream");
   header("Content-Length: ".filesize("../tmp/daten.txt"));
   header("Content-Disposition: attachment; filename=" .basename("../tmp/daten.txt"));

   $data="";
   $d = fopen("../tmp/datentxt","rb");
   while (!feof($d)) $data.=fread($d,12400);
   fclose($d);
   print $data;
}


Damit könntest Du prinzipiell Daten aus Deiner Db abfragen, glaube ich. Setzen sollte ähnlich gehen.

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

18

20.01.2004, 20:33

Ähm, ja danke erstmal, aber das sieht mir sehr MFC verdächtig aus! Hast du vielleicht noch waqs ohne MFC, ich mag das nicht so mit den tausend klassen für dies und jenes :)

Werbeanzeige