[RESOLU] feed rss et base de donné

Eléphanteau du PHP | 20 Messages

30 nov. 2013, 21:15

Merci encore Yann pour ton coup de main. On ,n'y est presque :D bon voilà j'ai fait ce que tu m'as dit copier collé. et cela m'a sorti cette erreur:
Notice: Undefined index: rss_link in /Applications/MAMP/htdocs/crousset/insertrss.php on line 5

Notice: Undefined variable: _SESSION in /Applications/MAMP/htdocs/crousset/insertrss.php on line 5

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'rss_link' cannot be null' in /Applications/MAMP/htdocs/crousset/insertrss.php:5 Stack trace: #0 /Applications/MAMP/htdocs/crousset/insertrss.php(5): PDOStatement->execute(Array) #1 {main} thrown in /Applications/MAMP/htdocs/crousset/insertrss.php on line 5


Donc je me dis y dois manqué un session_start() dans insertrss.php donc je vais l'ajouter, mais je ne sais pas du tout si le problème viens vraiment de la, mais je teste. Suis-je sur la bonne voie?
session_start();
include('dbconnector.php');



$resultats = $conn->prepare("insert into flux_rss values(null, ?, ?)");
$nb = $resultats->execute(array($_POST['rss_link'],  $_SESSION['emp_id']) );

if($nb === TRUE)
  echo "<p> flux inserés avec succès </p>";
else
    echo "Impossible d'inserer le flux";
Ensuite je me retrouve avec cette erreur:
Notice: Undefined index: rss_link in /Applications/MAMP/htdocs/crousset/insertrss.php on line 8

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'rss_link' cannot be null' in /Applications/MAMP/htdocs/crousset/insertrss.php:8 Stack trace: #0 /Applications/MAMP/htdocs/crousset/insertrss.php(8): PDOStatement->execute(Array) #1 {main} thrown in /Applications/MAMP/htdocs/crousset/insertrss.php on line 8
Ici je vois qu'il essaie de mettre rss_link en NULL mais c'est normalement le rss_id qui est auto incrément qui devrait s'insérer dans la BD en NULL. Alors je me dis qu'il manque une data dans ma requête ajax. j'essaye donc de l'ajouter. J'ai testé avec Get et POST mais l'erreur reste :(
<?php
session_start();
include('dbconnector.php');

$resultats = $conn->prepare("insert into flux_rss values(null, ?, ?)");
$nb = $resultats->execute(array($_POST['rss_link'],  $_SESSION['emp_id']) );

if($nb === TRUE)
  echo "<p> flux inserés avec succès </p>";
else
    echo "Impossible d'inserer le flux";
?>
[javascript] <script>
$(document).ready(function() {
$('#formrss').on('submit', function(e){
$.ajax({
type: 'POST',
url: "insertrss.php",
data: "rss_id"+ $('').val(),
"rss_link"+ $('#rss_link').val(),
dataType: 'text',
success:function(reponse){
$('#formrss').after('<p>'+reponse+'</response>'); //reponse du seveur si succès
},
error: function() {alert('Erreur serveur');} //reponse du seveur si échec
});

e.preventDefault();
});//submit
});[/javascript]

Suite a cella j’ai seulement une erreur dans la console : Unexpected token +.
Ses modifications ont elles réellement débogué mon code où je m'enfonce dans la boue?

Encore merci pour le moment je suis débutant, mais un jour lorsque je me serai amélioré je donnerai au suivant.
Encore merci:)

Mammouth du PHP | 571 Messages

30 nov. 2013, 22:16

je suis désolé j'avais oublié l'égalité ,j'aurai dû écrire ceci:
[javascript]
data: "rss_link ="+ $('#rss_link').val(),
[/javascript]

la version corrigée:
[javascript]


$(document).ready(function() {
$('#formrss').on('submit', function(e){
$.ajax({
type: 'POST',
url: "insertrss.php",
data: "rss_link ="+ $('#rss_link').val(),
dataType: 'text',
success:function(reponse){
$('#formrss').after('<p>'+reponse+'</response>'); //reponse du seveur si succès
},
error: function() {alert('Erreur serveur');} //reponse du seveur si échec
});

e.preventDefault();
});//submit
});

[/javascript]

la requête ajax ne transmettait pas la donnée du formulaire.Pour s'en prémunir il toujours effectuer un contrôle sur les données avant qu'elles ne soient insérées.
<?php
session_start();
include('dbconnector.php');

if(!empty($_POST['rss_link'] ) ){

$resultats = $conn->prepare("insert into flux_rss values(null, ?, ?)");
$nb = $resultats->execute(array($_POST['rss_link'],  $_SESSION['emp_id']) );

if($nb === TRUE)
  echo "<p> flux inserés avec succès </p>";
else
    echo "Impossible d'inserer le flux";
}else
echo " le champ rss_link ne peut être vide";

Eléphanteau du PHP | 20 Messages

02 déc. 2013, 23:42

Bon je peux dire que le problème est résolu merci Yann!