Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql中添加多行_Php_Mysql - Fatal编程技术网

Php 在mysql中添加多行

Php 在mysql中添加多行,php,mysql,Php,Mysql,我有一个大问题,有人通过在我的数据库中添加多行来攻击我。他使用我网站上的表格。我的数据库中有大约2500行,所有的行都是不同的。它是由任何脚本生成的。你有什么建议我怎样修理它吗?这是我网站上的表格 <?php if(isset($_POST['type'])) {$type = mysql_real_escape_string($_POST['type']);} if(isset($_POST['ip'])) {$ip = mysql_real_escape_string($_POST['

我有一个大问题,有人通过在我的数据库中添加多行来攻击我。他使用我网站上的表格。我的数据库中有大约2500行,所有的行都是不同的。它是由任何脚本生成的。你有什么建议我怎样修理它吗?这是我网站上的表格

<?php
if(isset($_POST['type'])) {$type = mysql_real_escape_string($_POST['type']);}
if(isset($_POST['ip'])) {$ip = mysql_real_escape_string($_POST['ip']);}
if(isset($_POST['port'])) {$port = mysql_real_escape_string($_POST['port']);}
$add_date = time();
if(isset($_POST['email'])) {$email = mysql_real_escape_string($_POST['email']);}
if(isset($_POST['web'])) {$web = mysql_real_escape_string($_POST['web']);}
if(isset($_POST['mod'])) {$mod = mysql_real_escape_string($_POST['mod']);}


echo "
<form action='#' method='post'>

<legend>Formulár pre pridanie serveru</legend>

<table>
<tr>
<td>
Hra:
</td>
<td>
<select name='type'>
<option value='cs16'>Counter Strike 1.6</option>
<option value='source'>Counter Strike Source</option>
<option value='csgo'>Counter Strike Global Offensive</option>
</select>
(vyberte hru)
</td>
</tr>

<tr>
<td>              
Typ:
</td>
<td>
<select name='mod'>";

$modes = mysql_query("SELECT * FROM `lgsl_modes`") or die(mysql_error());
while($modes_names = mysql_fetch_array($modes))
{
echo '<option value="'.$modes_names['mod'].'">'.$modes_names['name'].'</option>';
}

echo "</select>
(vyberte herný mód)
</td>
</tr>


<tr>
<td>              
IP serveru:
</td>
<td>
<input type='text' name='ip' value='' required>
(iba číslice a bodky)
</td>
</tr>

<tr>
<td>              
Port serveru:
</td>
<td>
<input type='text' name='port' value='' required>
(iba číslice)
</td>
</tr>

<tr>
<td>               
Web serveru:
</td>
<td>
<input type='text' name='web' value='' required>
(uvádzajte bez začiatočného http://)
</td>
</tr>

<tr>
<td>              
Váš email:
</td>
<td>
<input type='text' name='email' value='' required>
(kontaktný email)
</td>
</tr>

<tr>
<td>
<input type='submit' name='odoslat' value='Odoslať'>
</td>
</tr>
</table>            
</form>
";


if($ip) if(!preg_match("/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/",$ip)) $usermsgip="Ip adresa bola uvedená v zlom tvare.";
if($port) if(!preg_match("/^[0-9]{5}$/",$port)) $usermsgport="Port bol uvedený v zlom tvare.";
if($email) if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/",$email)) $usermsgemail="Email bol uvedený v zlom tvare.";    
if($web) if(!preg_match("%^((https?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i" ,$web)) $usermsgweb="Web bol uvedený v zlom tvare.";

if(isset($_POST['odoslat']) && $usermsgip || $usermsgport || $usermsgemail || $usermsgweb) {
if($usermsgip) echo $usermsgip."<br>";
if($usermsgport) echo $usermsgport."<br>";
if($usermsgemail) echo $usermsgemail."<br>";
if($usermsgweb) echo $usermsgweb."<br>";
}


if(isset($_POST['odoslat']) && !$usermsgip && !$usermsgport && !$usermsgemail && !$usermsgweb) {
$kontrola = mysql_query("SELECT * FROM `lgsl` WHERE `ip`='".$ip."' AND `c_port`=".$port);                                                                                  
if(mysql_num_rows($kontrola)) {echo "Server už bol pridaný do banlistu.";}
else { 
mysql_query("INSERT INTO `lgsl` (`type`, `ip`, `c_port`, `q_port`, `disabled`, `add_date`, `email`, `web`, `mod`) 
VALUES ('$type', '$ip', '$port', '$port', '1', '$add_date', '$email', '$web', '$mod')");
echo 'Server bol úspešne odoslaný na schválenie.';
} 
} 
?>

我认为您应该使用PDO重写整个脚本。使用Pdo,您可以轻松地避免SQL注入。这里有一个你可以找到的网站,所有的网站都充满了指南和例子

无论如何,如果您想修复您的脚本,您可以使用Captcha来避免自动提交表单,并使用库来清理输入

在这里,你可以找到一个简单而简单的方法

你可以找到一些解决问题的好方法


希望这有帮助。

如果可以,你应该这样做。它们不再得到维护,而是在使用。相反,请学习使用PDO,您需要做一些形式验证,也许需要一个CAPTCHA来防止某人自动填写表单并因此添加数据。有太多可能的答案,或者好的答案对于这种格式来说太长了。请添加详细信息,以缩小答案集或隔离一个可以在几段中回答的问题。我建议您找一个发展论坛(也许?)来总结概括。然后,当您遇到特定的编码问题时,请返回StackOverflow,我们将很乐意提供帮助。