1

Тема: Вибиває помилку

Привіт! По трішки допрацьовую скрипт браузерки. Змінив компютер! Коли я запустив скрипт у мене видало кучу помилок! На попередньому чомусь їх не видавало! Ось декілька з них:
(Допоможіть розібратися чому вони вибивають)
При переході на сторінку include/mapa.php?looc  в якій знаходиться код php:

<?php  
session_start();  

mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");   
include_once ("cone.php"); 
 
if (!empty($_SESSION['login'])){}else{header("Location: ../index.php");} //Дивимося логін в сесії, якщо немає то перенаправляємо

$_GET['NickName'] = $_SESSION['login'];  
$aNickName = $_GET['NickName'];  

$_GET['looc'] = $aRow["location"];  

if(isset($_GET[loc])){ // функціонал переходу по локаціям (збереження останього переміщеня гравця)
$loc_user = $_GET[loc]; 
$query = "UPDATE users SET location=$loc_user WHERE id_user=$id_user";     
mysql_query($query);   
$sqt = mysql_query("UPDATE users SET location = '".mysql_real_escape_string($_GET['loc'])."' WHERE login='$aNickName' ");
}                   

$queryqest = "SELECT * FROM qest WHERE login='$aNickName'";  
$resultqest = mysql_query($queryqest) or die("Query failed : " . mysql_error());  
$aRowqest = mysql_fetch_array( $resultqest);  
$anameqest = $aRowqest["name"]; 
$aloginqest = $aRowqest["login"];
$aitemqest = $aRowqest["item"];
$aitem2qest = $aRowqest["item2"];
$aitem3qest = $aRowqest["item3"];
$aitem4qest = $aRowqest["item4"];
$aitem5qest = $aRowqest["item5"];
$aitem6qest = $aRowqest["item6"];
$astatusqes = $aRowqest["status"];

$query = "SELECT * FROM users WHERE login='$aNickName'";  
$result = mysql_query($query) or die("Query failed : " . mysql_error());  
$aRow = mysql_fetch_array( $result);  
$alogin = $aRow["login"]; // виносимо login гравця
$loc_user = $aRow["location"]; // остання локація на якій був персонаж
$aStrength = $aRow["Character_Strength"]; //сила персонажа
$adef = $aRow["def"]; 
$aspeed = $aRow["speed"]; 
$aExperience = $aRow["Character_Experience"]; //опыт
$aEndurance = $aRow["Character_Endurance"]; //Выносливость
$aAccuracy = $aRow["Character_Accuracy"]; //Точность перса
$aDexterity = $aRow["Character_Dexterity"]; //Ловкость перса 
$aCharLevel = $aRow["Character_Level"]; // рівень гравця
$aMoney = $aRow["Character_Money"]; //гроші
$aEuro = $aRow["Character_Euro"];  // золоті монети
$ateder = $aRow["Character_teder"]; //ничьих
$ano_teder = $aRow["Character_no_teder"]; //програші
$ayes_teder = $aRow["Character_yes_teder"]; //виграші
$asex = $aRow["sex"]; //стать
$ainf = $aRow["inf"]; //информация
$aEV = $aRow["EV"]; //очки EV
$aintelekt = $aRow["intelekt"]; //інтелект персонажа
$aHP = $aRow["HP"]; // Уровень життя
$amaxHP = $aRow["maxHP"]; // Максимальний рівень життя
$aminHP = $aRow["minHP"]; //Мінімальний рівень життя
$battlezayavka = $aRow ["battlezayavka"]; // дивимося чи відправляли гравцю заявку на бій?!
$aloveHP = $aRow["loveHP"]; //знаки возвращениа в бою
$abotgo = $aRow["botgo"]; //готовий гравець к битві з ботом який нападає? так - боту буде нападати, ні - бот не буде нападати

$query1 = "SELECT * FROM battle WHERE status='1'";  // виносимо все що є в цій таблиці з статусом 1
$ult = mysql_query($query1) or die("Query failed : " . mysql_error());  
$aYew = mysql_fetch_array( $ult);  
$abattle_id = $aYew["battle_id"]; // индикатор боя
$auser1_id = $aYew["user1_id"];  // нік одного гравця
$auser2_id = $aYew["user2_id"]; // нік другого гравця
$abattlgo = $aYew["battlgo"]; // зробив хід гравець один ???
$abattlgo2 = $aYew["battlgo2"];  // зробив хід гравець два ???
$astatus = $aYew["status"];  // статус боя. (1- бій все ще іде) (2-бій закінчений)


$quer= "SELECT * FROM location WHERE id=$loc_user";   
$sql = mysql_query($quer);   
$row = mysql_fetch_array($sql);   
$id_loc = $row['id'];// виносимо id 1 локации  
$code = $row['code'];
$locimg = $row['img'];


if (isset($_POST['napast'])) { // якщо на гравця напали то ми записуєм дані  в таблицю battle
$a2NickName = $_POST['napast']; 
$query = mysql_query ("INSERT INTO battle(`user1_id`,`user2_id`) VALUES ('$aNickName','$a2NickName')") or die (mysql_error());
} 

if (!empty($_POST['napastbot'])){
    $anapastbot = $_POST['napastbot'];
    $queryUPDATEusers = mysql_query("UPDATE users SET botgo=$anapastbot WHERE login='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
}else{}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html style="margin: 0pt; padding: 0pt; height: 100%;" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><<<Игровой мир>>></title>
  <link rel="stylesheet" href="../css/mapa.css" type="text/css">
    <link rel="icon" type="image/png" href="../images/136482.png">
<script type="text/javascript">
    setTimeout(function(){$('.box').fadeOut('fast')},5000);  //1500 = 1.5 секунд
</script>


</head>
<body style="margin: 0pt; padding: 0pt; height: 100%;">
<?php  
// нападение бота за це відповідає battleBOT.php
if ($battlezayavka  == "bot" ){
include_once ("battleBOT.php");  // там знаходиться функціонал битви
}
else
{

if ( $auser2_id == $aNickName or $auser1_id == $aNickName ) { // якщо в таблиці battle в полях user1_id або user2_id знаходиться логін гравця то направляємо його на бій
include_once ("battle.php");  // там знаходиться функціонал битви
 } 
 else {
 
 if ($abotgo == "2") {
 $chance=rand(1,7); 
if($chance==2) 
{ 
if ($aHP > 0) {
 $queryUPDATEusers = mysql_query("UPDATE users SET battlezayavka='bot' WHERE login='$aNickName' ")  or die("Савсэм плохо: " . mysql_error());
header("Location: mapa.php");
} else {echo "<table bgcolor=red><tr><td><br>У вас нет HP сходите к врачу!</td></tr></table>";}
}
}

echo "<div class='panel'><center>Панель</center>
     <img src='../images/1fy7.jpg' style=' height: 20px; width: 20px;  ' > <input type='text' value='".$aEuro." монет'>;
     <img src='../images/clp705069.jpg' style=' height: 20px; width: 20px;  '> <input type='text' value='".$aMoney." монет'>;     
     <img src='../images/loveHP.jpg' style=' height: 20px; width: 20px;  '> <input type='text' value='".$aloveHP." знаков'>;
     <b>XP</b> <input type='text' value='".$aExperience." опыта'>;

</div><br><center>"; 

echo $row['name'];   
echo "<img src='../images/loc/".$locimg."' style='
height: 350px; 
width: 450px; 
float:left;      
 -moz-border-radius: 30px; 
 -webkit-border-radius: 30px;
 -khtml-border-radius:30px; 
 border-radius: 30px 30px  30px 30px;
 ' >";
 
echo "<br>".$row['opes']."</center>";  
echo "<center>";  
echo eval ($code);
echo "</center>"; 


if (isset($_GET['end'])) { 
$sqtfsa = mysql_query("UPDATE users SET battlezayavka = 'no' WHERE login='$aNickName' ");
echo "<center><table border=2 style=' border-color: red green blue yellow;  border-style: ridge'>
    <tr> 
     <td>
     Вы успешно убежали с поля битви.
     </td>
    </tr>
        <tr> 
     <td>
     <center><a href='mapa.php?looc'>(Закрить)</a></center>
     </td>
    </tr>
</table></center>";
 } else {
if ($battlezayavka == "jes") { // чи подавали заявку на бій гравцю?
echo "<center><table border=2 style=' border-color: red green blue yellow;  border-style: ridge'>
    <tr> 
     <td  COLSPAN=3>
       На вас напали! Что вы будете делать?
     </td>
    </tr>
    <tr> 
     <td>
      <a href='mapa.php?looc'>Сразиться</a>
      </td>
      <td>
     или
      </td>
     <td>
     <a href='mapa.php?looc&end'>Убежать</a>
     </td>
    </tr>
</table></center>";
}
else
{
if (isset($_GET['pers'])) 
{ } 
else 
{
echo "<p><i>Персонажи:</i> ";  
echo $row['persona'];  
echo $row['persona2'];  
echo $row['persona3'];  
echo $row['persona4'];
echo $row['persona5']."</p>";
echo "<p><i>Переходы:</i> ".$row['url'];  
echo $row['url2'];  
echo $row['url3'];  
echo $row['url4'];  
echo $row['url5'];  
echo $row['url6'];  
echo $row['url7']."</p>";

}
}
}
}
}
?>  

</body>
</html>
</html>

Вибивають такі помилки:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in T:\home\localhost\games\include\mapa.php on line 4

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in T:\home\localhost\games\include\mapa.php on line 4
п»ї
Notice: Undefined variable: aRow in T:\home\localhost\games\include\mapa.php on line 12

Notice: Use of undefined constant loc - assumed 'loc' in T:\home\localhost\games\include\mapa.php on line 14

2

Re: Вибиває помилку

Вибачте, а що саме незрозумілого? Тим більше, що жодної помилки тут нема - тільки попередження і зауваження.
А на попередньому, мабуть, був вимкнений вивід попереджень.

Подякували: Faraon1

3

Re: Вибиває помилку

Рекомендую автору теми взяти і прочитати повідомлення помилки. Якщо у вас погано з англійською є гугл прекладач.

Перша помилка яка у вас вистрибує наводить мене на думкущо ігрушку замість вас написав форум. Ви тільки копіпасили

Подякували: koala, Faraon, DictatoR3

4

Re: Вибиває помилку

Вибачте, а що саме незрозумілого? Тим більше, що жодної помилки тут нема - тільки попередження і зауваження.
А на попередньому, мабуть, був вимкнений вивід попереджень.

зрозуміло) скажіть будь ласка а як скрити ці попередження? знаком @ можна скрити тільки попередження в лінійках 4 та 12

Рекомендую автору теми взяти і прочитати повідомлення помилки. Якщо у вас погано з англійською є гугл прекладач.

Перша помилка яка у вас вистрибує наводить мене на думкущо ігрушку замість вас написав форум. Ви тільки копіпасили

Повідомлення попередження я перекладав! Якщо я і копіпастив код то спочатку я в ньому розбирався щобзнати що він робить!

5 Востаннє редагувалося koala (27.12.2013 15:20:15)

Re: Вибиває помилку

Faraon написав:

скажіть будь ласка а як скрити ці попередження? знаком @ можна скрити тільки попередження в лінійках 4 та 12

А ви їх не приховуйте, а виправляйте. А то знову Windows вийде.

Faraon написав:

Повідомлення попередження я перекладав!

І що у вас виходило?

Спробуйте хоч якось продемонструвати, що зрозуміли, що вам пише компілятор. Бо зараз виглядає, як писав пан funivan - що ви просто копіпастите без обробки, і це не образа, зрозумійте. Ми хочемо, щоб у вас виходило краще, і тому і вказуємо на ваші помилки.

Подякували: miroslav.chandler1

6

Re: Вибиває помилку

Access denied for user 'ODBC'@'localhost'

Опишіть яку інформацію ви винесли з цієї помилки, а саме:
Що це означає? - можна своїми словами
І що необхідно зробити що б цього не було. (підказка - символ собачка не варто використовувати ВЗАГАЛІ)

Чекаємо вашої відповіді ;)

Подякували: miroslav.chandler, koala2

7

Re: Вибиває помилку

Я пропоную після виходу мега гри Фараона, написати credits усіх активних учасників форуму) це буде справедливо

8 Востаннє редагувалося Faraon (28.12.2013 18:51:54)

Re: Вибиває помилку

Пробачте що скорше не відписав!
Наприклад попередження рядка 14 перекладаєтбся:
Примітка: Використання невизначеною постійної lос - передбачається "lос" в Т: \ будинок \ локальний \ гри \ включати \ mapa.php в рядку 14
Ну якщо я не помиляюся то це означає що $_GET[loc] не має стабільного значення. Це спричинене тому що користувач переходить по локаціям тим самим змінює значення гет запросу! Так?  Ось в цьому і полягає попередження. Так як я не бачу тут нічого небезпечного мені б хотілося скрити це попередження або виправити але я не знаю як. Я не бачу нічого в цьому небезпечного тому що в цьому і полягає суть ігри щоб користувач змінював значення гет запросу тим самим робив переходи по локаціям!

9

Re: Вибиває помилку

Faraon написав:

Примітка: Використання невизначеною постійної lос - передбачається "lос" в Т: \ будинок \ локальний \ гри \ включати \ mapa.php в рядку 14

(c) Google Translator

Подякували: Faraon2

10

Re: Вибиває помилку

Faraon написав:

Пробачте що скорше не відписав!
Наприклад попередження рядка 14 перекладаєтбся:
Примітка: Використання невизначеною постійної lос - передбачається "lос" в Т: \ будинок \ локальний \ гри \ включати \ mapa.php в рядку 14
Ну якщо я не помиляюся то це означає що $_GET[loc] не має стабільного значення. Це спричинене тому що користувач переходить по локаціям тим самим змінює значення гет запросу! Так?  Ось в цьому і полягає попередження. Так як я не бачу тут нічого небезпечного мені б хотілося скрити це попередження або виправити але я не знаю як. Я не бачу нічого в цьому небезпечного тому що в цьому і полягає суть ігри щоб користувач змінював значення гет запросу тим самим робив переходи по локаціям!

Ні. PHP нічого не знає ані про користувачів, ані про локації - тільки про змінні, сталі і інші елементи мови. Всі змінні в php позначаються $ідентифікаторами, сталі - просто ідентифікаторами. Вам же компілятор пише, що ви не визначили сталої loc, тому він навмання вирішив, що ви мали на увазі "loc", в лапках. Або поставте лапки, або визначить таку сталу, або взагалі виправте цей рядок на те, що вам треба.

Подякували: Faraon1

11

Re: Вибиває помилку

Фараон, Ви можете сказати чим відрізняється $_GET[loc] від $_GET['loc'] ???

Подякували: Faraon1

12

Re: Вибиває помилку

Дякую koala!

Фараон, Ви можете сказати чим відрізняється $_GET[loc] від $_GET['loc'] ???

Ні не можу!

13

Re: Вибиває помилку

Ні не можу!

В першу чергу рекомендую вам зрозуміти що це і чим відрізняється.
Це є фактично є основи програмування на php і без цих знань неможливо рухатись далі.
Почніть вивчати PHP
Ось корисні посилання:
http://www.codecademy.com/
http://www.php.net/manual/ru/

Подякували: Chemist-i, Faraon2