50000 msql queries in een uur?

Status
Niet open voor verdere reacties.

Arthur K

Gebruiker
Lid geworden
19 jan 2008
Berichten
41
Gister was mijn hosting tijdelijk stilgelegd omdat de een van mijn websites ruim 50.000 queries binnen het uur zou hebben opgevraagd. Nu kijk ik echter naar de statistieken van deze website over de gehele dag, en dat ziet er als volgt uit:

1000 bezoekers welke alle gemiddeld 3,4 pagina's bekeken. Als ik zo naar deze stats kijk is het haast onmogelijk dat mijn website dan ruim 50000 connecties van de msql kan hebben opgevraagd? Heb ik hierin gelijk......
 
Zijn die stats van jouw, (persoonlijk gemaakt systeem or 3rd party-software) of zijn deze statistieken van je provider zelf? ik zou je scripts eens controleren of er ergens een while loop is met een query in, en kijken of deze loop mogelijk in een oneindige lus zou kunnen geraakt zijn.
 
Stats zijn gemaakt door 3rd-party software (Analystic en Mystats). Hmm ik krijg zo een heel vaag vermoeden dat er ergens een oneindige lus zit. :confused: Hoe zou ik zoiets kunnen controleren? Wordt de msql dan niet afgesloten met } of ?> ? Ik heb er namelijk geen verstand van.... :love:
 
sql queries worden binnen het

PHP:
<?php


?>

vak uitgevoerd met als syntrax

PHP:
mysql_query("SELECT * FROM table WHERE id='1';");
<-- voorbeeld van een query

zoek dus best naar mysql_query
 
Hmm ik zie zo een twee drie geen fouten. Ik heb hieronder de stukjes geplaatst, waarin de fouten kunnen zitten.

Stukje 1:
PHP:
<?PHP
include('config.php');


$query = "SELECT naam
         FROM games
         WHERE id='". $_GET['id'] ."'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
?>

Stuk 2:
PHP:
<?
							
$select = mysql_query("SELECT * FROM games ORDER BY id DESC LIMIT 0, 9");
									$tellen = mysql_num_rows($select);
									
									if($tellen == 0)
									{
										echo "<i>No games...</i>";
									}
									else
									{
	                					$i		= 0;
									
										while($row = mysql_fetch_assoc($select))
										{
											$i++;

echo "<td valign=\"top\" style=\"background-image: url(images/White.jpg); width: 188px; height: 97px;\">";
							
echo "  <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
        	                                echo "    <tr>";
echo "      <td width=\"97\" valign=\"top\" align=\"center\" style=\"padding-top: 8px;\">";

											if(!file_exists('screenshots/'.$row['id'].'.jpg'))
											{
							
echo "<img src=\"screenshots/noscreen.jpg\" width=\"80\" height=\"80\" alt=\"No screen\" />";
											}
											else
											{
							
echo "<img src=\"screenshots/".$row['id'].".jpg\" width=\"80\" height=\"80\" alt=\"Screenshot ".$row['naam']."\" />";
											}

	                                        echo "      </td>";
echo "      <td width=\"91\" valign=\"top\" style=\"padding-top: 3px;\">";
echo "        <span class=\"titel\"><a href=\"game.php?id=".$row['id']."\">".$row['naam']."</a></span><br />";
											echo "        <br />";
											echo "        Played:<br />";
											echo "        ".$row['hits']."x<br />";
											echo "        <br />";
											echo "      </td>";
											echo "    </tr>";
											echo "  </table>";
                        	                echo "</td>";
                                              
											if($i == 3 OR $i == 6)
											{
												echo "</tr>";
												echo "</table>";
												echo "</td>";
												echo "</tr>";
												echo "<tr>";
												echo "<td>";
						
echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"0\" align=\"center\">";
							
echo "<tr>";
											}
										}
									}
									?>

Stuk 3:
PHP:
<?php 
                         
						
$query="SELECT * FROM games WHERE categorie='Action' ORDER BY naam";   
							
$select = mysql_query($query) or die(mysql_error()); 
							
$tellen = mysql_num_rows($select);                               
									
									if($tellen == 0) { 
  									
									echo "<i>No games...</i>"; 
								
									} else { 
  								
									$i = 0; 
  									
									while($row = mysql_fetch_array($select)) { 
   									
									$i++;  
    							

echo "<td valign=\"top\" style=\"background-image: url(images/White.jpg); width: 188px; height: 97px;\">"; 
echo "  <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";  
echo "    <tr>";  
echo "      <td width=\"97\" valign=\"top\" align=\"center\" style=\"padding-top: 8px;\">";  
    							
if(!file_exists('screenshots1/'.$row['id'].'.jpg')) { 
      							
echo "<img src=\"screenshots1/noscreen.jpg\" width=\"80\" height=\"80\" alt=\"No screen\" />";  
    							
} else { 
      							
echo "<img src=\"screenshots1/".$row['id'].".jpg\" width=\"80\" height=\"80\" alt=\"Screenshot ".$row['naam']."\" />"; 
    		} 

		echo "      </td>";  
echo "      <td width=\"91\" valign=\"top\" style=\"padding-top: 3px;\">";  
echo "        <span class=\"titel\"><a href=\"game.php?id=".$row['id']."\">".$row['naam']."</a></span><br />";  
                                  
	echo "        <br />";  
                                  
	echo "        Played:<br />";  
                                  
							echo "        ".$row['hits']."x<br />";  
                                  
	echo "        <br />";  
                                  
	echo "      </td>";  
                              
	echo "    </tr>";  
                              
	echo "  </table>";  
							echo "</td>";  
if($i%3 == 0) {   
							echo "</tr>";   
							echo "</table>";   
							echo "</td>";   
							echo "</tr>";   
							echo "<tr>";   
							echo "<td>";   
						
echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"0\" align=\"center\">";   
							echo "<tr>";   
					}  
				}  
			}  
?>

Stuk 4:
PHP:
<?PHP
// Connectie
include('config.php');
	
// Om de hits weer omhoog te zetten
mysql_query("UPDATE `games` SET `hits` = `hits` +1 WHERE `id` = '".$_GET['id']."'") or die(mysql_error());
?>

Stuk 5:
PHP:
                      <?PHP
                      
#if(isset($_GET['c']) && $_GET['c'] == "yes")
#{
$select = mysql_query("SELECT * FROM games WHERE id = '".$_GET['id']."'");
$tellen = mysql_num_rows($select);
$row	= mysql_fetch_assoc($select);

                      		if($tellen == 0)
                      		{
	                      		echo "<br /><br />There is something wrong, please try again.!<br /><br />";
                      		}
                      		else
                      		{
$select	= mysql_query("SELECT * FROM games WHERE id = '".$_GET['id']."'") or die(mysql_error());
$row		= mysql_fetch_assoc($select);
$tellen	= mysql_num_rows($select);

echo "<iframe src=\"".$row['url']."\" width=\"".$row['width']."\" height=\"".$row['height']."\" name=\"game\" align=\"center\" marginheight=\"0\" marginwidth=\"0\" frameborder=\"no\" scrolling=\"no\"></iframe>";
echo "<br /><br />";
echo "<center>$row[naam] had been played ".$row['hits']." times!";
							}
                      #}
                      #else
                      #{
	                  #    	include('reclame.php');
                      #}
                      ?>

Zie ik het goed dat er hier geen fouten inzitten? En is het dan mogelijk dat iemand misschien een script triggert op mijn website?
 
Laatst bewerkt:
Er zijn nergens while loops, dus dit kan het niet zijn.
Je stats spreken ook tegen dat dit mogelijk is.
Mss gaat het hier om een fout bij je hosting bedrijf?
(ik zie geen andere mogelijkheden)
 
Mijn hosting bedrijf zegt het volgende:

'Het kan zijn dat iemand een script op je website heeft getriggered en dat deze een hoop queries heeft veroorzaakt.'

Het enige wat ik extern draai en waardoor er dus mogelijk iets binnen kan komen is via de diensten van addthis.com.....Of is er een mogelijkheid dat iemand toegang heeft tot mijn database en achter de password gegevens is gekomen?
 
Als iemand je database gegevens heeft, gaat hij toch niet leuk even zoveel mogelijk queries uitvoeren? Hij gaat alles uit je database halen en proberen (als er zijn) wachtwoorden te decoderen; dit is totaal onlogish :shocked:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan