2017-06-27 9 views
0

ここでいくつかの調査を行っていますが、この問題は配列と関連があるようです。フォームのデータが渡されたかどうかを確認するために、このコードスニペットを使用しています。それがない場合は、URLからデータを取得して同じことを行うことができます。

ほとんどの場合、フォームデータは渡されますが、リンクではこのルートに移動する必要があります。

if(!$season['sid']){ 
    $season['sid']=mysqli_real_escape_string($connection, $_GET["series"]); 
} 
if(!$season['id']){ 
    $season['id']=mysqli_real_escape_string($connection, $_GET["season"]); 
} 
if(!$team['id']){ 
    $team['id']=mysqli_real_escape_string($connection, $_GET["team"]); 
} 
$check=mysqli_query($connection, "SELECT uid FROM series WHERE id='".mysqli_real_escape_string($connection, $season['sid'])."'"); 
$check=mysqli_fetch_array($check); 

if($check['uid'] <> $_COOKIE['tid']){ 
error("You do not have permission to manage this series."); 
} 

エラーが発生しています。私には許可がありません。フォームを介してデータを渡すと問題はありません。私はこの質問は、より良い私はフィードバックに開いています作ることができますどのような方法がある場合ここで

は私のerror_logには、ダンプデータ..

[27-Jun-2017 21:06:00 UTC] PHP Warning: Illegal string offset 'sid' in /home/*/public_html/seriesmanager.php on line 876 
[27-Jun-2017 21:06:00 UTC] PHP Warning: Illegal string offset 'id' in /home/*/public_html/seriesmanager.php on line 879 
[27-Jun-2017 21:06:00 UTC] PHP Warning: Illegal string offset 'id' in /home/*/public_html/seriesmanager.php on line 882 
[27-Jun-2017 21:06:00 UTC] PHP Warning: Illegal string offset 'sid' in /home/*/public_html/seriesmanager.php on line 885 

です。 ありがとうございました!

if(!isset($season['sid'])){ 
    $season['sid']=mysqli_real_escape_string($connection, $_GET["series"]); 
} 
if(!isset($season['id'])){ 
    $season['id']=mysqli_real_escape_string($connection, $_GET["season"]); 
} 
if(!isset($team['id'])){ 
    $team['id']=mysqli_real_escape_string($connection, $_GET["team"]); 
} 

そして解除警告にさよならを言う:あなたのコードは次のようになりISSETを使用して

+0

これは、 'isset()'が使われているものです。 –

+0

'$ season ['sid']'を2回エスケープすると、予期しない結果が発生する可能性があります。 – rtfm

+0

不正な文字列オフセットは通常、文字列変数のようなものを配列として使用しようとしています。 '' $ season''と '' $ team''は配列ですか? – georaldc

答えて

関連する問題