А чего его фиксить... . На самом деле в этом скрипте две дыры В первом сообщении я описал первую, но когда приводил пример, то наткнулся на вторую. Ввиду большей показательности и простоты использования, привел тогда именно ее.
Можно их так пофиксить:
Немного топорно как и сам код иксновы, но зато подходит ко всем разновидностям-версиям торговца, да и мало чего править. Это лишь как пример.
Как и говорил, нужен default, чтобы при левом ress нормальная работа торговца не продолжилась. Да и нужно занулить переданные значения продаваемого ресурса от юзера (по идее этого вообще не могло произойти, если бы он правильно его использовал).
skillcoder, твоя правда. В таком виде торговец просто бессмысленен. У многих он вообще работает за просто так, так что того же смысла транспортировать что-то помимо дейтерия нету. Зачем нужно 4 БТ для транспортировки 100к металла, когда можно без никаких потерь перевести все это в дейтерий и отправить одним БТ.
Я просто ввел для него комиссию - он берет себе XX% плюс к проданному ресурсу. Это, конечно, не решение.
Можно их так пофиксить:
PHP:
switch ($_POST['ress']) {
case 'metal':
//Добавляем >
$_POST['metal']=0;
// Добавляем<
/*...*/
case 'cristal':
//Добавляем >
$_POST['cristal']=0;
// Добавляем<
/*...*/
case 'deuterium':
//Добавляем >
$_POST['deut']=0;
// Добавляем<
/*...*/
//Добавляем >
default: $Error = true;
// Добавляем<
}
Как и говорил, нужен default, чтобы при левом ress нормальная работа торговца не продолжилась. Да и нужно занулить переданные значения продаваемого ресурса от юзера (по идее этого вообще не могло произойти, если бы он правильно его использовал).
skillcoder, твоя правда. В таком виде торговец просто бессмысленен. У многих он вообще работает за просто так, так что того же смысла транспортировать что-то помимо дейтерия нету. Зачем нужно 4 БТ для транспортировки 100к металла, когда можно без никаких потерь перевести все это в дейтерий и отправить одним БТ.
Я просто ввел для него комиссию - он берет себе XX% плюс к проданному ресурсу. Это, конечно, не решение.