Logische Verknüpfung or
Wo liegt der Fehler, hab schon zig Varianten getestet, aber irgendwie krieg ich das nicht gebacken
} else if ($var !== ($_POST['frage'])) or ($var1 !== ($_POST['frage'])) {
$message=$_POST['frage']
. "Text";
} else {
header("location:adresse.php");
exit;
}
?>
EDIT:
Parse error: parse error, unexpected T_LOGICAL_OR in D:\index.php on line 8
} else if ($var !== ($_POST['frage'])) or ($var1 !== ($_POST['frage'])) {
$message=$_POST['frage']
. "Text";
} else {
header("location:adresse.php");
exit;
}
?>
EDIT:
Parse error: parse error, unexpected T_LOGICAL_OR in D:\index.php on line 8
Wer mit dem Strom schwimmt, wird ganz schön den Bach runter geh´n... "M. F. H"
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cybermaxtc« (7. Dezember 2007, 23:57)
Es wäre vielleicht hilfreich, wenn du den Fehler mal nennen würdest oder die Ausgabe posten? Außerdem wären ein paar mehr Zeilen des Quelltexts sicher auch nicht schlecht 
In deinem geposteten Code kann ich keinen Fehler entdecken... Hab aber auch schon eeeeeeeeewig nix mehr gemacht bezüglich Programmierung..

In deinem geposteten Code kann ich keinen Fehler entdecken... Hab aber auch schon eeeeeeeeewig nix mehr gemacht bezüglich Programmierung..
moinsen,
es ist ein unexpected also unerwartetes OR. Du hast die Klammer der if-Abfrage mit dem ersten Vergleich bereits geschlossen.
So sollte es wohl klappen:
gruß
teck0r
es ist ein unexpected also unerwartetes OR. Du hast die Klammer der if-Abfrage mit dem ersten Vergleich bereits geschlossen.
So sollte es wohl klappen:
|
|
PHP-Quelltext |
1 2 3 4 |
} else if ( $var !== $_POST['frage'] or $var1 !== $_POST['frage'] ) {
$message=$_POST['frage']
. "Text";
. . .
|
gruß
teck0r
Vergiss auch nicht, dass != und !== zwei paar Schuhe sind. Falls du integer und string vermischt könnte das zu komischen Ergebnisse führen.
Siehe 1]
1] http://www.teialehrbuch.de/Kostenlose-Ku…ablentypen.html
Siehe 1]
1] http://www.teialehrbuch.de/Kostenlose-Ku…ablentypen.html
nyuuu
Ah jetz ja!
!= liefert den Wert Wahr (true) zurück, wenn z. B. A$ nicht gleich B$ ist.
A$= "Wert"
B$= "Wort"
wenn A$ !== B$ (Vergleich ergibt true, dann wird die folgende Anweisung erfüllt)
Bei !== ist der Typ noch mitgefragt, also int, bol, str
Hab ich das dann soweit richtig verstanden?
!= liefert den Wert Wahr (true) zurück, wenn z. B. A$ nicht gleich B$ ist.
A$= "Wert"
B$= "Wort"
wenn A$ !== B$ (Vergleich ergibt true, dann wird die folgende Anweisung erfüllt)
Bei !== ist der Typ noch mitgefragt, also int, bol, str
Hab ich das dann soweit richtig verstanden?
Wer mit dem Strom schwimmt, wird ganz schön den Bach runter geh´n... "M. F. H"
Richtig.
!= vergleicht den Inhalt auf Ungleichheit.
!== vergleicht den Inhalt und den Typ auf Ungleichheit, wobei eine Ungleichheit für ein true ausreicht (OR).
Also bei deinem Beispiel gibt A$ != B$ true zurück, A$ !== B$ auch (Typ zwar gleich, aber Wert nicht).
!= vergleicht den Inhalt auf Ungleichheit.
!== vergleicht den Inhalt und den Typ auf Ungleichheit, wobei eine Ungleichheit für ein true ausreicht (OR).
Also bei deinem Beispiel gibt A$ != B$ true zurück, A$ !== B$ auch (Typ zwar gleich, aber Wert nicht).
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »narfnarf« (13. Dezember 2007, 10:00)
Vielen Dank euch für euere Hilfe! 
Falls es jemanden interessiert (mich interessiert schon immer das WIE, und OB, gerade wenn ich auf der Suche nach Lösungen bin).
Habe das Prob so gelöst.
Ist wahrscheinlich nicht die eleganteste Lösung, aber sie funktioniert.
Falls es jemanden interessiert (mich interessiert schon immer das WIE, und OB, gerade wenn ich auf der Suche nach Lösungen bin).
Habe das Prob so gelöst.
|
|
Quellcode |
1 2 3 4 5 6 7 8 |
if ( $var != ($_POST['frage'] ) ) {
$message=$_POST['frage'] ." bla bla bla";
if ( $var1 == ($_POST['frage'] ) ){
header("location:adresse.php"); }
}else {
header("location:adresse.php");
exit;
}
|
Ist wahrscheinlich nicht die eleganteste Lösung, aber sie funktioniert.
Wer mit dem Strom schwimmt, wird ganz schön den Bach runter geh´n... "M. F. H"
Zitat
Original von narfnarf
Richtig.
!= vergleicht den Inhalt auf Ungleichheit.
!== vergleicht den Inhalt und den Typ auf Ungleichheit, wobei eine Ungleichheit für ein true ausreicht (OR).
Also bei deinem Beispiel gibt A$ != B$ true zurück, A$ !== B$ auch (Typ zwar gleich, aber Wert nicht).
Falsch. (bzw. hatte ich das vorher anders interpretiert, aber ich lass mein tolles Beispiel mal stehen)
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php
$a = "5";
$b = 5;
if (!$a!=$b)
print "$a(String)!=$b(Integer) = FALSE \n";
if ($a!==$b)
print "$a(String)!==$b(Integer) = TRUE \n";
$a = "5";
$b = "6";
if ($a!=$b)
print "$a(String)!=$b(String) = TRUE \n";
if ($a!==$b)
print "$a(String)!==$b(String) = TRUE \n";
?>
|
nyuuu
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Matt« (2. Januar 2008, 20:59)
Warum deklarierst du die Variablen z. B. in Zeile 7 ausdrücklich mit (String) und (Integer)?
Was bewirkt das in dem Kontext?
Warum fügst du die Linebreaks ein?
Was bewirkt das in dem Kontext?
Warum fügst du die Linebreaks ein?
Wer mit dem Strom schwimmt, wird ganz schön den Bach runter geh´n... "M. F. H"
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cybermaxtc« (3. Januar 2008, 01:19)
Zitat
Original von cybermaxtc
Warum deklarierst du die Variablen z. B. in Zeile 7 ausdrücklich mit (String) und (Integer)?
Was bewirkt das in dem Kontext?
Warum fügst du die Linebreaks ein?
![]()
in zeile 7 gibt er lediglich aus, dass $a ein string und $b ein integer ist.
die wahren deklarationen passieren in zeile 3 und 4 bzw. in den zeilen 12 und 13.
line breaks dienen der übersichtlichkeit im quellcode.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Zitat
Original von Skittles
ist ein kleiner fehler drin, entweder müssten $a und $b escaped werden oder das ganze mit ' ausgegeben werden.
ich denke dass das absicht von matt ist. deshalb ja auch die typen danach geschrieben.
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Nachtrag:
Ab PHP 5 wird mit === geprüft ob zwei Variablen das gleiche Objekt enthalten, im Ggs. zu PHP 4 das die Eigenschaften von zwei Objekten vergleicht und true zurückliefert, wenn beide Objekte Instanzen der selben Klasse sind.
Das Verhalten der beiden Versionen ist insofern unterschiedlich, dass zwei verschiedene Objekte des gleichen Typs die gleichen Eigenschaften aufweisen können und somit in PHP 4 äquivalent wären.
In PHP 5 indessen würden sie nicht übereinstimmen.
Das Verhalten der beiden Versionen ist insofern unterschiedlich, dass zwei verschiedene Objekte des gleichen Typs die gleichen Eigenschaften aufweisen können und somit in PHP 4 äquivalent wären.
In PHP 5 indessen würden sie nicht übereinstimmen.
Wer mit dem Strom schwimmt, wird ganz schön den Bach runter geh´n... "M. F. H"


