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"); ?> код не копировать это лишь приблизительный вариант!
Сообщение отредактировал 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']."')"; Кури 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 !!!!!!!!! Помоги о великий
Добавлено (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]};"; кавычки
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
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, Это привычка
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
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>
Заменил на это пишет вы удачно сменили имя покемону , захожу проверяю не меняет
Проблемы индейцев - вождя не волнуют....
|
|
| |