Давайте попробуем несколько вещей:
Во-первых, у вас есть много недостатков безопасности, поэтому я не рекомендую никому использовать приведенный выше код в форме его ввода из-за потенциальных ошибок внедрения XSS и SQL. Вы передаете параметры из GET и помещаете их прямо в значение запроса.
Правильный способ сделать это можно найти здесь:
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Кроме того, предотвращение PHP SQLi через PDO (предпочтительно) или mysql_real_escape можно найти в руководстве php.net, выполнив простой поиск в Google для MySQL PDO.
... grr php ...
Хорошо, ваша логика ветвления немного ошибочна. Давайте разберемся, чтобы поработать над этим.
if($temp['paragraph'] == $template){
echo 'Template is already attached - <a href="templates">Back</a>';
} elseif ($temp['paragraph'] == '0') {
mysql_query("UPDATE campain_manager SET paragraph = '$template' WHERE campaign = $campain'") or die(mysql_error());
}
elseif ($temp['paragraph'] == null ){
mysql_query("UPDATE campaign_manager SET paragraph = '$template' WHERE campaign = '$campaign'") or die(mysql_error());
}
else
{ $geo = $temp['geo'];
$list = $temp['list'];
mysql_query("INSERT INTO campaign_manager(campaign,paragraph,geo,list) VALUES('$campaign','$template','$geo','$list')");
}
}
}
?>
Теперь я не являюсь разработчиком по профессии, это для многих кажется неправильным, я думаю, что вы можете потенциально изменить свой код и сделать его меньше. Я также попытался бы сделать его более функциональным, если бы вы могли. Кстати, у меня не было времени, чтобы исправить все эти проблемы выше, позвольте мне сказать вам, код, который я выше, также уязвим. Чтобы правильно исправить это, замените mysql_query на mysql_real_escape_string. Также убедитесь, что вы не просто получаете данные от пользователя и:
А) Неправильная дезинфекция,
Б) Неправильно вывести его.
Не доверяйте всему клиентскому коду, проверка на сервере является доверенной. Не поставляйте свой код на стороне сервера на стороне клиента.
НТН
M