JSON AJAX Post 403 forbidden error.
Résolu
yacinebosss
Messages postés
156
Date d'inscription
Statut
Membre
Dernière intervention
-
yacinebosss Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
yacinebosss Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous.
j'ai un soucis avec mon code. qui consiste a envoyé un ARRAY depuis mon code php. vers javascript en utilisant AJAX (que je ne mettrise pas du tout).
voici mon code php:
mon code js:
le but de mon code. c'est de récupéré les information depuis ma base de donné (serveur local)et de les publié sur ma page.
ET LE MESSAGE DERREUR EST :
merci beaucoup. :)
j'ai un soucis avec mon code. qui consiste a envoyé un ARRAY depuis mon code php. vers javascript en utilisant AJAX (que je ne mettrise pas du tout).
voici mon code php:
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT nom, age, le_commentaire FROM commentaire";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$data = array('nom' => $row[nom],'age' => $row[age],'le_commentaire' => $row[le_commentaire] );
echo json_encode($data); /*ces ca le plus important car le reste marche. ces la fonction qui envoie les donné je crois.*/
} else {
echo "0 results";
}
$conn->close();
mon code js:
$.ajax({
url: "<?php echo site_url('test.php'); ?>",
type: 'POST',
dataType:'json',
success: function(data) {
alert(data[0]); // alerts first string
},
});
le but de mon code. c'est de récupéré les information depuis ma base de donné (serveur local)et de les publié sur ma page.
ET LE MESSAGE DERREUR EST :
jquery-3.5.1.js:2 POST http://localhost/%3C?php%20echo%20site_url(%27test.php%27);%20?%3E 403 (Forbidden)
merci beaucoup. :)
13 réponses
Bonjour,
Ton code JS ... il se trouve où ?
Si c'est dans un fichier .js ... ou un fichier .html ... ton code PHP ne peut pas être "traduit" ...
Ton code JS ... il se trouve où ?
Si c'est dans un fichier .js ... ou un fichier .html ... ton code PHP ne peut pas être "traduit" ...
J'ai fait comment ca mais rien ne s'affiche dans la console.
En plus j'ai pas compris un truc. comment je peux récupérer l'ARRAY dans mon code js pour l'ajouté dans ma page hmtl.
En plus j'ai pas compris un truc. comment je peux récupérer l'ARRAY dans mon code js pour l'ajouté dans ma page hmtl.
Rien ne s'affice
Déjà, il faudrait que tu nous montres ton code complet
- Le script html
- Le script php appelé par ton ajax
NB : Pour poster ton code sur le forum, merci d'utiliser (correctement;..) les balises de code
Explications ( à lire ENTIEREMENT ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Déjà, il faudrait que tu nous montres ton code complet
- Le script html
- Le script php appelé par ton ajax
NB : Pour poster ton code sur le forum, merci d'utiliser (correctement;..) les balises de code
Explications ( à lire ENTIEREMENT ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
OK le code html il est assez long. mais moi j'ai un div ou je vais mettre cette information.
mais je ne sais pas comment faire. j'ai remarqué qu'il utilise le POST donc je dois utilisé POST pour recupérer ?
mon code php:
mon code js il est encore assez long je let la partie responsable de cette action:
mais je ne sais pas comment faire. j'ai remarqué qu'il utilise le POST donc je dois utilisé POST pour recupérer ?
mon code php:
<?php //insert data $servername = "localhost"; $[https://www.commentcamarche.net/contents/1347-wsh-objet-wshnetwork username] = "**********"; $password = ""; $dbname = "**********"; $nom = $_POST["nom"]; $age = $_POST["age"]; $le_commentaire = $_POST["le_commentaire"]; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "INSERT INTO commentaire(nom,age,le_commentaire) VALUES ('$nom', '$age','$le_commentaire')"; if (mysqli_query($conn, $sql)) { // output data of each row header('Location: http://localhost/index.html'); } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } $conn->close(); //************************************************************************ //SELECT DATA $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT nom, age, le_commentaire FROM commentaire"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row $data = array('nom' => $row[nom],'age' => $row[age],'le_commentaire' => $row[le_commentaire] ); echo json_encode($data); } else { echo "0 results"; } $conn->close(); ?>
mon code js il est encore assez long je let la partie responsable de cette action:
$.ajax({ url: urlAjx, type: 'POST', dataType:'json', success: function(data) { alert(data[0]); // alerts first string },error: function(err){ console.log('Erreur Ajax',err); alert("erreur ajax"); } }); var vcomm; var commentaire; vcomm = document.getElementById("VOS COMMENTAIRE"); onload=function addcomm(){ console.log("ajout"); commentaire = document.createElement('p') vcomm.appendChild(commentaire); commentaire.innerHTML="commentaire"; /* la j'ai envie dajouter mes donné stoker dans l'ARRAY.*/ }
Oulaaa..... je ne comprend pas...
J'ai l'impression que tu as DEUX codes différents ...dans ton script php
Un pour l'ajout ...
et un pour la recherche ...
Tu ne peux pas !
Surtout que celui pour l'ajout... il essaye de faire une redirection .... mais vu que c'est de l'ajax.. ça ne marchera pas !
Si tu veux gérer en ajax l'ajout .. tu places le code de l'ajout dans un fichier
Et pour l'affichage des commentaires en ajax.. tu utilises un autre fichier
Sinon... comment penses tu que ton code sache dans quel cas tu te trouves ?
Surtout qu'en plus.. après l'ajout tu essaies de faire une redirection...... mais vu que tu appelles le script en ajax..ça ne risque pas de marcher.
A croire que tu as voulu "coller" un script qui était utilisé via un "submit" php dans un script ajax en pensant que ça marcherait pareil...
Tu devrais regarder ces exemples
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
J'ai l'impression que tu as DEUX codes différents ...dans ton script php
Un pour l'ajout ...
et un pour la recherche ...
Tu ne peux pas !
Surtout que celui pour l'ajout... il essaye de faire une redirection .... mais vu que c'est de l'ajax.. ça ne marchera pas !
Si tu veux gérer en ajax l'ajout .. tu places le code de l'ajout dans un fichier
Et pour l'affichage des commentaires en ajax.. tu utilises un autre fichier
Sinon... comment penses tu que ton code sache dans quel cas tu te trouves ?
Surtout qu'en plus.. après l'ajout tu essaies de faire une redirection...... mais vu que tu appelles le script en ajax..ça ne risque pas de marcher.
A croire que tu as voulu "coller" un script qui était utilisé via un "submit" php dans un script ajax en pensant que ça marcherait pareil...
Tu devrais regarder ces exemples
https://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
ahh wé moi je croyais que c'est comme js.
je le connecté pour ajouter et je le déconnecté.
et je fesait la meme chose pour SELECT.
"A croire que tu as voulu "coller" un script qui était utilisé via un "submit" php dans un script ajax en pensant que ça marcherait pareil..."
EXACTEMENT,
le code php qui gère l'ajout marche bien MRC DE M'AVOIR, montré cette erreur.
mais quel solution tu me préconise pour la recupération des donné (meme un autre truc que ajax)?
je le connecté pour ajouter et je le déconnecté.
et je fesait la meme chose pour SELECT.
"A croire que tu as voulu "coller" un script qui était utilisé via un "submit" php dans un script ajax en pensant que ça marcherait pareil..."
EXACTEMENT,
le code php qui gère l'ajout marche bien MRC DE M'AVOIR, montré cette erreur.
mais quel solution tu me préconise pour la recupération des donné (meme un autre truc que ajax)?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bien sure tous est séparer .
mon code js:
mon code html:
mon code js:
//script //********************************************************* //declaration des variable var nav; var navdesign= document.createElement("div"); var fixeddesign=0; ////////////////////////////////////////////////////// var nav1= document.getElementById("nav1"); var nav2= document.getElementById("nav2"); var nav3= document.getElementById("nav3"); var nav4= document.getElementById("nav4"); nav1.onmouseover = function(){ designover(nav1); } nav2.onmouseover = function(){ designover(nav2); } nav3.onmouseover = function(){ designover(nav3); } nav4.onmouseover = function(){ designover(nav4); } nav1.onmouseout = function(){ designout(nav1); } nav2.onmouseout = function(){ designout(nav2); } nav3.onmouseout = function(){ designout(nav3); } nav4.onmouseout = function(){ designout(nav4); } nav1.onclick = function(){ designclick(nav1); } nav2.onclick = function(){ designclick(nav2); } nav3.onclick = function(){ designclick(nav3); } nav4.onclick = function(){ designclick(nav4); } // céation du div design function designover(nav){ nav.appendChild(navdesign); navdesign.style.position="relative"; navdesign.style.height=7 +"px"; navdesign.style.width=100 +"%"; navdesign.style.background="rgba(0,186,255,0.5)"; navdesign.style.bottom= 29.9 +"px"; navdesign.style.borderBottomRightRadius= 100 +"%"; navdesign.style.borderBottomLeftRadius= 100 +"%";} //////////////////////////////////////////////////////// //suppression du div function designout(nav){nav.removeChild(navdesign);} /////////////////////////////////////////////////////// //pour appareil tactile function designclick(nav){ fixeddesign=1; nav.appendChild(navdesign); navdesign.style.position="relative"; navdesign.style.height=7 +"px"; navdesign.style.width=100 +"%"; navdesign.style.background="rgba(0,186,255,3)"; navdesign.style.bottom= 29.9 +"px"; navdesign.style.borderBottomRightRadius= 100 +"%"; navdesign.style.borderBottomLeftRadius= 100 +"%"; } //******************************************************* //barre de navigaion intelligente var body= document.getElementById("body"); document.onscroll= function(){ var a = body.scrollTop; var cible = document.getElementById("nav"); if(a >= 101){ cible.style.position= "fixed"; cible.style.top= 0; } else{ cible.style.position= "static"; } } //******************************************************* //design click lien reseau sociaux function clickdesign(cible){ cible.style.background="black"; cible.style.opacity= 60 + "%"; } //******************************************************* document.onscroll= function() { var element= document.getElementById("body"); var scrollUp= document.createElement("div"); element.appendChild(scrollUp); var a = body.scrollTop; scrollUp.style.borderRadius= 50+"%"; scrollUp.style.background= "black"; scrollUp.style.position="fixed"; scrollUp.style.top=78+"%"; scrollUp.style.left=88+"%"; scrollUp.style.width=70+"px"; scrollUp.style.height=70+"px"; if(a >= 400){ console.log("ok"); //scrollUp.style.opacity=100 +"%"; scrollUp.style.visibility= "visible"; } else{ //scrollUp.style.opacity=0 +"%"; console.log("non"); scrollUp.style.visibility= "hidden"; } } //****************************************************************** /*$.ajax({ type: 'POST', dataType: "json", url:'test.php', success: function(data) { try { data = JSON.parse(data); console.log(data); }catch(e) {} console.log(data); } });*/ $.ajax({ url: ("test.php"), type: 'POST', dataType:'json', success: function(data) { alert(data[0]); // alerts first string },error: function(err){ console.log('Erreur Ajax',err); alert("erreur ajax"); } }); var vcomm; var commentaire; vcomm = document.getElementById("VOS COMMENTAIRE"); onload=function addcomm(){ console.log("ajout"); commentaire = document.createElement('p') vcomm.appendChild(commentaire); commentaire.innerHTML="commentaire"; }
mon code html:
<!DOCTYPE html> <html id="body" lang='en' > <head> <meta charset="UTF-8" /> <title> Le babezien </title> <link rel="stylesheet" href="design.css" > <link rel="shortcut icon" href="babezien2.png"> <body > <header style="background-image: url('usthb.jpg');"> <center> <img id="icone" src="le babezien.jpg"> </center> </header> <nav id="nav" > <a href="" class="navchoice" id="nav1"><b>ACCUEIL</b> </a> <a href="" class="navchoice" id="nav2"><b>NOS ARTICLE</b></a> <a href="" class="navchoice" id="nav3"><b>CONTACT</b></a> <a href="" class="navchoice" id="nav4"><b>INFO</b></a> </nav> <article > <center> <div class="presontArt"> <p class="gauche"> Edition N°1 <b>Le Babezien</b> </p> <p class="droite">21/12/2019 <img id="timeArt" src="time.jpg"> </p></div> <img class="firstimg" class="ilsr" src="3.jpg"> <img class="ilsr" src="4.jpg"> <img class="ilsr" src="5.jpg"> <img class="ilsr" class="lastimg" src="6.jpg"> <div class="presontArt" > </center> <a href="" style="margin-left:10px;margin-right: 80%;background-color: rgba(90,90,90);color: white;text-decoration: none; ">telecharger le pdf </a> </div> <p style="display: flex;background:rgba(1,1,1,0.2);margin-right: 67%;border-radius: 20px;margin-left: 5px; " ">AJOUTER UN COMMENTAIRE:</p> <div class="encadrageCommentaire"> <form action="test.php" method="post"> <div class="commentaire"> <p >nom: </p><input type="texte" name="nom"></div> <div class="commentaire"><p>age: </p><input type="texte" name="age"></div> <div class="commentaire"><p>commentaire: </p><input style="min-height: 70px;" type="texte" name="le_commentaire"></div> <input style="background:rgba(1,1,1,0.2);width: 12%;margin-left: 85%; border-radius:0 0 5px 0;" type="submit" name="valider"> </form> </div> <div id="VOS COMMENTAIRE" class="encadrageCommentaire"> <p> </p> </div> </article> <aside> </aside> <footer > <div class="LigneHonrizontalFooter" ></div> <div style="display: flex;padding-top: 10px;justify-content: center; border-height:40px; "> <p><b>SUIVEZ Le Babezien</b></p> <a onclick="clickdesign(this)" href="https://www.facebook.com/Le-babezien-104889507687360/?__tn__=%2Cd%2CP-R&eid=ARC0wVBmgp6HR37Lc_GMHCaHVkq8l3GSztM-1JFCEA9yPn8KDTcS6ikhW4si7-1a1Cdr-B1slTl1QQpV"><img src="footer-icon-facebook.png"><p> facebook</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-youtube.png"><p> youtube</p></a> <a onclick="clickdesign(this)"><img src="footer-icon-instagram.png"><p> instagram</p></a> </div> </footer> </body> <script type="text/javascript"> var urlAjx = "<?php echo site_url('test.php'); ?>"; </script> <script type="text/javascript" src="jquery-3.5.1.js"></script> <script src="le babezien.js"></script> </html>
il ne faut pas de parenthèse
en plus, pourquoi ne pas utiliser la variable urlAjx ?
evite également de mettre des espaces ( ni de caractères accentués ou spéciaux (juste au cas où je préfère prévenir ) dans le nom de tes fichier (ou de tes dossiers)
A renommer, par exemple en
( et renommer le fichier également bien entendu)
url: ("test.php"),
en plus, pourquoi ne pas utiliser la variable urlAjx ?
evite également de mettre des espaces ( ni de caractères accentués ou spéciaux (juste au cas où je préfère prévenir ) dans le nom de tes fichier (ou de tes dossiers)
<script src="le babezien.js"></script>
A renommer, par exemple en
<script src="le_babezien.js"></script>
( et renommer le fichier également bien entendu)
non j'ai tester plusieur methode le url: urlajax ..... et ca me fait le meme resultat.
j'ai vu dans tuto comment les placer pour optimisé ca page.
t sure car ca ne ma jamais posé de probléme.
j'ai vu dans tuto comment les placer pour optimisé ca page.
t sure car ca ne ma jamais posé de probléme.
j'ai vu dans tuto comment les placer pour optimisé ca page
Ben change de tuto alors...
Car de cette façon.. la page html n'est pas "valide".
Ca peut marcher.. mais ce n'est pas bon.
Et oui.. j'en suis sûr.
Pour en revenir à ton url...
Ton code html .. il est dans un fichier qui se nomme comment ?
Ton fichier php, il se trouve dans quel répertoire par rapport à ton script html ?
en faite ca marche maintenant j'ai corrigé l' url.
mais reste cette erreur:
"Erreur Ajax {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}"
je ne sais pas du tout ces quoi je vais cherché, si tu connais aide moi
mais reste cette erreur:
"Erreur Ajax {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}"
je ne sais pas du tout ces quoi je vais cherché, si tu connais aide moi
bon ok,
j'ai essayer de comprendre.
ces pas une erreur ces ecris ereur ajax car il ya
mais ca veux dire qu'il n'a aplliquer le code
pouquoi ? il est ou le probléme.
j'ai essayer de comprendre.
ces pas une erreur ces ecris ereur ajax car il ya
console.log("ereur ajax")
mais ca veux dire qu'il n'a aplliquer le code
success success: function(data) {
alert(data[0]);
}
pouquoi ? il est ou le probléme.
je crois avoir compris ou est l'erreur ces au moment de l'envois.
esceque la facon donc jai crée le ARRAY est juste ?
en gros j'ai pris la primére ligne de ma colonne de la basse de donné.( pour testé aprés je vais ajouté un boucle )
esceque la facon donc jai crée le ARRAY est juste ?
en gros j'ai pris la primére ligne de ma colonne de la basse de donné.( pour testé aprés je vais ajouté un boucle )
$data = array('nom' => $row[nom],'age' => $row[age],'le_commentaire' => $row[le_commentaire] ); echo json_encode($data);
bon ok j'ai bien fait chauffé mon cevreau (je suis nouveau dans php hhh) et jai trouvé les erreur
Warning: Use of undefined constant nom - assumed 'nom' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Warning: Use of undefined constant age - assumed 'age' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Warning: Use of undefined constant le_commentaire - assumed 'le_commentaire' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Notice: Array to string conversion in C:\xampp\htdocs\test.php on line 52
Array{"nom":null,"age":null,"le_commentaire":null}
Warning: Use of undefined constant nom - assumed 'nom' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Warning: Use of undefined constant age - assumed 'age' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Warning: Use of undefined constant le_commentaire - assumed 'le_commentaire' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\test.php on line 51
Notice: Undefined variable: row in C:\xampp\htdocs\test.php on line 51
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\test.php on line 51
Notice: Array to string conversion in C:\xampp\htdocs\test.php on line 52
Array{"nom":null,"age":null,"le_commentaire":null}
Où je dois le mettre alors? Car j'ai suivi les info des forum.
Mais il faut :
- Le modifier comme ceci :
et dans le code html/php où tu fais appel à ton fichier js,
il faut placer des balises script