![]() |
PHP und logische Verknüpfungen
Also entweder es ist bereits zu spät oder ich vollgepumpt mit Koffein... Ich habe 3 Variablen in PHP: $accept1, $accept2 und $accept3. Die Werte stammen aus einem Webformular, unt können entweder "ok" wenn markiert, oder nichts, wenn leer enthalten...
Ich überprüfe die 3 Variablen mittels
Code:
Ich erwarte eigentlich, daß $accept nur dann TRUE enthält, wenn alle 3 Variablen den Wert "ok" enthalten.
$accept = ($accept1 == "ok" and $accept2 == "ok") and ($accept3 == "ok") ;
Dem ist aber nicht so. Wenn $accept leer ist, enthält $accept trotzdem TRUE, obwohl nur Bedingung 1 und 2 erfüllt sind.
Code:
liefert mir
echo "1: $accept1
2: $accept2 3: $accept3 " ; $accept = ($accept1 == "ok" and $accept2 == "ok") and ($accept3 == "ok") ; echo "$accept " ;
Code:
Also ich bin immer wieder vom PHP Verhalten überrascht. Kein Wunder daß ich PHP wenns nur geht versuch zu meiden.
1: ok
2: ok 3: 1 Was mach ich denn falsch? |
Re: PHP und logische Verknüpfungen
wie werden denn die Werte dem Skript übergeben?
|
Re: PHP und logische Verknüpfungen
setze mal die Klammern richtig.
Ich denke mal, dass du die erste Klammer und die 2. rechnest. PHP ist ja irgendwo nur eine nicht typsichere Scriptsprache. ;) |
Re: PHP und logische Verknüpfungen
Jede einzelne Variable belege ich mit
$accept1 = $_POST["accept1"] ; Die einzelnen Variablen haben ja auch den richtigen Wert. Das mit den Klammern hab ich auch schon versucht ganz wegzulassen, ohne Änderung. Also bei nur AND Verknüpfungen ist die Klammersetzung im Prinzip ja mal sowas von schnuppe. |
Re: PHP und logische Verknüpfungen
Bei mir funktionierts:
Code:
<?php
$accept1 = "ok"; $accept2 = "k"; $accept3 = "ok"; $accept = (($accept1 == "ok") and ($accept2 == "ok") and ($accept3 == "ok")); echo $accept; ?> |
Re: PHP und logische Verknüpfungen
:wall: Das ist doch echt zum Haareraufen... Ersetz ich das and durch &&, was angeblich laut meinem Buch genau dasselbe bewirkt, klappts.
Ich glaub mein Bandwurm jodelt. ![]() |
Re: PHP und logische Verknüpfungen
Zitat:
|
Re: PHP und logische Verknüpfungen
Code:
Gibt nichts aus. Bei mir funktioniert alles.
<?php
$accept1 = "ok"; $accept2 = ""; $accept3 = "ok"; $accept = (($accept1 == "ok") and ($accept2 == "ok") and ($accept3 == "ok")); echo $accept; ?> (PHP 4.3.10) |
Re: PHP und logische Verknüpfungen
Zitat:
Setz mal
Code:
Das ist die Kombination die mir Probleme machte... Also mittlerweilen bin ich von einem Bug in PHP überzeugt.
$accept1="ok";
$accept2="ok"; $accept3="" ; |
Re: PHP und logische Verknüpfungen
funktioniert ebenfalls. :lol:
|
Re: PHP und logische Verknüpfungen
Zitat:
Ich blicks nicht. |
Re: PHP und logische Verknüpfungen
Läuft bei dir PHP als CGI oder als DLL?
Hast du auch keine Tippfehler drin? Zitat:
|
Re: PHP und logische Verknüpfungen
Zitat:
Tippfehler schließ ich wirklich aus, habs tausend mal probiert. das Ulkige ist ja, daß es mit && als Operator klappt, mit AND nicht? |
Re: PHP und logische Verknüpfungen
Code:
Zeigt er auch die richtige Version an?
<?php phpinfo(); ?>
PS: Die Verknüpfungen kann man in der php.ini definieren. Zum testen ist die CGI-Version besser da man nichts in den Systemordner kopieren muß. |
Re: PHP und logische Verknüpfungen
Meine PHP Version ist PHP Version 4.3.3RC1, unter Apache 2.0.
Naja... ich dank dir für deine Mühe. Mit && klappts ja. Ich kenn mich mit PHP einfach nicht genug aus, um da tiefer einzublicken... Ich brauch mal ne Mütze Schlaf... :mrgreen: |
Re: PHP und logische Verknüpfungen
oh gleich 3 uhr, naja zeit wirds :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 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