![]() |
PHP-Problem
Auch, wenn das hier kein PHP-Forum ist...
Ersteinmal die Funktion:
Code:
Nun ist das Problem, dass wenn $id nicht im Array ist, so klappt alles, aber wenn $id bspw. "links" ist, so wird "404.php" zurückgegeben...
function getFileName($id) {
global $cat; global $lang; global $files; if ($id == "tut_tp") { # tutorials $lang = "tp"; $rsite = "tutorials.php"; } elseif ($id == "tut_delphi") { $lang = "delphi"; $rsite = "tutorials.php"; #---------------------------------------------- } elseif ($id == "inf_tut") { # tipps $cat = "tuts"; $rsite = "info.php"; } elseif ($id == "inf_tipp") { $cat = "tipps"; $rsite = "info.php"; #---------------------------------------------- } elseif ($id == "") { # others $rsite = "home.php"; #---------------------------------------------- } elseif ($id == "tipp_tp") { # tipps $lang = "tp"; $rsite = "tipps/list.php"; } elseif ($id == "tipp_delphi") { $lang = "delphi"; $rsite = "tipps/list.php"; #---------------------------------------------- } elseif ($x = array_search($id, $files)) { # list $rsite = $files[$x]; #---------------------------------------------- } else { # errorhandling $rsite = "../errors/404.php"; } return $rsite; } Woran könnte das liegen? Chris [edit=Admin]Ich habe das mal nach "Programmieren allgemein" verschoben[/edit] |
ich habe beim schnellen Überfliegen festgestellt das beim letzten elseif nur ein = steht, müssten dort nicht zwei stehen?
Sonst würde mir auch nichts einfallen |
Zitat:
|
Moin Chewie,
ich kenn' mich zwar mit PHP nicht aus, aber ein wenig mit C. Eine Zuweisung die gleichzeitig als Vergleich fungieren kann? Das geht? Wenn ja, vergiss' das folgende. Also für mein Verständnis soll in der von Alexander angesprochenen Zeile nur verglichen werden. Soll auch noch zugewiesen werden, müsste dass doch so aussehen: #---------------------------------------------- } elseif ($x == array_search($id, $files)) { # list $rsite = $files[$x]; $x = array_search($id, $files); #---------------------------------------------- |
Abend!
Also: array_search gibt wenn der Wert von $id in dem Array $Files den index zurück wenn nicht dann False! Also musst du erst zuweisen und dann überprüfen ob $x != false. Vielleicht geht das so: elseif (($x = array_search($id, $files)) and ($x != False) ) Falls es ned stimmt, einfach vergessen :roll: Ich bin nämlich ned der PHP-Guru :cry: |
Ich bin mir auch nicht ganz sicher, aber auf die Erklärung bin ich gekommen, als ich z. B. diesen Code gesehen hab:
Code:
Das ist aus SelfPHP. Es funktioniert und ist im Prinzip das gleiche wie obiges.
$result = mysql_query("SELECT * FROM selfphp_funktionen"); while($row = mysql_fetch_row ($result)) {
echo $row[0] . " - "; echo $row[1] . " - "; echo $row[2] . " - "; echo $row[3] . " "; } Und man kann ja auch schreiben:
Code:
anstatt von
echo $string = 'Ich bin ein String';
Code:
.
$string = 'Ich bin ein String';
echo $string; Nachtrag: Außerdem wäre der Code wohl sinnlos, wenn man prüfen wollte, ob $x der Rückgabe von array_search entspricht, da $x vorher nicht definiert ist. Wenn dann müsste man das letzte Stück so schreiben:
Code:
if(array_search($id,$files)) {
$x = array_search($id,$files); $rsite = $files[$x]; } |
! STOP !
Hat sich bereits alles erledigt... :oops: Chris |
Hallo Chakotay,
woran lag es denn? |
Daran, dass ich weiteroben im Quelltext einen Fehler mit den Variablen gemacht habe... Desweiteren habe ich die Fehlerabfrage an eine andere Stelle gesetzt...
Chris |
Um nochmal eine Frage hinterher zu schieben: Folgendes Problem:
Der folgende Source funktioniert in der Hinsicht nicht, dass immer die if-Abfrage ausgeführt wird...
Code:
Soll heißen, wenn $id bspw. "tut_tp" ist so soll $rsite = "tutorials.php" und $lang = "tp"...
if (strpos($id, "tut_") == 0) {
$rsite = "tutorials.php"; $lang = substr($id, strpos($id, "_")+1, strlen($id)); } elseif { #... Allerdings wird, wie gesagt, $rsite = "tutorials.php" ($lang ist dann immer was anderes)... Was tun? Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz