if( isset( $_GET[ 'filter' ] ) || $_GET[ 'filter' ] != '' ){
Testa att byta mot:
if( isset( $_GET[ 'filter' ] ) && $_GET[ 'filter' ] != '' ){
4 svar · 218 visningar · startad av mhedda
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);
}
if( isset( $_GET[ 'filter' ] ) || $_GET[ 'filter' ] != '' ){
Testa att byta mot:
if( isset( $_GET[ 'filter' ] ) && $_GET[ 'filter' ] != '' ){
Tack SPiN för det supersnabba svaret,
som dessutom funkar klockrent.
Super bra forum det här.
MedMycketVänligaHälsningar
<hint> Acceptera gärna svaret som slutgiltigt svar. :) </hint>
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.