else-zweig wird ignoriert, warum?
Sonia
- php
Hallo,
ich hab eine kleine php datei in der
diverse if, elseif und zum schluss
wenn alles nicht zutreffen sollte ein else
steht. (siehe unten) Dieses letzte else wird
immer ignoriert, kann mir jemand sagen was
ich da falsch mache?
so sieht das aus:
if($men==1)
{
require'irgendwas.txt';
}
elseif($men==6 || ($men<=70 && $men>=60))
{
require'Abdeckplatten.php';
}
else
{
require'Doppelsteine.txt';
}
Danke schonmal im vorraus
gruss
Sonia
Hallo,
seltsam, aber entweder ich bin jetzt vorübergehend erblindet oder da ist tatsächlich kein Fehler.
Setze einfach mal vor der if-Abfrage $men=2, dann müßte ja eigentlich der else-Teil durchlaufen werden. Wenn das klappt, dann kann es eigentlich nur noch sein, daß $men eben immer 1, 6 oder zwischen 60 und 70 ist.
Oder probier mal vor und nach der if-Bedingung ein echo $men, mal gucken, wass der sagt.
Viele Grüße,
Jürgen
Setze einfach mal vor der if-Abfrage $men=2, dann müßte ja eigentlich der else-Teil durchlaufen werden. Wenn das klappt, dann kann es eigentlich nur noch sein, daß $men eben immer 1, 6 oder zwischen 60 und 70 ist.
$men wird über die URL gesetzt, dann würde ich den wert überbügeln,
aber ich glaube es liegt daran das wenn $men in der URL keinen
Wert zugewiesen bekommt, auch kein Wert existiert und deswegen
ignoriert er die ganze if schleife....?
Wenn das so ist müsste ich die URL prüfen und wenn $men nicht
vorhanden ist, diesem einen Wert zuweisen. oder gibt es einen
eleganteren weg?
Gruss
Sonia
Hallo,
du solltest sowieso sicher gehen, daß die verwendeten Variablen auch definiert sind.
Das geht z.B. so:
if(!isset($men)) $men = 0;
Denn ansonsten wird die if-Bedingung tatsächlich nicht durchlaufen.
Viele Grüße,
Jürgen
Danke,
ich habe es jetzt folgendermassen
abgeändert:
-->Problemstelle:
if(!isset($men)) require'Doppelsteine.txt';
<--
if($men==0)
{
require'Doppelsteine.txt';
}
elseif ($men==1 || ($men<=20 && $men>=10))
{
require'Doppelsteine.txt';
}
elseif($men==2 || ($men<=30 && $men>=20))
{
require'Einzelsteine.txt';
}
usw....
wenn ich an die stelle "require... " ein
echo "var not set";
setze dann wird der text "var not set" ausgegeben
sobald ich aber an diese stelle das require setze wird es
einfach ignoriert . *haare rauf*
Hallo Sonja
-->Problemstelle:
if(!isset($men)) require'Doppelsteine.txt';
<--
wenn ich an die stelle "require... " ein
echo "var not set";
setze dann wird der text "var not set" ausgegeben
sobald ich aber an diese stelle das require setze wird es
einfach ignoriert . *haare rauf*
Du hast ja auch die geschweiften Klammern vergessen,
somit ist das "require" nicht Teil oder Folge der Bedingung.
also:
if(!isset($men))
{
require("Doppelsteine.txt");
}
Tschüß, Auge
PS: Muß es require sein, wäre include nicht angemessener?
hallo
-->Problemstelle:
if(!isset($men)) require'Doppelsteine.txt';
<--
Du hast ja auch die geschweiften Klammern vergessen,
somit ist das "require" nicht Teil oder Folge der Bedingung.
laut selfphp
http://www.selfphp.info/funktionsreferenz/kontroll_mechanismen/if.php
geht das auch so, aber ich habe es auch in den anderen Varianten probiert
und es funktioniert trotzdem nicht.
PS: Muß es require sein, wäre include nicht angemessener?
da hast du wohl recht, aber jetzt habe ich es auf include geändert und es
geht immer noch nicht....
-->>
if(!isset($men))
{
include'Doppelsteine.txt';
}
if($men==0)
{
include("Doppelsteine.txt");
}
elseif ($men==1 || ($men<=20 && $men>=10))
{
include'Doppelsteine.txt';
}
elseif($men==2 || ($men<=30 && $men>=20))
{
require'Einzelsteine.txt';
}
Nochma Hallo *hehe*
jetzt habe ich es auf include geändert und es geht immer noch nicht....
Ich hab mir den Schnipsel mal kopiert, und es geht,
die Bedingungen werden richtig abgearbeitet.
if(!isset($men))
{
include'Doppelsteine.txt';
}
richtig: include("Doppelsteine.txt"); (die Klammer vergessen)
elseif ($men==1 || ($men<=20 && $men>=10))
{
include'Doppelsteine.txt';
}
elseif($men==2 || ($men<=30 && $men>=20))
{
require'Einzelsteine.txt';
}
Wo gehört $men==20 hin? Eine der Bedingungen sollte geändert werden.
entweder:
elseif ($men==1 || ($men<20 && $men>=10))
oder
elseif($men==2 || ($men<=30 && $men>20))
$men==20 passte natürlich zuerst nach Doppelsteine.txt,
hätte aber logisch auch zu Einzelsteine.txt gehören können.
Tschüß, Auge
-->>
richtig: include("Doppelsteine.txt"); (die Klammer vergessen)
hab ich auch drinn
Wo gehört $men==20 hin? Eine der Bedingungen sollte geändert werden.
das ist erstmal wurscht $men wird eh nicht auf 20 gesetz sondern
immer darüber oder darunter. berichtigt hab ichs trotzdem
aber es läuft immernoch nicht
*grummel*
irgendwas stimmt da doch nicht wenn es bei dir läuft und bei mir nicht?
wenn du die seite lädst, siehst du dann bilder? (langsam an Browsern zweifel)
Hallo,
wenn du die seite lädst, siehst du dann bilder? (langsam an Browsern zweifel)
ich seh die Bilder und auch die Links funktionieren (Moz 1.0).
damit wäre Dein Problem gelöst :-)
Grüße,
Christian
Hallo Sonja
wenn du die seite lädst, siehst du dann bilder? (langsam an Browsern zweifel)
Ja, außer bei "Tiefgrabsteine" überall,
wo doch gerade dieser Punkt Interessant gewesen wäre.
Was bitte sind Tiefgrabsteine?
Tschüß, Auge
Hallo Sonja
Hab mir auch den Rest der Seite angeschaut,
der Link zum Katalog in der rechten unteren Ecke
ist mal im Feld, mal darunter und mal fehlt er ganz.
(moz 1.0 RC3)
Tschüß, Auge
ich hab eine kleine php datei in der
diverse if, elseif und zum schluss
wenn alles nicht zutreffen sollte ein else
steht. (siehe unten) Dieses letzte else wird
immer ignoriert, kann mir jemand sagen was
ich da falsch mache?
if($men==1)
{
require'irgendwas.txt';
}
elseif($men==6 || ($men<=70 && $men>=60))
{
require'Abdeckplatten.php';
}
else
{
require'Doppelsteine.txt';
}
Dieser Code funktioniert unter PHP 4.2.1 einwandfrei.
Gruß,
soenk.e