Autor Beitrag
Svenkan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WinXP
Delphi 7 Enterprise
BeitragVerfasst: So 01.04.07 13:44 
Folgendes: Ich habe für unsere Schulcommunity ein Programm erstellt, womit man den aktuellen Vertretungsplan abrufen kann.
Da dieser mit Untis geschrieben wird, wird immer nur für die Klassen eine Datei erstellt, wo auch wirklich eine Änderung vorliegt.
Sollte nun eine Klasse gewählt werden, wo nichts ausfällt oder geändert ist, möchte ich nun nicht die Standard-404 vom IE, sondern eine eigene verwenden.
Ist dies möglich?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 01.04.07 13:47 
Welcher Webserver?

_________________
Markus Kinzler.
Svenkan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WinXP
Delphi 7 Enterprise
BeitragVerfasst: So 01.04.07 13:55 
Ach, muss man das über den Server machen?
Geht das nicht direkt aus dem Programm heraus?
Das man ihm sagt, falls Datei xy nicht vorhanden ist, gebe abc aus?
OK, ich habe bei mir aufm Server das über eine .php gemacht. Aber der Plan liegt aufm Schulserver und da müsste man dann extra hinterher laufen.
Aber ich glaube, dass das ein Windows '03-Server ist.
LeoLöwe
ontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 45

Win XP Home
BDS 2006, PHPCoder
BeitragVerfasst: So 01.04.07 16:53 
Das öffentlich Institutionen immer so viel Geld für drittklassige Software verjubeln...

Na was solls.
Vorschlag: Stell den Kram auf Apache um, dann klappts auch mit der 404 Seite!

Oder: Erstelle doch einfach leere Seiten bzw. lass das Programm einfach eine Info hinschreiben

Oder: Erstelle ein PHP-Script das nach Anfrage die Pläne aus einer DB holt. Wenn kein Eintrag vorhanden ist wird halt ein Hinweis ausgegeben
Svenkan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WinXP
Delphi 7 Enterprise
BeitragVerfasst: So 01.04.07 17:00 
OK, ich hatte mich vertan.
Die hams wohl mittlerweile umgestellt. ^^
Apache/1.3.27 <~~~ das steht in meiner Fehlermeldung bei Opera. *g*
Na ok.
Datenbank..sowas kennen die bei uns anna Schule leider so gar nicht. :D (unsere sog. Informatiker ham teilweise weniger Ahnung als ihre Schüler :/).
Das Problem ist ja auch, das Untis die Pläne halt in .html-Dateien schreibt und ich ehrlich gesagt auch nicht wüsste, dass es dort irgendeine SQL-Unterstützung gäbe.
Gibt es denn eine ähnliche Funktion wie in PHP like if(file_exists(blaaa))?
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: So 01.04.07 17:13 
Lässt sich mit .htaccess regeln.
zB wie hier: www.lerneniminternet.../htm/fehler_404.html

_________________
Die folgenden Klangbeispiele sind Ergänzungen zum methodischen Aufbau der Textbeilage und dürfen nicht losgelöst von dieser behandelt werden.
Svenkan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WinXP
Delphi 7 Enterprise
BeitragVerfasst: So 01.04.07 17:20 
Per .htaccess wär ja alles kein Problem.
Aber ich wollte das einfach 'programmgesteuert' machen. Das man das halt über eine Art file_exists-Funktion macht.
Leider finde ich dazu auch per Google rein gar nichts über eine derartige Funktion. :(
Oder bin ich einfach nur total blind?
Oder ginge es irgendwie darüber, dass man schaut, ob eine Verbindung des Webbrowsers erfolgreich verlaufen ist?


Zuletzt bearbeitet von Svenkan am So 01.04.07 17:23, insgesamt 1-mal bearbeitet
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: So 01.04.07 17:22 
Google liefert jendryschik.de/wsdev/fehlerseiten/ gleich als erstes bei Suche nach "apache eigene 404"

_________________
Die folgenden Klangbeispiele sind Ergänzungen zum methodischen Aufbau der Textbeilage und dürfen nicht losgelöst von dieser behandelt werden.
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: So 01.04.07 17:27 
user profile iconJetstream hat folgendes geschrieben:
Google liefert jendryschik.de/wsdev/fehlerseiten/ gleich als erstes bei Suche nach "apache eigene 404"

Also, dass er das nicht servergesteuert machen will, hat er ja jetzt wohl oft genug gesagt...

Es gibt keine IE-eigene 404-Seite. Die 404-Seite wird vom Server geliefert. Wie rufst du die Seiten ab? Über TWebBrowser? Dann teste, ob der Inhalt der 404-Seite eures Schulservers entspricht(über TWebBrowser.Document), und lad dann über Navigate eine andere Seite.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Svenkan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

WinXP
Delphi 7 Enterprise
BeitragVerfasst: So 01.04.07 17:38 
Jap, über TWebBrowser.
Wie meinst du das mit dem entsprechen?
Ob die 404 was entspricht? Das hab ich jetz nicht wirklich rauslesen können.

/edit: Ach so! Der Inhalt der geladenen Seite dem des 404-Dokuments?
Jetzt hab ich kapiert. ;)
Mit welchem Befehl lässt sich dies denn vergleichen?
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: So 01.04.07 18:08 
Den Inhalt der geladenen Seite überprüfst du - wie ich schon sagte - mit TWebBrowser.Document.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Hack Gott
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Di 03.04.07 23:23 
Also so wie ich des Verstanden hab willst du in PHP überprüfen ob eine Bestimmte Datei existiert und das klappt so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
<?php
if (!file_exists('Stundenplan9b.txt')) {
echo 'Es fällt nichts aus';
} else {
echo 'Es fällt folgendes aus:<br>';
readfile('Stundenplan9b.txt');
}
?>

_________________
"Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Mi 04.04.07 10:57 
user profile iconHack Gott hat folgendes geschrieben:
Also so wie ich des Verstanden hab willst du in PHP überprüfen ob eine Bestimmte Datei existiert

Neeeeeein. Eben genau das will er nicht. Er will von seinem eigenen PC aus mit TWebBrowser eine Datei von einem Server öffnen, und wenn sie nicht existiert, eine andere anzeigen. Auf den Server hat er vermutlich gar keinen Zugriff.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Hack Gott
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Mi 04.04.07 12:18 
Oh, ok war schon spät gestern abend...

Trotzdem würde ich mit seinem Programm immer nur eine PHP Datei vom Server aufrufen. Die soll dann anzeigen ob etwas ausfällt oder nicht.

Wenn du die ganzen Infos aber in deinem Programm grafisch darstellen willst würde ich die PHP Datei so schreiben, dass sie KEINEN Html Code generiert, sondern z.B. für keinen Eintrag nur ein -. Dann lädts du das ganze mit Delphi runter und wertest die Infos aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
uses URLMon;

procedure PlanDownloaden(Klasse, DownloadTo: String);
begin
DeleteURLCacheEntry(PChar('http://meineSchule.de/meinProgramm/download.php?klasse='+Klasse)); //Löscht im Chache falls bereits runtergeladen (damit auf jeden Fall neu heruntergeladen wird
URLDownloadToFile(nil, PChar('http://meineSchule.de/meinProgramm/download.php?klasse='+Klasse), PChar(DownloadTo), 0nil); //Lädt die Datei runter
end;


Ein Beispielsaufruf wäre dann:
ausblenden Delphi-Quelltext
1:
PlanDownloaden('9b''temp9b.txt');					


Dann lädst du die Datei und wertest den Inhalt aus.

_________________
"Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 04.04.07 14:58 
Das mit dem Vergleichen ist keine gute Idee. Du musst den ReturnCode des Webbrowsers auswerten. TWebbrowser müsste entsprechend auch irgendwo eine Eigenschaft haben, wo der ReturnCode vom Webserver drinsteht. Wenn der 404 ist, dann kannst Du Deine Fehlerseite anzeigen.