AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PHP in Delphi

Ein Thema von mb1996 · begonnen am 6. Sep 2010 · letzter Beitrag vom 21. Sep 2010
Antwort Antwort
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#1

PHP in Delphi

  Alt 6. Sep 2010, 19:00
Hallo Leute,
ich wollte euch mal Fragen, wie man einen PHP-Code in einen Indy HTTP-Server hochläd.
Um einen HTTP-Code habe ich so eine Anweisung benutzt.
Delphi-Quellcode:
Var
  Stream: TFilestream;
  TheString : String;
begin
  if ARequestInfo.Document = '/then begin
    AResponseInfo.ContentType := 'text/html';
    IF fileexists('index.html') = true then ARequestInfo.Document := 'index.html';
    Stream := TfileStream.Create('Login/index.html', fmOpenRead or fmShareDenyWrite );
    AResponseInfo.ContentStream := Stream;
    setlength(TheString, stream.size);
    stream.Read(TheString[1], stream.size);
  end;
Und wie Funktioniert dieses bei einen PHP-Code?
„AResponseInfo.ContentType := 'php';“???

Geändert von SirThornberry ( 6. Sep 2010 um 19:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: PHP in Delphi

  Alt 6. Sep 2010, 19:44
Mir ist nicht ganz klar, was du machen willst

Du programmierst einen HTTP-Server mit Indy-Komponenten.
Du benutzt den oben gezeigten Code um HTML-Code an z.B. einen anfragenden Browser zu übermitteln.

Was willst du nun tun:
  1. PHP-Code auf diesen Server hochladen?
  2. auf dem Server PHP-Code ausführen?
  3. PHP-Code an den Browser senden (um ihn anzuzeigen)?
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: PHP in Delphi

  Alt 6. Sep 2010, 20:14
Delphi-Quellcode:
    setlength(TheString, stream.size);
    stream.Read(TheString[1], stream.size);
  end;
Diese Zeilen sind eigentlich unnötig, weil sie nichts weiter machen als sinnlos CPU- und RAM-Ressourcen zu fressen. Eventuell fehlt hier was.

Zu deinem Problem: PHP-Code <> HTML. Das heißt für dich: Wenn dein Server die Anfrage für eine PHP-Datei bekommt, sollte er sie normalerweise über php.exe (/usr/bin/php) ausführen lassen. Die Anwendung liefert dann das zurück, was der HTTP-Server an den Browser schicken soll.
Zu den Begriffen: Ein Server sendet (ist einfacher als "ein Server lädt hoch"). Im allgemeinen Sprachgebrauch ist der Upload die Verbindung Client -> Server und nicht umgekehrt. Das nennt man dann Download.

Der Content-Type sollte auch von PHP gesetzt werden. Wenn nicht ist er "text/html".

Wenn ich mir so deinen Code so ansehe, würde ich mal so ganz nebenbei einen Tipp geben: XAMPP. Da ist das alles schon drin und der Apache macht das alles für dich ohne großen Aufwand.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#4

AW: PHP in Delphi

  Alt 21. Sep 2010, 14:28
Kannst du bitte schreiben, was ich in die Procedure reinschreiben soll.
Ich verstehe das nicht. Wie soll ich die PHP.exe ansprechen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: PHP in Delphi

  Alt 21. Sep 2010, 14:38
Du müßtest die php.exe aufrufen, dieser über StdIn die nötigen Parameter übergeben und dann deren StdOut abfangen und dieses versenden.

Siehe Delphi-Referenz durchsuchenCreateProcess für die Umleitung der StdIn und StdOut.

Auf http://php.net/ solltest du irgendwo finden, wie man die php.exe ansteuert.
$2B or not $2B
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#6

AW: PHP in Delphi

  Alt 21. Sep 2010, 14:40
???
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#7

AW: PHP in Delphi

  Alt 21. Sep 2010, 14:52
Kann jemand bitte bitte ein Beispiel posten, wie man den Code :
Code:
<?php
echo "Hallo Welt";
?>
hochläd.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#8

AW: PHP in Delphi

  Alt 21. Sep 2010, 15:18
nochmal: Du sendest mit deinem Server einen Text. Diesen Text liefert dir die php.exe . Du musst also ermitteln, ob
a) die aufgerufene Datei existiert,
b) die aufgerufene Datei eine PHP-Datei ist,
c) wo die php.exe liegt.

Wenn du die drei Punkte hast, kannst du weitermachen. Vorerst versuche etwas anderes: Starte die Kommandozeile (Eingabeaufforderung / CMD) und rufe die php.exe auf (als einzigen Parameter verwendest du den Pfad zu deinem Hallo-Welt-Skript. Dann sollte die Ausgabe in der Konsole sein: "Hallo Welt". Bis das erreicht ist, brauchst du dich gar nicht mit etwas anderem herumzuschlagen.

Kannst du bitte schreiben, was ich in die Procedure reinschreiben soll.
Wie soll ich die PHP.exe ansprechen?
Tut mir leid, aber das habe ich noch nicht gemacht. Alles, was in Verbindung mit PHP läuft, kann ein fertiger Webserver viel besser. Deshalb auch meine Frage, ob das Programm Apache nicht viel besser dafür geeignet ist. Denke darüber nochmal nach.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#9

AW: PHP in Delphi

  Alt 21. Sep 2010, 15:25
Danke, wenn ich Fragen habe erkunde ich mich hier nochmal.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz