2012-03-14 26 views
1
単にレジスタページ

未定義のインデックスは、登録ページ

Undefined index: invite 

に入る。しかし一方で、私はこのエラーを取得しています

でエラー「招待する」私は

url?invite=2000 this error is not shown... 

以下の2行目と同じページを入力したときコードにエラーが表示されます。

$mySess = JFactory::getSession();  
    $_SESSION['fromid'] = $_GET['invite']; 
    $fromid = $_SESSION['fromid']; 

どのように私はそのURLで使用されていない場合は、 '招待]を初期化することができます...

+0

[$ _GET変数PHP](http://www.google.hu/search?sclient=psy-ab&hl=hu&site=&source=hp&q=PHP+%24_GET + Variable&btnG = Keres%C3%A9s) – Filkor

答えて

4

そうのように、isset機能を使用します。

$mySess = JFactory::getSession();  
$_SESSION['fromid'] = isset($_GET['invite']) ? $_GET['invite'] : ''; 
$fromid = $_SESSION['fromid']; 
1

これは基本的にマットのソリューションですが、なし複合体if-then-else-略語。

$mySess = JFactory::getSession();  

// this value will be used if you did not pass the parameter invite to your script 
$inviteDefaultValue = -1; 

// isset checks if the variable exists. 
// you can also use array_key_exists("invite", $_GET) 
if (isset($_GET['invite'])) 
{ 
    // $_GET['invite'] is set, so we can use it 
    $_SESSION['fromid'] = $_GET['invite']); 
} 
else 
{ 
    // $_GET['invite'] is not set, so use your default value here 
    $_SESSION['fromid'] = $inviteDefaultValue; 
} 

$fromid = $_SESSION['fromid']; 

http://php.net/manual/en/function.isset.php

http://php.net/manual/en/function.array-key-exists.php

+1

おそらく、私は複雑ではないでしょう。 :)それにもかかわらず、可能な解決策にうってつけ。 –

+1

私は、 'isset'について知らないユーザーは、条件の短縮形についても知りません。確かに傷つけることはできない! :-p – Basti