Erreur ajax 403forbidden

[Fermé]
Signaler
-
Messages postés
2519
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
5 septembre 2021
-
Bonjour,

Voila je rencontre un gros problème avec mon code, lorsque je save un formulaire j'ai le massage could not connect to database quand je regarde dans le networks chrome j'ai m'a pas ajax qui est en 403forbidden hors elle marche sur plusieurs autre form.

Voici mon code javascript (j'ai pas le droit au jquery)

JS
Mon probleme est sur la donnée VIDEO qui est une iframe vimeo

  function updateTheGamme(){
if(isGammeFormUpdateValid()){
Ext.Ajax.request({
waitMsg: 'Please wait...',
//headers: { 'Content-Type': 'application/json'},
type:'POST',
url: '../gestion_des_produits/database.php',
params: {
task: "CREATEPRESGamme",
gamme_id : gamme_idgammeFieldUpdate.getValue(),
NOM : NOMgammeFieldUpdate.getValue(),
technologie_id : technologie_idgammeFieldUpdate.getValue(),
ACCROCHE : ACCROCHEgammeFieldUpdate.getValue(),
DESCRIPTION : DESCRIPTIONgammeFieldUpdate.getValue(),
LOGO : LOGOgammeFieldUpdate.getValue(),
PDF : PDFgammeFieldUpdate.getValue(),
PHOTO_PRINCIPALE : PHOTO_PRINCIPALEgammeFieldUpdate.getValue(),
AIDE : AIDEgammeFieldUpdate.getValue(),
VIDEO : VIDEOgammeFieldUpdate.getValue(),
// VIDEO : VIDEOgammeFieldUpdate.getValue().replace(/\//g, '\/'),
LANGUE : LANGUEgammeFieldUpdate.getValue(),
TITRE_HTML : TITRE_HTMLgammeFieldUpdate.getValue(),
DESCRIPTION_HTML : DESCRIPTION_HTMLgammeFieldUpdate.getValue(),
MOTSCLES_HTML : MOTSCLES_HTMLgammeFieldUpdate.getValue(),
URL_HTML : URL_HTMLgammeFieldUpdate.getValue(),
ordre : ordregammeFieldUpdate.getValue(),
DENOMINATION_LANGUE : DENOMINATION_LANGUEgammeFieldUpdate.getValue(),
SCORE : SCOREgammeFieldUpdate.getValue(),
OBJECTIF_SEO : OBJECTIF_SEOgammeFieldUpdate.getValue(),
COMMENTAIRE_SEO : COMMENTAIRE_SEOgammeFieldUpdate.getValue(),
ACTIF : ACTIFgammeFieldUpdate.getValue()

},
success: function(response){
var result=eval(response.responseText);
console.log('result success : '+result);
switch(result){

case 1:
//Ext.MessageBox.alert('Creation OK','The gamme was created successfully.');
//alert(idUpdateFiltre);
GammesDataStore.commitChanges(); GammesDataStore.on('beforeload', function(store){
store.baseParams = store.baseParams || {};
})


GammesDataStoreTotal.reload();
GammesDataStore.reload();
GammeUpdateWindow.hide();


break;

default:
Ext.MessageBox.alert('Warning','Could not create the gamme.');
break;

}
},
failure: function(response){
console.log(response);
var result=response.responseText;
Ext.MessageBox.alert('error','could not connect to the database. retry lateraaaa');
}
});

} else {
Ext.MessageBox.alert('Warning', 'Your Form is not valid!');
}

}


Voici le fichier php appeller par l'ajax
function createGamme(){

          if ($_POST['gamme_id'] != '-1') {

// Here we should probably do some database checking, to make sure that we do not have the same entry twice for ex... And we would return a different error code (ECHO '0' or whatever you want...) For now we'll pretend like the entry is valid.
$query = "UPDATE gamme SET `gamme_id` = '".addslashes($_POST['gamme_id'])."' , `NOM` = '".addslashes($_POST['NOM'])."' , `technologie_id` = '".addslashes($_POST['technologie_id'])."' , `ACCROCHE` = '".addslashes($_POST['ACCROCHE'])."' , `DESCRIPTION` = '".addslashes($_POST['DESCRIPTION'])."' , `LOGO` = '".addslashes($_POST['LOGO'])."' , `PDF` = '".addslashes($_POST['PDF'])."' , `PHOTO_PRINCIPALE` = '".addslashes($_POST['PHOTO_PRINCIPALE'])."' , `AIDE` = '".addslashes($_POST['AIDE'])."' , `VIDEO` = '' , `LANGUE` = '".addslashes($_POST['LANGUE'])."' , `TITRE_HTML` = '".addslashes($_POST['TITRE_HTML'])."' , `DESCRIPTION_HTML` = '".addslashes($_POST['DESCRIPTION_HTML'])."' , `MOTSCLES_HTML` = '".addslashes($_POST['MOTSCLES_HTML'])."' , `URL_HTML` = '".addslashes($_POST['URL_HTML'])."' , `ordre` = '".addslashes($_POST['ordre'])."' , `DENOMINATION_LANGUE` = '".addslashes($_POST['DENOMINATION_LANGUE'])."' , `SCORE` = '".addslashes($_POST['SCORE'])."' , `OBJECTIF_SEO` = '".addslashes($_POST['OBJECTIF_SEO'])."' , `COMMENTAIRE_SEO` = '".addslashes($_POST['COMMENTAIRE_SEO'])."' , `ACTIF` = '".addslashes($_POST['ACTIF'])."' WHERE gamme_id =".addslashes($_POST['gamme_id']);
echo $query;
die();
$result = mysql_query($query);
//$last_insert_id = 2;

} else {

$NOM = addslashes($_POST['NOM']);
$technologie_id = addslashes($_POST['technologie_id']);
$ACCROCHE = addslashes($_POST['ACCROCHE']);
$DESCRIPTION = addslashes($_POST['DESCRIPTION']);
$LOGO = addslashes($_POST['LOGO']);
$PDF = addslashes($_POST['PDF']);
$PHOTO_PRINCIPALE = addslashes($_POST['PHOTO_PRINCIPALE']);
$AIDE = addslashes($_POST['AIDE']);
$VIDEO = "";
$LANGUE = addslashes($_POST['LANGUE']);
$TITRE_HTML = addslashes($_POST['TITRE_HTML']);
$DESCRIPTION_HTML = addslashes($_POST['DESCRIPTION_HTML']);
$MOTSCLES_HTML = addslashes($_POST['MOTSCLES_HTML']);
$URL_HTML = addslashes($_POST['URL_HTML']);
$ordre = addslashes($_POST['ordre']);
$DENOMINATION_LANGUE = addslashes($_POST['DENOMINATION_LANGUE']);
$SCORE = addslashes($_POST['SCORE']);
$OBJECTIF_SEO = addslashes($_POST['OBJECTIF_SEO']);
$COMMENTAIRE_SEO = addslashes($_POST['COMMENTAIRE_SEO']);
$ACTIF = addslashes($_POST['ACTIF']);

// Here we should probably do some database checking, to make sure that we do not have the same entry twice for ex... And we would return a different error code (ECHO '0' or whatever you want...) For now we'll pretend like the entry is valid.
$query = "INSERT INTO gamme (`NOM`, `technologie_id`, `ACCROCHE`, `DESCRIPTION`, `LOGO`, `PDF`, `PHOTO_PRINCIPALE`, `AIDE`, `VIDEO`, `LANGUE`, `TITRE_HTML`, `DESCRIPTION_HTML`, `MOTSCLES_HTML`, `URL_HTML`, `ordre`, `DENOMINATION_LANGUE`, `SCORE`, `OBJECTIF_SEO`, `COMMENTAIRE_SEO`, `ACTIF` ) VALUES ('$NOM' , '$technologie_id' , '$ACCROCHE' , '$DESCRIPTION' , '$LOGO' , '$PDF' , '$PHOTO_PRINCIPALE' , '$AIDE' , '$VIDEO' , '$LANGUE' , '$TITRE_HTML' , '$DESCRIPTION_HTML' , '$MOTSCLES_HTML' , '$URL_HTML' , '$ordre' , '$DENOMINATION_LANGUE' , '$SCORE' , '$OBJECTIF_SEO' , '$COMMENTAIRE_SEO' , '$ACTIF' )";


$result = mysql_query($query);
$last_insert_id = mysql_insert_id();

}

if (isset($last_insert_id)) { echo $last_insert_id; } else { echo '1'; }


}


Merci par avance pour votre aide

3 réponses

Messages postés
2519
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
5 septembre 2021
457
Salut,

Une erreur 403 Forbidden indique souvent une erreur de droit sur le dossier ou le fichier du serveur, néanmoins un problème de droit serait étrange dans ton cas si la requête ajax fonctionne avec d'autres formulaires.

Es tu sur que le chemin relatif défini dans le paramètre 'url' est correct par rapport à ta page ?
As tu des erreurs PHP dans le fichier log de ton serveur web ?

Bonne journée,
Merci pour votre reponse. Mon formulaire bug en fonction des données à l'intérieur en gros si je rajoute une iframe video ça plante sinon il marche donc c'est pas une erreur de droit et ou d'url.

Je pense que mon string video doit mettre une partie de la requête en commentaire et ou couper ma chaine.

Voici comment se présente ma chaine video =>
<iframe src="//player.vimeo.com/video/111111111?title=0&byline=0&portrait=0" width="853" height="467" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

Je ne vois pas comment faire autrement/
Messages postés
2519
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
5 septembre 2021
457
Où est situé le fichier database.php dans ton site ?
Arrives tu à accéder à ce fichier en tapant son url directement dans la barre d'adresse du navigateur sans erreur 403 ? Si oui quelle est l'url utilisée ?
voila ce qu'il m'écho quand je vais sur l'adresse du fichier php
=> {failure:true}
Messages postés
2519
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
5 septembre 2021
457
Donc pas d'erreur 403 ? Le message "{failure:true}" correspond au retour du code PHP ? Si oui pas de problème.

Où est situé le fichier database.php dans ton site ?
Quelle est l'url utilisée pour accéder à ce fichier ?
http://www.technomark-marking.com/administration/gestion_des_produits/database.php
Messages postés
2519
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
5 septembre 2021
457
Tu peux si tu le souhaites remplacer le chemin du paramètre url de la requête ajax en saisissant le chemin absolu à partir de la racine de ton site (commence par /) :
url: '/administration/gestion_des_produits/database.php',

Ceci permet d'utiliser ce script sur n'importe quelle page, le chemin absolu sera toujours correct contrairement au chemin relatif qui dépend de l'endroit où est exécuté le script.

Néanmoins ceci ne semble pas être le problème puisque le chemin que tu utilises actuellement fonctionne (pas de 404).
Je remarque par contre que tu as un accès restreint à ce fichier (via un htaccess je suppose). Le problème ne peut il pas venir de là ?
Peux tu essayer ton script en enlevant cette restriction d'accès ?