всем привет!помогите пожалуйста.кароче создал свой сервер бф 2 с ведением статистики игры и столкнулся с проблемами в скриптах файлов php.где было легче яи сам исправил но вот с данной ошибкой не могу разобратся что к чему.
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\bf2statistics\player.php on line 404
в этом месте должна стоять таблица с изображениями рисунков открытых либо закрытых анлоков оружия.
в програмировании я не оч мало что понимаю.как можно исправить это?
изображение 1 с ошибкой
изображение 2 как должно выглядеть
тут кусок где ошибка ,но залил и целый файл player.php:
... $award_name = $data['award'];
if( $data['type'] == '1' )
{
// badges
$award_name .= "_" . $data['level'];
$badges .= '<img height="96" width="96" src="' . $resources_dir . '/graphics/awards/badges/' . $award_name . '.png" alt="<big><big><big>' . $stats->awardsKey[$award_name]['name'] . '</big></big></big>
' . str_replace(array("\n",'"'),'',nl2br($stats->awardsKey[$award_name]['desc'])) . '"> ' . "\n\t";
} else if( $data['type'] == '2' ) {
// medals
$medals .= '<img height="96" width="96" src="' . $resources_dir . '/graphics/awards/medals/' . $award_name . '.png" alt="<big><big><big>' . $stats->awardsKey[$award_name]['name'] . ' x ' . $data['level'] . '</big></big></big>
' . str_replace(array("\n",'"'),'',nl2br($stats->awardsKey[$award_name]['desc'])) . '"> ' . "\n\t";
} else if( $data['type'] == '3' ) {
// ribbons
$ribbons .= '<img height="96" width="96" src="' . $resources_dir . '/graphics/awards/ribbons/' . $award_name . '.png" alt="<big><big><big>' . $stats->awardsKey[$award_name]['name'] . '</big></big></big>
' . str_replace(array("\n",'"'),'',nl2br($stats->awardsKey[$award_name]['desc'])) . '"> ' . "\n\t";
}
}
?>
<tr>
<td align="center"><b>Badges</b></td>
<td align="left"><?php echo $badges; ?></td>
</tr>
<tr>
<td align="center"><b>Medals</b></td>
<td align="left"><?php echo $medals; ?></td>
</tr>
<tr>
<td align="center"><b>Ribbons</b></td>
<td align="left"><?php echo $ribbons; ?></td>
</tr>
</table>
<?php } else { ?>
<table border="0" cellspacing="0" cellpadding="0" class="awards">
<tr>
<td align="center" style="background-color: #3f3f3f" colspan="2"><b>Awards</b></td>
</tr>
<tr>
<td align="center">Badges, Medals, Ribbons</td>
<td align="center">None yet. Get on that soldier!</td>
</tr>
</table>
<?php } ?>
<? include("unlocks.php"); ?>
<table border="0" cellspacing="0" cellpadding="0" class="awards">
<tr>
<td align="center" style="background-color: #3f3f3f"><b>Unlocks</b></td>
</tr>
<tr>
<td>
404 <?php foreach($weaponIsUnlocked as $number => $Unlocked){ ?>
<img src="<?php echo $resources_dir; ?>/graphics/unlocks/<? echo $number ?>_<? echo $unlocked ?>.png" alt="<? echo $weaponDesc[$number] ?>" align="left">
<? } ?>
</td>
</tr>
</table>
</div>
<?php }} else { ?>
<div align="center">
<b>Error:</b> <?php echo $stats->error; ?>
Could not load stats for PID "<?php echo $_GET['pid']; ?>"
<input type="button" value="Back" onclick="history.back();">
</div>
<hr width="600">
<?php } ?>
<?php require('footer.php'); ?>
Warning: Invalid argument supplied for foreach()
Косяк здесь include("unlocks.php"); $weaponIsUnlocked скорее всего отсутствует..
$Unlocked и $unlocked - интпретатор посчитает за разные переменные..
$Unlocked и $unlocked - интпретатор посчитает за разные переменные..
[syntax=Delphi] [/syntax]
Duncon писал(а):Косяк здесь include("unlocks.php"); $weaponIsUnlocked скорее всего отсутствует..
$Unlocked и $unlocked - интпретатор посчитает за разные переменные..
а почему косяк? такой файл существует и они взаимосвязанны потому как файл плайер.пхп связан с ним - оттуда берётся инфа об анлоках,тока чёта гдета криво стоит.
вот файл анлокс.пхп:
Код: Выделить всё
<?
ini_set(user_agent,"GameSpyHTTP/1.0");
// usefull info
// http://bf2.fun-o-matic.org/index.php/Main_Page
function toZeroOrOne($char) {
if($char == "s") {
return 1;
} else {
return 0;
}
}
function getData($url) { // get data from a URL using either file() or CURL
if( function_exists('file') && function_exists('fopen')) { // try file() first
$raw = @file($url);
}
if( !$raw ) { // either there was no function, or it failed -- try curl
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 10);
$raw = curl_exec($curl_handle);
$err = curl_error($curl_handle);
if( $err != '' ) {
return false;
}
$raw = explode("\n",trim($raw));
curl_close($curl_handle);
}
if( !$raw ) // still nothing, forgetd a'bout it
return false;
// trim it up!
@array_walk($raw, 'file_trim');
return $raw;
}
$currentWeaponNumber = array('11','22','33','44','55','66','77' ,'88','99','111','222','333','444','555');
if(is_numeric($_GET['pid'])) {
$url = $asp.'/getunlocksinfo.aspx?pid=' . $_GET['pid'];
} else {
$url = $asp.'/getunlocksinfo.aspx?nick=' . $_GET['pid'];
}
// Get Unlocks info
$data = getData($url);
// Set array as empty
$weaponIsUnlocked = array();
foreach($currentWeaponNumber as $weapon) {
$weaponIsUnlocked[$weapon] = 0;
}
//changed to go through the array instead of counting up form 1 to 14
foreach ($data as $line) {
$values = explode("\t",$line);
if (trim($values[0]) == 'D' && in_array(trim($values[1]), $currentWeaponNumber)) {
$weaponIsUnlocked[trim($values[1])] = toZeroOrOne(trim($values[2]));
}
}
// array maken met als elementen strings die een korte beschrijving van het wapen geven
$weaponDesc = array('11'=>"
<big><big><big>DAO-12</big></big></big>
<i>
Anti-tank</i>
<img src=$resources_dir/graphics/unlocks/dao.png>
",
'22'=>"
<big><big><big>G3</big></big></big>
<i>
Assault</i>
<img src=$resources_dir/graphics/unlocks/G3A3.png>
",
'33'=>"
<big><big><big>MK3A1</big></big></big>
<i>
Engineer</i>
<img src=$resources_dir/graphics/unlocks/Jackh.png>
",
'44'=>"
<big><big><big>L85A1</big></big></big>
<i>
Medic</i>
<img src=$resources_dir/graphics/unlocks/sa80.png>
",
'55'=>"
<big><big><big>G36C</big></big></big>
<i>
Spec-ops</i>
<img src=$resources_dir/graphics/unlocks/g36c.png>
",
'66'=>"
<big><big><big>PKM</big></big></big>
<i>
Support</i>
<img src=$resources_dir/graphics/unlocks/pkm.png>
",
'77'=>"
<big><big><big>M95</big></big></big>
<i>
Sniper</i>
<img src=$resources_dir/graphics/unlocks/m95.png>
",
'88'=>"
<big><big><big>FN2000</big></big></big>
<i>
Assault(SF)</i>
<img src=$resources_dir/graphics/unlocks/fn2000.png>
",
'99'=>"
<big><big><big>MP-7</big></big></big>
<i>
Engineer(SF)</i>
<img src=$resources_dir/graphics/unlocks/mp7.png>
",
'111'=>"
<big><big><big>G36E</big></big></big>
<i>
Medic(SF)</i>
<img src=$resources_dir/graphics/unlocks/g36e.png>
",
'222'=>"
<big><big><big>FN SCAR-L</big></big></big>
<i>
Spec-ops(SF)</i>
<img src=$resources_dir/graphics/unlocks/fnscarl.png>
",
'333'=>"
<big><big><big>MG36</big></big></big>
<i>
Support(SF)</i>
<img src=$resources_dir/graphics/unlocks/mg36.png>
",
'444'=>"
<big><big><big>P90</big></big></big>
<i>
Anti-tank(SF)</i>
<img src=$resources_dir/graphics/unlocks/p90.png>
",
'555'=>"
<big><big><big>L96A1</big></big></big>
<i>
Sniper(SF)</i>
<img src=$resources_dir/graphics/unlocks/l96a1.png>
");
?>
Посмотрие чем является переменная, что в ней сей час (gettype,print_r) Телепатичски сложно дебажить, я указал файл посколько в нём образуется переменная. Соответственно он тянет следующий итд..
[syntax=Delphi] [/syntax]