PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script funktioniert nicht mit switch-case


Matze83
05.03.2007, 21:54:32
Hallo,
ich habe ein Problem, und zwar funktioniert eine Verlinkung mit meiner Switch-Case Funktion nicht und ich weiß nicht woran es liegt.
Hier ist der Code für die switch case funktion:

<?php
if (!isset($_GET['mode']) || empty($_GET['mode'])) {
$mode = 'new';
} else {
$mode = htmlspecialchars(trim($_GET['mode']));
}
switch ($mode) {
case 'new':
include 'new.php';
break;
case 'gbuch':
include 'gbuch/index.php3';
break;
default:
echo 'new.php';
break;
}
?>



und hier ist der Link:

<div class="airstunt_box_list">
<img src="themes/airstunt/images/cms_point.gif" border="0" alt=""/>
<a href="index.php?mode=gbuch" title="G&auml;stebuch">G&auml;stebuch</a>
</div>


Das Funktioniert auch soweit ganz gut bei anderen Seiten, die ich includen will, aber jetzt will er das nicht bei dem Gästebuch-Script machen. Woran kann das liegen? Hier die Fehlermeldung:


Warning: main(intern/language_de.php3) [function.main]: failed to open stream: No such file or directory in /mnt/cr1/07/649/00000015/htdocs/airstunt/hydro/gbuch/intern/functions.php3 on line 114

Fatal error: main() [function.require]: Failed opening required 'intern/language_de.php3' (include_path='.:/opt/RZphp4/includes') in /mnt/cr1/07/649/00000015/htdocs/airstunt/hydro/gbuch/intern/functions.php3 on line 114


mfg Matze

|Coding
05.03.2007, 22:01:21
Das steht doch hier: "... No such file or directory ..."

Matze83
05.03.2007, 23:28:24
Wie darf ich das denn verstehen? Ich kann php nicht so gut und kann damit nichts anfangen. Soweit ich das vestehe soll es die Datei oder das Verzeichnis nicht geben, aber das gibt es. Helft mir bitte. Hier ist der besagte Teil in der function.php, die irgendwie nicht in Prdnung sein soll.

require ($PathToAdminDir."language_".$language.".php3");

Heinrich
05.03.2007, 23:45:24
Hi,

weiß nicht, was dein 2. Posting mit dem ersten zu tun hat. Aber zum ersten die Vermutung: Sag deinem switch doch mal vorher, dass
$mode = $_GET['mode'];

|Coding
06.03.2007, 00:34:42
Soweit ich das vestehe soll es die Datei oder das Verzeichnis nicht geben, aber das gibt es.

Dann müsstest Du mal den Pfad überprüfen.

Schreib es mal so:

/*
* Ausgabe des ges. Pfads und Dateinamens
*/
print ( $PathToAdminDir . 'language_' . $language . '.php3' );

/*
* Script hier beenden, damit es nicht
* wieder in einen Fehler laeuft.
*/
exit ();

require $PathToAdminDir . 'language_' . $language . '.php3';

feuervogel
06.03.2007, 09:57:34
Wie darf ich das denn verstehen? Ich kann php nicht so gut und kann damit nichts anfangen. Soweit ich das vestehe soll es die Datei oder das Verzeichnis nicht geben, aber das gibt es. Helft mir bitte. Hier ist der besagte Teil in der function.php, die irgendwie nicht in Prdnung sein soll.

require ($PathToAdminDir."language_".$language.".php3");

"no such file or directory" ist englisch und nicht php. es besagt, dass die datei, die du inkludieren willst, nicht vorhanden ist. (auch wenn du das nicht glaubst, aber es gibt sie so in dieser form nicht)

desweiteren: zeig uns bitte den code, der den fehler erzeugt. und zwar im falle einer funktion die gesamte funktion. der code im zweiten posting von dir hat eigentlich nichts mit dem im ersten posting zu tun.

|Coding
06.03.2007, 11:10:39
Ok, schreib Dein require mal so:

require 'language_' . $language . '.php3';

Matze83
06.03.2007, 21:02:11
Halle,
danke erstmal für die viele Antworten. Der Code der den Fehler erzeugt habe ich, denke ich mal, geschickt. Ich weiß nicht genau ob ihr das Script kennt, aber dieses ist es auf jeden Fall:

http://www.in-solution.de/main.php3?id=script_guest

Das Problem liegt jedoch nicht an dem Script, sondern an meiner Switch Case Anweisung, da das Script an sich wunderbar funktioniert. Ich habe die beiden Codeteile in meinem ersten Teil gepostet.

Also wenn ich das Script ganz normal in einem Fenster unabhängig aufrufe, dann gibt er keinen Fehler aus, wenn ich aber dieses Script versuche über eine Switch Case Anweisung in meine Index-Datei zu includen, dann gibt er den Fehler aus.

Tut mir leid wenn ich hier ein bisschen für Verwirrung gesorgt habe oder mich undeutlich ausdrücke/ gedrückt habe.

mfg Matze

meikel (†)
06.03.2007, 21:44:38
Ok, schreib Dein require mal so:
Der OP hat ein Pfadproblem. Er hat sich 2,3 Scripte besorgt, die in Unterverzeichnisse kopiert und müht sich jetzt vergeblich damit ab, das Zeuch mineinander zu verheiraten. Und da die Scripte sicher ebenso schlampig wie einige Empfehlungen relative Pfade verwenden, dann klappert es eben nicht. Ein Script, welches relativ adressierte Pfade zum include verwendet, fällt eben komplett aufs Brett, wenn es von einem anderen Script in einem anderen Verzeichnis oder eine Verzeichnisebene höher per iclude aufgerufen wird. Noch lustiger ist dann das HTML, daß ausgegeben wird, weil die img Tags dann auch den Pfadfehler haben und vom Client nicht gefunden werden.

Matze83
06.03.2007, 22:07:54
Achso ok, vielen dank für die Antwort!
:) Also sollte ich mir besser ein anderes Script suchen?! Oder ich probier mich mal im selber programmieren eines Scripts! :) Wird wohl am sinnvollsten in vielerlei Hinsichten sein.

mfg Matze