Пятница, 08 Ноября 2024, 10:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Help изменения значения
VipCatДата: Пятница, 27 Июля 2012, 01:07 | Сообщение # 1
PHP-MasteR
Сейчас нет на сайте
Написал php код чтоб изменить имя мне:
Принцип такой:
Вводишь Свой Ид
Вводишь новое имя

Дело в том что любой может изменить мое имя написав мой id
Как мне сделать только чтоб один игрок мог свой ид делать


Проблемы индейцев - вождя не волнуют....


Сообщение отредактировал VipCat - Пятница, 27 Июля 2012, 01:30
SektoidДата: Пятница, 27 Июля 2012, 01:39 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Сделать привязку по айпи?
Ну типа при логине в БД записывать ип и потом тупо сравнивать.
VipCatДата: Пятница, 27 Июля 2012, 02:16 | Сообщение # 3
PHP-MasteR
Сейчас нет на сайте
Опиши в php ибо я не силен пока

Добавлено (27.07.2012, 02:04)
---------------------------------------------
И лучше сделать привязку к ID

Добавлено (27.07.2012, 02:16)
---------------------------------------------
Люди хелп написал скрипт изменения имени покемона вот он:
Code
<?
include ("bd.php");
if(isset($_POST['id']))
{
     if(empty($_POST['id']) and empty($_POST['name']))
     {
         echo "<script>alert('Не все поля заполнены'); location.href='admin.php';</script>";
         exit;
     }
     else
     {
   $query = "INSERT INTO pokemon_user(id,name)";
   $query .= "Values ('".$_POST['id']."','".$_POST['name']."')";
   $result = mysql_query($query,$db) or die("Query failed : " . mysql_error());
   echo "<script>alert('Вы удачно сменили имя !');</script>";
     }
}
?>

<center>
<form action="" method="POST">
ID игрока: <input type="text" name="id"/>
<br />
Новое имя: <input type="text" name="name"/>
<br />
<input type="submit" value="Сменить имя" />
</form>
</center>

Не работает :(( Не изменят имя
Ошибка : Query failed : Duplicate entry '1' for key 'PRIMARY'


Проблемы индейцев - вождя не волнуют....


Сообщение отредактировал VipCat - Пятница, 27 Июля 2012, 02:38
maker-rusДата: Пятница, 27 Июля 2012, 02:40 | Сообщение # 4
Гений
Сейчас нет на сайте
Попробуй сделать так, в сессию добавь свой ID. Сделай одно поле с новым ником.
И просто в значение ID вставляй ID из сессии.
Code

<?php    
//Некая сессия
//Её создавать как только пользователь авторизируется
session_start();
$_SESSION["ID"] = $ID; // $ID - значение из базы
?>

а потом где идёт смена ника сделать вот это:
Code

<?php    
//Добавляем значения
$MyID = $_SESSION["ID"]; //ID из сессии
$newNikName = $_GET или $POST["nikname"]; //новый ник взятый из запроса $_POST или $_GET
$sql = mysql_query("INSERT INTO name_tablets (nikname,lastChange) VALUES IDnikname=$myID, nikname=$newnikname");
?>

код не копировать это лишь приблизительный вариант! smile


Сообщение отредактировал maker-rus - Пятница, 27 Июля 2012, 02:43
NosorogДата: Пятница, 27 Июля 2012, 02:43 | Сообщение # 5
участник
Сейчас нет на сайте
Quote (VipCat)
Дело в том что любой может изменить мое имя написав мой id

Наверняка, в сессиях хранится твой id - зачем его вводить?!
Quote (VipCat)
$query = "INSERT INTO pokemon_user(id,name)";
 $query .= "Values ('".$_POST['id']."','".$_POST['name']."')";

Кури biggrin UPDATE , а не INSERT


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 02:48 | Сообщение # 6
PHP-MasteR
Сейчас нет на сайте
Чуть почитав команды я понял что INSERT INTO это добавляет значения в базу а мне надо изменить и я переделал
Code

<?
include ("bd.php");
if(isset($_POST['id']))
{
      if(empty($_POST['id']) and empty($_POST['name']))
      {
          echo "<script>alert('Не все поля заполнены'); location.href='admin.php';</script>";
          exit;
      }
      else
      {
    $query = "UPDATE pokemon_user";
    $query .= "SET 'id','name'";
    $result = mysql_query($query,$db) or die("Query failed : " . mysql_error());
    echo "<script>alert('Вы удачно сменили имя !');</script>";
      }
}
?>

<center>
<form action="" method="POST">
ID игрока: <input type="text" name="id"/>
<br />
Новое имя: <input type="text" name="name"/>
<br />
<input type="submit" value="Сменить имя" />
</form>
</center>

Все ровно не получается помогите мне сформулировать грамотно запрос.
Ошибка: Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id','name'' at line 1

Добавлено (27.07.2012, 02:45)
---------------------------------------------
УРАА ДОБРЫЙ NOSOROG !!!!!!!!!
Помоги о великий smile

Добавлено (27.07.2012, 02:46)
---------------------------------------------
Quote
Наверняка, в сессиях хранится твой id - зачем его вводить?!

Не мой ид а ИД, а покемона он в сессии не хранится.

Добавлено (27.07.2012, 02:48)
---------------------------------------------
РЕБЯТА ИД НЕ МОЙ НАДО , А ПОКЕМОНА и лучше через какой нить zapretsmenanick в базе данных int(11) Чтоб потом можно было выставить 0 И опять пользователь мог поменять имя


Проблемы индейцев - вождя не волнуют....


Сообщение отредактировал VipCat - Пятница, 27 Июля 2012, 02:50
NosorogДата: Пятница, 27 Июля 2012, 02:49 | Сообщение # 7
участник
Сейчас нет на сайте
$query = "UPDATE `pokemon_user` SET `name`= {$_POST[name]} WHERE `id`={$_POST[id]};";

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 03:00 | Сообщение # 8
PHP-MasteR
Сейчас нет на сайте
Quote (Nosorog)
$query = "UPDATE `pokemon_user` SET `name`= {$_POST[name]} WHERE `id`={$_POST[id]};";

пишет Query failed : Unknown column 'NewNick' in 'field list'

Добавлено (27.07.2012, 03:00)
---------------------------------------------
А когда вводишь правильный то пишет
Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Blastoise WHERE `id`=1' at line 1


Проблемы индейцев - вождя не волнуют....
maker-rusДата: Пятница, 27 Июля 2012, 03:04 | Сообщение # 9
Гений
Сейчас нет на сайте
Quote (VipCat)
А когда вводишь правильный то пишет
Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Blastoise WHERE `id`=1' at line 1


попробуй так.
Code

$newname = $_POST['name'];
$id= $_POST['id'];
$query = "UPDATE pokemon_user SET name=$newname WHERE id=$id";  


Сообщение отредактировал maker-rus - Пятница, 27 Июля 2012, 03:05
VipCatДата: Пятница, 27 Июля 2012, 03:06 | Сообщение # 10
PHP-MasteR
Сейчас нет на сайте
То же самое (

Проблемы индейцев - вождя не волнуют....
NosorogДата: Пятница, 27 Июля 2012, 03:09 | Сообщение # 11
участник
Сейчас нет на сайте
$query = "UPDATE `pokemon_user` SET `name`= '{$_POST[name]}' WHERE `id`={$_POST[id]};";
кавычки booze


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
maker-rusДата: Пятница, 27 Июля 2012, 03:09 | Сообщение # 12
Гений
Сейчас нет на сайте
сохранили новый код?
И конкретно заново скопируйте ошибку!
NosorogДата: Пятница, 27 Июля 2012, 03:29 | Сообщение # 13
участник
Сейчас нет на сайте
Кстати, zapretsmenanick - это WHERE `id владельца`= 'id владельца'

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 18:35 | Сообщение # 14
PHP-MasteR
Сейчас нет на сайте
Спасибо всем.... получилось. А вот на счет запрет смены ника я не понял как сделать по подробнее

Проблемы индейцев - вождя не волнуют....
NosorogДата: Пятница, 27 Июля 2012, 19:09 | Сообщение # 15
участник
Сейчас нет на сайте
Тоже самое:
$query = "UPDATE `pokemon_user` SET `name`= '{$_POST[name]}' WHERE `id`={$_POST[id]} AND `id_owner`='{$_SESSION[user_id]}';";
Наверняка в таблице `pokemon_user` есть столбец, в котором указывается id юзера


Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Пятница, 27 Июля 2012, 19:30 | Сообщение # 16
PHP-MasteR
Сейчас нет на сайте
Слушай я на счет
<?
include ("bd.php");
if(isset($_POST['id']))
{
if(empty($_POST['id']) and empty($_POST['name']))
{
echo "<script>alert('Не все поля заполнены'); location.href='admin.php';</script>";
exit;
}
else
{
$query = "UPDATE `pokemon_user` SET `name`= '{$_POST[name]}' WHERE `id`={$_POST[id]} AND `user`='{$_SESSION[user]}';";
$result = mysql_query($query,$db) or die("Query failed : " . mysql_error());
echo "<script>alert('Вы удачно сменили имя !');</script>";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../game.css">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /><meta http-equiv="Content-Type" content="text/html; charset=windows sp1251" />
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>

<center>
<form action="" method="POST">
<input type="text" name="id" placeholder=" ID вашего покемона:"/>
<br />
<input type="text" name="name" placeholder=" Новое имя"/>
<br />
<input type="submit" value="Сменить имя" />
</form>
</center>

</body>
</html>
Не меняет имя. Просто пишет Вы удачно сменили имя но имя не меняет.


Проблемы индейцев - вождя не волнуют....
llibertyДата: Пятница, 27 Июля 2012, 19:51 | Сообщение # 17
был не раз
Сейчас нет на сайте
Первое что приходит в голову - ты используешь переменную сессии ($_SESSION[user]), но нигде в скрипте нет подключения к сессиям (session_start();). Естественно что $_SESSION[user] будет просто пустая строка. (UPDATE ... WHERE ... `user`='')

У тебя где-то еще сессии используются? Как пользователь авторизируется в игре?
4ssh0l3Дата: Пятница, 27 Июля 2012, 21:06 | Сообщение # 18
был не раз
Сейчас нет на сайте
Quote (Nosorog)
$query = "UPDATE `pokemon_user` SET `name`= '{$_POST[name]}' WHERE `id`={$_POST[id]} AND `id_owner`='{$_SESSION[user_id]}';";

Носорог, а зачем ты здесь переменные в фигурные скобки заворачиваешь? Без них то же самое же.
NosorogДата: Пятница, 27 Июля 2012, 22:25 | Сообщение # 19
участник
Сейчас нет на сайте
4ssh0l3, Это привычка smile

Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
VipCatДата: Суббота, 28 Июля 2012, 01:57 | Сообщение # 20
PHP-MasteR
Сейчас нет на сайте
Code
<?  
  include ("bd.php");
  session_start();
  if(isset($_POST['id']))  
  {  
  if(empty($_POST['id']) and empty($_POST['name']))  
  {  
  echo "<script>alert('Не все поля заполнены'); location.href='admin.php';</script>";  
  exit;  
  }  
  else  
  {  
  $query = "UPDATE `pokemon_user` SET `name`= '{$_POST[name]}' WHERE `id`={$_POST[id]} AND `user`='{$_SESSION[user]}';";  
  $result = mysql_query($query,$db) or die("Query failed : " . mysql_error());  
  echo "<script>alert('Вы удачно сменили имя !');</script>";  
  }  
  }  
  ?>  
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5 Transitional//EN">  
  <html>  
  <head>  
  <link rel="stylesheet" type="text/css" href="../game.css">  
  <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /><meta http-equiv="Content-Type" content="text/html; charset=windows sp1251" />  
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">  
  </head>  
  <body>  

  <center>  
  <form action="" method="POST">  
  <input type="text" name="id" placeholder=" ID вашего покемона:"/>  
  <br />  
  <input type="text" name="name" placeholder=" Новое имя"/>  
  <br />  
  <input type="submit" value="Сменить имя" />  
  </form>  
  </center>  

  </body>  
  </html>


Заменил на это пишет вы удачно сменили имя покемону , захожу проверяю не меняет


Проблемы индейцев - вождя не волнуют....
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг