webForumDet fria alternativet

fel på ifsats?

PHPur PHP

4 svar · 255 visningar · startad av Prime_66

Prime_66Medlem sedan aug. 2004290 inlägg
#1

Vet inte vad felet är här..if-satsen fungerar med enbart det första villkoret, men inte när jag lägger till det andra (ifrån "or"). Det funkar även när jag enbart kör det andra villkoret. Är det något fel i syntaxen?

$filtype1 = explode(".",$_FILES['file1']['name']);
	$elemetsinarray=count($filtype1)-1;
		if ($filtype1[$elemetsinarray]!="MP3" || $filtype1[$elemetsinarray]!="mp3"){
		$error = "Du har valt en fil i felaktigt format. Mp3-filer är det enda som accepteras."; 
		header('location:laddaupp4.php?error='.$error.''); break;
		}
UlfTMedlem sedan maj 20018 027 inlägg
#2

Pröva att lägga till några parenteser runt delvillkoren, så att du verkligen vet vad if-satsen testar.

Prime_66Medlem sedan aug. 2004290 inlägg
#3

testade:


if (($filtype1[$elemetsinarray]!="MP3") || ($filtype1[$elemetsinarray]!="mp3")){
		$error = "Du har valt en fil i felaktigt format. Mp3-filer äwr det enda som accepteras."; 
		header('location:laddaupp4.php?error='.$error.''); break;
		}

Men funkade inte :/

UlfTMedlem sedan maj 20018 027 inlägg
#4

Nu ser jag vad du har gjort för fel; om filsuffixet är "MP3", då kommer ju det första villkoret bli falskt. Men eftersom du har ditt "or"-villkor, testar den även det andra villkoret. Och där faller det ut annorlunda, eftersom filsuffixet faktiskt inte är ="mp3". Alltså kommer du alltid få resultatet att filsuffixet är fel.

Du borde snarare testa:

if ((suffix=="mp3") || (suffix=="MP3"))
{
}
else
{
klaga på filformat;
}
Prime_66Medlem sedan aug. 2004290 inlägg
#5

Ahh...typiskt. Du har så rätt. thanx :OO

128 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)