• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variable Problem

Status
Für weitere Antworten geschlossen.

Raider

Neues Mitglied
Hi

Access.php
Code:
	$sex = $_GET['geschlecht'];
	$name = $_GET['name'];
	if ($sex != "Herr" OR $sex != "Frau") {
		$fehler = "set";
	}
	if ($name = "" OR !isset($name)) {
		$fehler = "set";
	}

start.php
Code:
<?php 
	include("access.php");
           if (!isset($fehler)) {
               do sth.
           }
           else {
                do sth. different;
                unset($fehler);
           }
Also irgendwie ist bei mir die Variable $fehler immer gesetzt. Woran liegt das?
 
Morgen,

da is ein kleiner gemeiner Fehler drin.
Code:
if ($name [COLOR=Red][B]=[/B][/COLOR] "" OR !isset($name)) {
Da muss ein == hin, der Vergleichsoperator.
Schließlich ist = ein Zuweisungs-Operator und wird hier wohl seine Funktion erfüllen, somit also immer WAHR sein.

Gruß
Voodoo
 
PHP:
if ($name = "" OR !isset($name)) {

Da du hier einen Vergleichsoperator nutzt, musst du hier ein doppeltes = benutzen:

PHP:
if ($name == "" OR !isset($name)) {

MfG Icy

Edit: Voodoo war schneller :)
 
yep ... das war ne kleine unaufmerksamkeit von mir aber die variable wird nach wie vor immer gesetzt.

ihr könnt es ja sonst auch mal ausprobieren:
Code:
<?php 
	$sex = $_GET['geschlecht'];
	$name = $_GET['name'];
	if ($sex != "Herr" OR $sex != "Frau") {
		$fehler = "set";
	}
	if ($name == "" OR !isset($name)) {
		$fehler = "set";
	}
	
	           if (!isset($fehler)) {
               echo "variable is not set";
           }
           else {
                echo "variable is set";
                unset($fehler);
           }
?>
datei.php?geschlecht=Frau&name=whatever
 
Ja,

da ist noch ein kleiner logischer Fehler.
Code:
if ($sex != "Herr" OR $sex != "Frau") {
Da gehört ein AND hin.
Denn:
Ist $sex = "Herr", dann ist zwar der erste teil FALSE, der zweite allerdings TRUE.
Somit wird $fehler immer gesetzt.

Gruß
Voodoo
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben