Rate limit quota violation. quota limit exceeded ?

Mammouth du PHP | 643 Messages

13 nov. 2017, 21:24

Salut à tous.
Voila j'ai ce fameux message:
Rate limit quota violation. quota limit exceeded.

qui s'insere à la place de tous mes champs titres de ma table loisirs.
Je ne fait aucune manip ça se fait quand je suis au boulot donc rien à voir.

Et je ne comprends pas pourquoi ?
Est ce que quelqu'un à déjà au quelque chose de similaire ou quelqu'un comprends le problème svp

Je remet une sauvegarde de ma bdd en ligne tous les jours en attendant et tous les jours le problème revient
Merci à vous

Mammouth du PHP | 2703 Messages

13 nov. 2017, 21:52

c'est sur le serveur en ligne ?
l'hébergeur doit mettre une limite à quelque chose et elle est dépassée d'où ce message.

Mammouth du PHP | 643 Messages

13 nov. 2017, 23:36

Jsui chez OVH.
J'ai fait une demande d'assistance pour cela mais rien
je trouve ca bizar qu'il me change les titre de mes annonces quand même mais j'attends des news

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 nov. 2017, 14:48

D'où vienne les données que tu as insérées ?
A priori c'est un message d'erreur de dépassement de quota si tu utilises la plateforme API appelée Apigee (filiale de Google) : https://apigee.com
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 643 Messages

23 nov. 2017, 20:25

Je ne comprend tourjours pas ... d'où vient le problème
J'ai une table loisirs qui à une colonne titre et ça me change uniquement cette colonne les autres colonne nikel

Structure dans la base de donnée de cette colonne
titre varchar(255) latin1_swedish_ci Non Aucun(e) Modifier Modifier Supprimer Supprimer

Du coté de mon hébergeur on me dit injection sql peut être....

Un formulaire est mis à disposition des internautes afin de proposer des sorties.
Peut etre une faille ce de coté....

Alors je met le formulaire permettant de proposer une sortie:
// Admin ou pas ?
	$erreurs = array();   //tableau contenant des messages d'erreurs


	if(!empty($_POST)) {//soumission du formulaire
  
   //Verification titre
  if(empty($_POST['titre']))
  {
   $erreurs['titre'] = 'Renseigner un nom de sortie';
  }
  
 // Suite vérification
 
	
	// Il n'y a pas d'erreur
	if(empty($erreurs)) {
	
	// L'envoi de l'annonce à était correctement effectué
	echo '<div class="container"><div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
	<div class="alert alert-success okay" role="alert"> <i class="fa fa-smile-o"></i>
 Votre annonce sera analyser dans les 24H00 </div></div></div>';

	if($_SESSION['membre']['statut'] == 1) {
		
		$check = $bdd->prepare('SELECT * FROM simply_user WHERE email LiKE ?');
		$check->execute(array($_POST['email']));
		if($check->rowCount() == 0) {
			// L'email n'est pas associé a un compte
			$password = generatePassword();
			
			$departement = substr($_POST['postcode'], 0, 2); regionIdByDepartement($departement);
			
			// Insertion du nouveau membre
			$req = $bdd->prepare('INSERT INTO simply_user (id_region, id_departements, pseudo, email, password, phone, date_inscription) VALUES(:id_region, :id_departements, :pseudo, :email, :password, :phone, CURDATE())');
			
			$req->execute(array(
					  'id_region'=>regionIdByDepartement($departement),
					  'id_departements'=>$departement,
					  'pseudo'=>$_POST['email'],
					  'email'=>$_POST['email'],
					  'password'=>sha1($password),
					  'phone'=>0
					  
				)) or die('Problème lors de l\'insertion');
				$id = $bdd->lastInsertId();
				
			$entetedate  = date("D, j M Y H:i:s  +0200"); // avec offset horaire
			$entetemail  = "From: Lasortie <[email protected]>\n"; // Adresse expéditeur
			$entetemail .= "Cc: \n"; 
			$entetemail .= "Bcc: \n"; // Copies cachées
			$entetemail .= "Reply-To: [email protected]\n"; // Adresse de retour
			$entetemail .= "MIME-version: 1.0\n"; 
			$entetemail .= "Content-type: text/html; charset=UTF-8;\n"; 
			$entetemail .= "X-Mailer: PHP/".phpversion()."\n" ;
			$entetemail .= "Date: ".$entetedate;
				
			$search = array('[email]', '[password]');
			$replace = array($_POST['email'], $password);
	
			$message = str_replace($search, $replace, file_get_contents('include/news_compte.html'));
	
			
			@mail($_POST['email'], '[LASORTIE] Creation de compte', $message, $entetemail);
	
			echo '<div class="container"><div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
		<div class="alert alert-success okay" role="alert"> <i class="fa fa-smile-o"></i> Le compte de '.$_POST['email'].' a bien été crées</div></div></div>';
			
		} 
	}
		
		
	//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
	$date_debut = date_create_from_format('d/m/Y', $_POST['date_debut_sortie']);
	$date_debut = date_format($date_debut, 'Y-m-d');
	$date_fin = date_create_from_format('d/m/Y', $_POST['date_fin_sortie']);
	$date_fin = date_format($date_fin, 'Y-m-d');
	
	// Si on a crée un compte on l'attribut au membre
	$id = !empty($id)?$id:$_SESSION['membre']['id_simply_user'];
    $departement = substr($_POST['postcode'], 0, 2); regionIdByDepartement($departement);
	


	   // requete INSERT de la sortie
	   $req = $bdd->prepare('INSERT INTO loisirs ( id_simply_user, id_region,  id_departements, id_type_loisirs, genre_loisir, photo, titre, date_debut_sortie, date_fin_sortie, jour_semaine, description, phone, email, website, street, postcode, city, price, valide) VALUES (:id_simply_user, :id_departements, :id_region, :id_type_loisirs, :genre_loisir, :photo, :titre, :date_debut_sortie, :date_fin_sortie, :jour_semaine, :description, :phone, :email, :website, :street, :postcode, :city, :price, :valide)');   
	   $retour= $req->execute(array(
	   
	   		  'id_simply_user'=>$id,
			  'id_region'=>$departement,
			  'id_departements'=> regionIdByDepartement($departement),
			  'id_type_loisirs'=>$_POST['type_loisirs'],
			  'genre_loisir'=>strtolower($aLoisirs[$_POST['type_loisirs']]),
			  'photo'=>$namefile,
			  'titre'=>$_POST['titre'],
			  'date_debut_sortie'=>$date_debut,
			  'date_fin_sortie'=>$date_fin,
			  'jour_semaine' => serialize($_POST['jour_semaine']),
			  'description'=>$_POST['description'],
			  'phone'=>$_POST['phone'],
			  'email'=>$_POST['email'],
			  'website'=>$_POST['website'],
			  'street'=>$_POST['street'],
			  'postcode'=>$_POST['postcode'],
			  'city'=>$_POST['city'],
			  'price'=>$_POST['price'],
			  'valide' => $_SESSION['membre']['statut']
			   ));
			  $idloisirs = $bdd->lastInsertId();
			  
			  unset($_POST);
			  
Merci à ceux qui pourront m'aider

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 nov. 2017, 21:52

Bah mets un test au moment de ton import et si tu vois passer cette chaine de caractères en titre tu t'envoie un mail d'info avec les données envoyées et l'IP de l'utilisateur qui fait cela comme ça tu sauras si ça vient d'un de tes visiteurs ou pas.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 643 Messages

23 nov. 2017, 23:59

Oui pour savoir qui fait ca mais le but c'est qu'il ne puisse pas le faire tout simplement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 nov. 2017, 00:47

Oui pour savoir qui fait ca mais le but c'est qu'il ne puisse pas le faire tout simplement
Du moment que tu mets un test pour le détecter, tu peux en plus le bloquer...


Et au delà de juste cette chaine de caractère, tu devrais filtrer les données que tu récupères de tes visiteurs, avec filter_var() ou avec des expressions régulières + preg_match() comme cela, ça évitera les entrées foireuses dans ta bdd
Quand tout le reste a échoué, lisez le mode d'emploi...