webForumDet fria alternativet

$_GET undefined index

4 svar · 216 visningar · startad av mhedda

mheddaMedlem sedan feb. 2000385 inlägg
#1

Hejsan jag blir tokig på detta det är sökert något simpelt men vad är det för fel??
Jag får detta felmeddelande som så många gånger förr.
Jag kollar ju om den är satt och inte är tom line 23 är

			if( isset( $_GET[ 'filter' ] ) || $_GET[ 'filter' ] != '' ){
					$filter=$_GET[ 'filter' ];		
				
					if($filter=="com"){

-------------------------------------------------------------------------

Notice: Undefined index: filter in C:\Inetpub\testet\admin_test_1.php on line 23

--------------------------------------------------------------------------


MVH
			if( isset( $_GET[ 'filter' ] ) || $_GET[ 'filter' ] != '' ){
					$filter=$_GET[ 'filter' ];		
				
					if($filter=="com"){
					$checkUserSQL = "SELECT* from tbl_preview WHERE stat='2' AND commerce='1'";
					$userRow = odbc_do($conn, $checkUserSQL);
					}
					elseif($filter=="nocom"){
					$checkUserSQL = "SELECT* from tbl_preview WHERE stat='2' AND commerce='0'";
					$userRow = odbc_do($conn, $checkUserSQL);
					}
					elseif($filter=="all"){
					$checkUserSQL = "SELECT* from tbl_preview WHERE stat='2'";
					$userRow = odbc_do($conn, $checkUserSQL);
					}
			}
			else{
			$checkUserSQL = "SELECT* from tbl_preview WHERE stat='2'";
			$userRow = odbc_do($conn, $checkUserSQL);
			}
SPiNMedlem sedan mars 20005 832 inlägg
#2
if( isset( $_GET[ 'filter' ] ) || $_GET[ 'filter' ] != '' ){

Testa att byta mot:

if( isset( $_GET[ 'filter' ] ) && $_GET[ 'filter' ] != '' ){
mheddaMedlem sedan feb. 2000385 inlägg
#3

Tack SPiN för det supersnabba svaret,
som dessutom funkar klockrent.
Super bra forum det här.

MedMycketVänligaHälsningar

Nexus86Medlem sedan okt. 20022 683 inlägg
#4

<hint> Acceptera gärna svaret som slutgiltigt svar. :) </hint>

SPiNMedlem sedan mars 20005 832 inlägg
#5

NP. :)

Jag kanske ska förklara varför det fungerar också... Och inte bara lägga in en liten kodbit.

Saken är att om du använder || ( Eller ) så räcker det ju med att ett av uttrycken är sant för att komma in i if-blocket. Det gör, att om isset()-uttrycken blir falskt - så "känner inte PHP av" att kontrollen är gjord utan försöker evaluera nästa uttryck också. Eftersom att då index:et inte finns ( isset() koms inte ihåg ) får du din notis. Använder du däremot && ( Och ) och första uttrycket blir falskt, så körs aldrig det andra uttrycket eftersom att hela if-uttrycket ( Både isset() och != "" ) aldrig kan bli sant. Alltså klarar man sig då ifrån sin notis. Hade du däremot vänt på dem:

if( $var != "" && isset( $var ) )

Då hade du fått en notis ändå, eftersom att isset() körs som andra uttryck.

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb