[RESOLU] feed rss et base de donné

Eléphanteau du PHP | 20 Messages

21 nov. 2013, 03:59

Bonjour, à tous j’ai encore un problème en programmation. Et oui encore ! Je ne suis pas intégrateur, mais je fais un travail scolaire à terminer pour le 9 décembre et je dois faire un portail web pouvant être facilement personnalisé par chaque utilisateur.

Évidement je ne demande a personne de faire le travail au complet a ma place j'ai déjà faite une bonne partie du boulot, mais j'ai quelque difficulté avec la base de données les RSS et la sauvegarde des emplacements des div du portail. Toute suggestion qui m'aiderait a avancé son les bienvenus. Car je galère grave depuis une semaine. Merci d'avance au bon samaritain qui m'aidera a devenir meilleur.

Mon Skype est crewsept.

J'ai mis mon site en ligne à l'adresse suivante.
http://www.humanigenerix.com

Mise en situation
Vous êtes intégrateur pour une compagnie de votre choix qui veut disposer d’un portail web pouvant être facilement personnalisé par ses employés.
Pour pouvoir personnaliser leur portail, les employés disposeront d’un compte utilisateur et d’un mot de passe, qu’ils pourront gérer eux-mêmes. Une fois connectés, les utilisateurs auront accès à quatre panneaux permettant d’afficher :
  • des fils RSS
    le calendrier d’activités personnelles de l’employé
    un champ de recherche d’images sur Flickr
    une carte de Google maps avec les couleurs qui s’agencent au thème
L’utilisateur pourra ajouter et supprimer des fils RSS et des activités à son calendrier. Il pourra aussi choisir parmi quatre thèmes prédéfinis.

Base de données
La base de données devra stocker :
des informations de base sur les employés (pour s’inscrire, un employé doit entrer toutes les informations nécessaires à son identification : nom, prénom, courriel, mot de passe)
les informations concernant les préférences (le thème choisi, l’emplacement
les fils RSS à afficher
les activités (le titre, la date, l’heure de début et de fin)

Vous ne devez pas conserver de données qui ne concernent pas directement ce projet.

XML
L’utilisation du XML dans l’application permet de réduire le nombre de requêtes SQL envoyées au serveur dans le cadre de l’affichage des activités dans le calendrier. Vous devez utiliser une seule requête qui placera dans un XML toutes les activités et c’est ce XML qui sera interrogé lorsque l’utilisateur survolera les différentes journées dans le calendrier.

Interfaces
Les utilisateurs devront pouvoir s’inscrire, gérer leur profil (modifier leurs coordonnées), afficher leur portail et gérer leurs préférences. Le contenu doit s’afficher selon les paramètres de l’employé qui est connecté. La gestion du contenu devra se faire directement dans les panneaux : par exemple, une mention « ajouter un RSS » permettra d’ajouter un RSS sans rafraichir la page. On pourra également supprimer du contenu sans rafraichissement. En tout temps, on doit pouvoir se déconnecter. Les messages d’erreurs devront expliquer clairement les problèmes et les façons de les résoudre.

Contraintes
Tout au long du développement, il faudra considérer les éléments suivants :
  • Les panneaux devront s’afficher sur 2 colonnes.
    Le centre de la carte devra être positionné au 600, rue Saint-Jean.
    Le nom du style personnalisé de la carte devra être le nom de l’employé (nom et prénom).
    La recherche d’image sur Flickr devra chercher le texte entré par l’utilisateur parmi les tags.
    Le résultat devrait afficher des miniatures et proposer un lien vers la page de l’image.
    Une dizaine de résultats devraient s’afficher (en fonction du design de votre portail, entre 8 et 12).
    On veut voir seulement les 3 premiers items de chaque fil RSS.
    Le calendrier doit s’afficher en français.
    Pour les opérations qui prennent du temps (affichage des résultats Flickr, par exemple), utilisez un indicateur pour que l’utilisateur sache que sa.
    commande est en train d’être traitée.

voici une représentation de ma BD
[img]http://www.humanigenerix.com/Capture%20 ... .36.20.png[/img]

Eléphanteau du PHP | 20 Messages

21 nov. 2013, 04:06

Suite a mon premier post je vais préciser un des éléments qui me chicote le plus. C’est surtout la section de la fée RSS et et comment tout cela dois fonctionner avec la base de données. Je n'y comprends rien, car la table des RSS que notre prof nous as donnés a seulement 3 colonnes et tous les «tutos» que je vois sur le web on beaucoup plus de colonnes, du coup je me perds dans les explications, car ça ne représente pas exactement mon problème. Je serai parfaitement d'accord pour donner de mon temps pour faire des design si cela peut aider en retour la personne qui veut bien m'aider. Comme une sorte d'échange de service.

Et voila tout le site dans un zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Eléphanteau du PHP | 20 Messages

22 nov. 2013, 17:51

Bon puisque personne ne m'aide j'en conclue que c'est parce que mon problème est trop complexe je vais donc découper mon problème en plusieurs petits problèmes. Quelqu’un pourrait -il m‘expliquer comment stocké des flux RSS dans ma base de données et les afficher en suite? Pas les flux RSS de mon site, mais ceux d’un autre site par exemple celui ci-dessous.car tout ce que je trouve sur internet c’est comment fabriqué son propre flux RSS.

http://rss.feedsportal.com/c/808/f/665342/index.rss

Mammouth du PHP | 790 Messages

22 nov. 2013, 19:36

Salut,
je ne suis pas forcement le meilleur pour t'expliquer mais un flux rss ne fonctionne pour tout a fait comme tu l'explique:
Un site enregistre des articles dans une base de données puis grâce a un flux rss, une autre page web est capable de les affichés...
As tu commencer a coder, si ce n'est pas le cas, commence et fait voir ce que tu fais, tu obtiendras plus de réponses...

EDIT: lis cet article http://www.apprendre-php.com/tutoriels/ ... ement.html
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 nov. 2013, 23:16

Bon puisque personne ne m'aide j'en conclue que c'est parce que mon problème est trop complexe
Ou alors BÉNÉVOLES de ce site on autre chose à faire que t'aider, comme par exemple bosser, s’occuper de leurs famille etc.

tu donne un énoncé d’exercice sans franche indiqué ce que tu as fait.

Ce que tu demande c'est pas complexe à développer et tu peux trouver pas mal de chose déjà existante pour te faciliter la tache (comme des agrégateur rss).

Quand au modèle que tu indique, la table rss est très simple et si tu ne comprend pas ce qu'elle représente je pense que tu devrais (re) lire des cours sur la modélisation :)

rss_id : une clef primaire basique
rss_url : l'url du flux à afficher
fk_emp_id : clef étrangère de la table employé.

on a donc une url associée à un employé.
effectivement ce n'est pas le meilleur modèle car si plusieurs employé veulent le même flux rss il va y avoir des doublons.

une table rss
id : pk
rss_url : varchar (100 peux être trop petit pour une url)

une table de liaison entre employes et rss
rss_id : fk rss
emp_id : fk employes

cela permet d'avoir une liste de flux qui ne sont pas en doublon, voir de proposer une liste déjà existante.

Pour l'affichage un agrégateur rss qui prend en paramètre le flux choisit.
il existe surement des widgets rss permettant de simplifier ton code.

Commence par faire le squelette du site, la connexion utilisateur et les interface de gestion des paramètres tu feras le lecteur rss à la fin ce n'est le plus important.
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

23 nov. 2013, 04:18

Merci moogli de prendre le temps de me répondre.J'ai mis l'énoncé de peur de ne pas être suffisamment clair. Mais je vois que cela a eu l'effet contraire et je m'en excuse je ne suis pas très habitué sur les forums. Je vais reformuler le tout et je vais mettre mon code en essayant de bien m'exprimer.

1.Je ne suis pas sûr de comprendre tout à fait la dynamique des flux RSS arrêtés moi si je me trompe. Je sais qu'un site qui offre un service de flux RSS peut envoyer son contenu a d'autre site ou a des abonnés qui désirent suivre ce flux. Mais la ou cela devient flou pour moi c'est pour quoi je dois l'ajouter a ma BD?

2. SI je prends le début pour acquis et que je réussis à mettre un flux RSS dans ma BD alors comment je l'affiche comment ensuite ? De la même façon qu'un simple XML?

3. voici mon code:
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');




if (isset($_POST['submitrss'])){

	include('dbconnector.php');
						 

	$resultats = $conn->prepare("insert into rss values(null, ?, ?)");
	$nb = $resultats->execute(array($_POST['ajouterss']));
							
			
	
	
}

?>
<!DOCTYPE html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <title>Rss</title>
		<!--J'inclu les bibliothèques Jquery et Jquery UI -->
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
		<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
		<!--j'inclu ma feuille de style-->
		<link rel="stylesheet" href="css/style.css">
		
</head>
    <body>
<form>
				<h3>Ajouter un flux RSS</h3>
				
				<p style='line-height: 0.5px;'>entrer l'url de votre flux RSS</p>
					<input type='text' name='ajouterss' id='ajouterss' style='width: 300px;'>
					<input action='portail.php'type="submit" name="submitrss" id="submitrss" value="ajouter un flux" />
					
				</form>
				
				<div id='affichage_rss'></div>

    </body>
</html>
Il y a 3 colonnes à ma table rss_id qui est auto inclémente. rss_url qui vient du champ texte et le fk_emp_id qui est la clé étrangère de emp_id(employé id). Ce dernier je ne sais pas comment l'ajouter a la BD. Cela se fait'-il tout seul puisque qu'il est lié a emp_id?

le user pour ce connecté est [email protected] et le pass est qwerty
http://www.humanigenerix.com

Je voulais aussi préciser que j'ai déjà commencé le code j'ai intégrer le login, la map google la page portail et les panneaux qui ce glisse.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 nov. 2013, 00:38

Il n'y a pas de magie à l'insertion des données en base.
Une fk sert au respect de l'intégrité référentielle et donc t'empêche d'entrer des données foireuses dans les tables contenant la fk.
Cela sert aussi à retrouver les données associées.

Donc ton système de connexion garde en session l'id de l'employé qui est connecté et, à la validation du formulaire, tu insère cet id dans la table avec l'url du flux inséré dans le formulaire.

Un flux rss c'est avant tout un fichier XML alimenté par sont créateur.
Ton rôle, en tant que consommateur de ce flux, c'est simplement de le lire et d'afficher sont contenu.
Donc, par exemple, utiliser simplexml pour récupérer les infos qu'il contient et les afficher.
Tu pense a limiter les infos affichées et fournit une pagination.


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

24 nov. 2013, 10:33

Bon je commence a saisir le truc un peu plus. Je dois entrer des données dans ma BD. Ensuite je dois générer un XML à partir de la BD. Je dois donc entré les données de mon flux dans ma bd, mais je ne comprends pas pourquoi cela ne marche pas pourtant cela a bien marché pour le login.

Pour ajouter un employé, je faisais ceci et ça fonctionne:
$message = '';

if (isset($_POST['envoyer'])){

	include('dbconnector.php');
						 

	$resultats = $conn->prepare("insert into employes values(null, ?, ?, ?,SHA1(?))");
	$nb = $resultats->execute(array(
									$_POST['emp_prenom'],
									$_POST['emp_nom'],
									$_POST['emp_courriel'],
									$_POST['emp_pass'])
								);
							
			
	if ($nb > 0){					
		$_SESSION['emp_courriel'] = $_POST['emp_courriel'];
		header('Location: admin.php');
	}
	else{
		$message = "Une erreur semble s'être produite, veuillez réessayez";
	}
	
}
Par contre pour entrer les données du flux RSS dans ma base de données cela ne marche pas.
if (isset($_POST['submitrss'])){

						 

	$resultats = $conn->prepare("insert into flux_rss values(null, ?, ?, ?, ?)");
	$nb = $resultats->execute(array(
									$_POST['rss_title'],
									$_POST['rss_link'],
									$_POST['rss_desc'])
								);
							
			
	
	
}
Quelqu'un a une idée? Svp :?
<!DOCTYPE html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <title>Projet Syntèse</title>
		<!--J'inclu les bibliothèques Jquery et Jquery UI -->
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
		<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
		<!--j'inclu ma feuille de style-->
		<link rel="stylesheet" href="css/style.css">
		<!-- Plugin JS -->
		<script src="js/dragdrop.js"></script>
		<script src="js/moment.min.js"></script>
		<script src="js/ion.calendar.js"></script>
		<script src="js/local.js"></script>
		
		<!-- Plugin pour l'API google map -->
		<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
	    <script src="js/googlemap.js"></script>
</head>
    <body>
	
<div class="column" id="column1">
		<div class="dragbox" id="item1" >
			<h2>Google Map</h2>
			<div class="dragbox-content" >
				<div id="map-canvas"></div>

			</div>
		</div>
		<div class="dragbox" id="item2" >
			<h2>Flickr</h2>
			<div class="dragbox-content" >
					<form id="flickr">
							<h3>Recherche Flickr</h3><br />
							<input type="text" name="flickrecherche" id="flickrecherche"/><br />
					
					</form>
			</div>
		</div>
		<div class="dragbox" id="item3" >
			<h2>Flux RSS</h2>
			<div class="dragbox-content" >
				<form>
				<h3>Ajouter un flux RSS</h3>
				
				<p style='line-height: 0.5px;'>entrer l'URL de votre flux RSS</p>
					<input type='text' name='rss_title' id='rss_title' style='width: 300px;'>
					<input type='text' name='rss_link' id='rss_link' style='width: 300px;'>
					<input type='text' name='rss_desc' id='rss_desc' style='width: 300px; height: 100px;'><br/>
					<input action='portail.php'type="submit" name="submitrss" id="submitrss" value="ajouter un flux" />
					
				</form>
				
				<div id='affichage_rss'></div>
			</div>
		</div>
	</div>
	<div class="column" id="column2" >
		<div class="dragbox" id="item4" >
			<h2>Calendrier </h2>
			<div class="dragbox-content" >
				  <div class="demo__element">
    
        <div id="calendar-2"></div>
        
    </div>
        
        
        <form>
        	<h33>Ajouter une activité</h3>
        	
        	<p>Nom de l'activité
	        <input type='text' name='activity_titre' id='acti_titre'></p>
	        
	        <p>Date de l'activité
	        <input type='text' name='activity_titre' id='acti_titre' value='YYYY-MM-JJ' style='color: gray;'></p>
	        
	        <p>Début <select class="acti_jour_fin"><option value="1:00">1:00</option><option value="2:00">2:00</option><option value="3:00">3:00</option><option value="4:00">4:00</option><option value="5:00">5:00</option><option value="6:00">6:00</option><option value="7:00">7:00</option><option value="8:00">8:00</option><option value="9:00">9:00</option><option value="10:00" selected="selected">10:00</option><option value="11:00">11:00</option><option value="12:00">12:00</option><option value="13:00">13:00</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19:00">19:00</option><option value="20:00">20:00</option><option value="21:00">21:00</option><option value="22:00">22:00</option><option value="23:00">23:00</option><option value="24:00">24:00</option><option value="25:00">25:00</option><option value="26:00">26:00</option><option value="27:00">27:00</option><option value="28:00">28:00</option><option value="29:00">29:00</option><option value="30:00">30:00</option><option value="31:00">31:00</option></select></p>
	        
	        <p>Fin <select class="acti_jour_fin"><option value="1:00">1:00</option><option value="2:00">2:00</option><option value="3:00">3:00</option><option value="4:00">4:00</option><option value="5:00">5:00</option><option value="6:00">6:00</option><option value="7:00">7:00</option><option value="8:00">8:00</option><option value="9:00">9:00</option><option value="10:00" selected="selected">10:00</option><option value="11:00">11:00</option><option value="12:00">12:00</option><option value="13:00">13:00</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19:00">19:00</option><option value="20:00">20:00</option><option value="21:00">21:00</option><option value="22:00">22:00</option><option value="23:00">23:00</option><option value="24:00">24:00</option><option value="25:00">25:00</option><option value="26:00">26:00</option><option value="27:00">27:00</option><option value="28:00">28:00</option><option value="29:00">29:00</option><option value="30:00">30:00</option><option value="31:00">31:00</option></select></p>
      
	      <input type="submit" name="ajouter" id="ajouter" value="ajouter" />  
        </form>
   <div class="demo__result" id="result-2">...</div>       
   
			</div>
		</div>
		
	</div> 
 
    </body>
</html>


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 nov. 2013, 13:31

Bon je commence a saisir le truc un peu plus. Je dois entrer des données dans ma BD. Ensuite je dois générer un XML à partir de la BD. Je dois donc entré les données de mon flux dans ma bd, mais je ne comprends pas pourquoi cela ne marche pas pourtant cela a bien marché pour le login.
En fait non.
Ce n'est pas toi qui crée le XML.
Ce n'est pas à toi de gérer le flux de nouvelles d'un tiers ....
Toi tu doit simplement consumer le service (quand tu va faire tes courses tu ne remplis pas les rayons avant de remplir ton caddie ...).

De plus, sauf modification de la table rss, tu essai d'insérer 5 champs dans bue table qui n'en a que trois.
C'est normal que cela ne fonctionne pas.

Au point où tu en es je te conseil de voir avec ton prof qu'il t'explique correctement ce qu'un est attendu de toi, voir qu'il t'explique le l'idée que tu ne semble pas trop comprendre.
C'est normal d'avoir des explications et cela t'évite de faite n'importe quoi et de prendre du temps.

La ton problème n'est pas lié qu'au développement mais a la compréhension de la demande exacte. Et c'est le plus important ;)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

24 nov. 2013, 19:21

OK merci Moogli, je vais faire cela demain matin a la première heure. En attendant je vais continuer essayer de comprendre le truc au sujet de l'insertion des 5 champs. Je me doutais bien que cela ne marcherait pas, mais je me demande comment remplir ce dernier champ sachant que c'est une clef étrangère. Ce n'est pas l'utilisateur qui le remplira alors, l’info dois venir d’où, de la variable $_SESSION?

J'avais pensé à ceci, mais cela ne fonctionne pas non plus.
if (isset($_POST['submitrss'])){

						 

	$resultats = $conn->prepare("insert into flux_rss inner join employes on fk_emp_id = emp_id values(null, ?, ?, ?, ?)");
	$nb = $resultats->execute(array(
									$_POST['rss_title'],
									$_POST['rss_link'],
									$_POST['rss_desc'],
									$_SESSION['emp_id'])
									
								);
							
			
	
	
}

Suis-je sur la bonne voie? Si je m'occupe seulement de ce bout de code et que je mets de côté la compréhension de la demande exacte.
Merci de prendre le temps de m'expliquer. Simplement en rédigent des «posts» j'apprends énormément j'espère ne pas trop polluer ce forum avec mes questions.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 nov. 2013, 23:11

non il faut vraiment que tu revoie la base du SQL ta requête insert n'est pas syntaxiquement correcte.
Il faut toujours commencer par tester une requête dans un client SQL ;)

pour le SQL : http://sqlpro.developpez.com ;)

pour la clef primaire de l'utilisateur effectivement c'est ce que l'on stock généralement en session à la connexion de l'utilisateur.
est ce que tu as déjà un système de connexion fonctionnel ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

26 nov. 2013, 00:20

Oui :) en faite je viens de mettre en place le système de connexions correctement. Avant il ne marchait pas à 100% .
Je vais faire un petit résumé le voici:

Donc comme tu m'as dit de faire j’ai rencontré mon prof aujourd'hui et il m’a dit que je ne devais pas générer un flux RSS, mais bien faire afficher un flux RSS d'un autre site. J'ai aussi appris qu' afin de parvenir a l'affichage du flux RSS je devais parser le fichier XML. Pour ce faire j'ai utilisé magpierss (http://magpierss.sourceforge.net/) et une fonction que j'ai trouvée dans un tutu ( je me souviens plus ou :? ) la voici:
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');

// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");

function FeedParser($url_feed, $nb_items_affiches=3)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items, 0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

   // boucle sur tous les elements
   foreach ($items as $item)
   {
    $html .= "<li>";
    $html .= "<a href=\"".$item['link']."\">".$item['title']."</a>";
    $html .= "</li>\n";
   }
   $html .= "</ul>\n";
 }

 // retourne le code HTML a inclure dans la page
 return $html;
}
?>
Ensuite pour afficher il ne reste plus qu'a appelé la fonction avec l'URL du flux RSS en paramètre. Mais ce n'est pas fini, maintenant que j'ai réussi a faire afficher les RSS avec l'URL en paramètre je dois faire en sorte que le l'application prenne l'URL dans ma base de données... Bref voilà ou j'en suis:

index.php voici ma page de login:
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
session_start();

$message = '';

if (isset($_POST['envoyer'])){

	include('dbconnector.php');

	$resultats = $conn->prepare("select count(*) as nb, emp_id from employes where emp_courriel = ? and emp_pass  = sha1(?)");
	$resultats->execute(array($_POST['emp_courriel'], $_POST['emp_pass']));
	$data = $resultats->fetch(PDO::FETCH_OBJ);
	if ($data->nb > 0){
		$_SESSION['emp_id'] = $data->emp_id;
		header('Location: portail.php');
		
	}
	else{
		$message = 'Mauvaise combinaison de nom d\'utilisateur et de mot de passe';
	}
	
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
<script>
function message(frm){
	retour = true;
	// si le nom et le mot de passe sont vides
	if (frm.emp_courriel.value == "" && frm.emp_pass.value == ""){
		document.getElementById("resultat").innerHTML = 
		"Vous devez entrer le nom d'utilisateur et le mot de passe";
		retour = false;
	}
	// sinon si le nom est vide (et donc le mot de passe est rempli)
	else if(frm.emp_courriel.value == ""){
		document.getElementById("resultat").innerHTML = "Vous devez entrer le nom d'utilisateur";
		retour = false;
	}
	// sinon si le mot de passe est vide (et donc le nom est rempli)
	else if(frm.emp_pass.value == ""){
		document.getElementById("resultat").innerHTML = "Vous devez entrer le mot de passe";
		retour = false;
	}
	// sinon : il ne reste qu'un seul cas possible, les deux champs sont remplis
	else {
		document.getElementById("resultat").innerHTML = "Connexion en cours...";
	}
	return retour;
}

</script>
</head>

<body>

<div style="width: 260px; border: 1px solid #000; margin: 100px auto;">
<form name="connexion" id="connexion" action="index.php" onsubmit="return message(this)" method="post">
<h1>Connexion</h1>
<table>
	<tr>
    	<td>Courriel : </td>
        <td><input type="text" name="emp_courriel" id="emp_courriel"  /></td>
    </tr>
    <tr>
    	<td>Mot de passe : </td>
        <td><input type="password" name="emp_pass" id="emp_pass"  /></td>
    </tr>
    <tr>
		<td colspan="2" align="center"><input type="submit" name="envoyer" id="envoyer" value="Envoyer" /></td>
    </tr>
</table>
<div id="resultat"><?php echo $message; ?></div>
Pas encore inscrit? <a href="ajouter.php">Inscrivez-vous</a>!
</form>
</div>
</body>
</html>

Et ensuite la page portail.php
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
session_start();

//je check si la variable $_SESSION est règlè 

if (!isset($_SESSION['emp_id'])){
	header('Location:index.php');
	
}
//Je me connect a ma BD
include('dbconnector.php');
if (isset($_POST['ajouter'])){

	
						 

	$resultats = $conn->prepare("insert into activites values(null, ?, ?, ?, ?)");
	$nb = $resultats->execute(array(
									$_POST['acti_titre'],
									$_POST['acti_annee'],
									$_POST['acti_mois'],
									$_POST['acti_jour'])
								);
							
			
	
	
}

if (isset($_POST['submitrss'])){

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

?>
<!DOCTYPE html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <title>Projet Syntèse</title>
		<!--J'inclu les bibliothèques Jquery et Jquery UI -->
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
		<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
		<!--j'inclu ma feuille de style-->
		<link rel="stylesheet" href="css/style.css">
		<!-- Plugin JS Drag and drop-->
		<script src="js/dragdrop.js"></script>
		<!-- Plugin JS Calendrier-->
		<script src="js/moment.min.js"></script>
		<script src="js/ion.calendar.js"></script>
		<script src="js/local.js"></script>
		
		<!-- Plugin pour l'API google map -->
		<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
	    <script src="js/googlemap.js"></script>
</head>
    <body>
    <a href="logout.php" style='width: 100%;'>Déconnexion</a>
	
<div class="column" id="column1">
		<div class="dragbox" id="item1" >
			<h2>Google Map</h2>
			<div class="dragbox-content" >
				<div id="map-canvas"></div>

			</div>
		</div>
		<div class="dragbox" id="item2" >
			<h2>Flickr</h2>
			<div class="dragbox-content" >
					<form id="flickr">
							<h3>Recherche Flickr</h3><br />
							<input type="text" name="flickrecherche" id="flickrecherche"/><br />
					
					</form>
			</div>
		</div>
		<div class="dragbox" id="item3" >
			<h2>Flux rss</h2>
			<div class="dragbox-content" >
				<form method='post'>
				<h3>Ajouter un flux RSS</h3>
				
				<p style='line-height: 0.5px;'>entrer l'url de votre flux RSS</p>
				
					<input type='text' name='rss_link' id='rss_link' style='width: 255px;'><br/>
					<input action=''type="submit" name="submitrss" id="submitrss" value="ajouter un flux" />
					<?php
					// requete pour aller hercher tous les RSS de l'utilisateur connecté
						$resultats = $conn->prepare("select rss_link from flux_rss where fk_emp_id = ?");
						$resultats->execute(array($_SESSION['emp_id']));
						
					
					// dans ton while
						// tu appelles feedParser($data-rssurl)
						require_once("feedparser.php");
						echo FeedParser($data->rss_link);
					?>			
				</form>
				
						
			</div>
		</div>
	</div>
	<div class="column" id="column2" >
		<div class="dragbox" id="item4" >
			<h2>Calendrier </h2>
			<div class="dragbox-content" >
				  <div class="demo__element">
    
        <div id="calendar-2"></div>
        
    </div>
        
        
        <form>
        	<h3>Ajouter une activité</h3>
        	
        	<p>Nom de l'activité<br/>
	        <input type='text' name='activity_titre' id='acti_titre'></p>
	        
	        <p>Date de l'activité<br/>
	        <input type='text' name='activity_titre' id='acti_titre' value='YYYY-MM-JJ' style='color: gray;'></p>
	        
	        <p>Début <select class="acti_jour_fin"><option value="1:00">1:00</option><option value="2:00">2:00</option><option value="3:00">3:00</option><option value="4:00">4:00</option><option value="5:00">5:00</option><option value="6:00">6:00</option><option value="7:00">7:00</option><option value="8:00">8:00</option><option value="9:00">9:00</option><option value="10:00" selected="selected">10:00</option><option value="11:00">11:00</option><option value="12:00">12:00</option><option value="13:00">13:00</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19:00">19:00</option><option value="20:00">20:00</option><option value="21:00">21:00</option><option value="22:00">22:00</option><option value="23:00">23:00</option><option value="24:00">24:00</option><option value="25:00">25:00</option><option value="26:00">26:00</option><option value="27:00">27:00</option><option value="28:00">28:00</option><option value="29:00">29:00</option><option value="30:00">30:00</option><option value="31:00">31:00</option></select></p>
	        
	        <p>Fin <select class="acti_jour_fin"><option value="1:00">1:00</option><option value="2:00">2:00</option><option value="3:00">3:00</option><option value="4:00">4:00</option><option value="5:00">5:00</option><option value="6:00">6:00</option><option value="7:00">7:00</option><option value="8:00">8:00</option><option value="9:00">9:00</option><option value="10:00" selected="selected">10:00</option><option value="11:00">11:00</option><option value="12:00">12:00</option><option value="13:00">13:00</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19:00">19:00</option><option value="20:00">20:00</option><option value="21:00">21:00</option><option value="22:00">22:00</option><option value="23:00">23:00</option><option value="24:00">24:00</option><option value="25:00">25:00</option><option value="26:00">26:00</option><option value="27:00">27:00</option><option value="28:00">28:00</option><option value="29:00">29:00</option><option value="30:00">30:00</option><option value="31:00">31:00</option></select></p>
      
	      <input type="submit" name="ajouter" id="ajouter" value="ajouter" />  
        </form>
   <div class="demo__result" id="result-2">...</div>       
   
			</div>
		</div>
		
	</div> 
 
    </body>
</html>

Malheureusement j'ai encore 2 bugs mais ça se précise. Voici les 2 erreurs :
Notice: undefined variable: data in portail.php on line 107
et
trying to get property of non- object in portail.php on line 107
Cela ce trouve a l'endroit ou vous pouvez voir : require_once("feedparser.php");
echo FeedParser($data->rss_link);

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 nov. 2013, 01:30

il faut toujours partir du principe que php à raison et toi tors même si cela ne fait pas toujours plaisir ;)

et la pour le coup effectivement la variable $data n'existe pas.
la seconde erreur indique que tu veux une propriété objet de quelque qui n'en est pas un (c'est null ;)).

la il te manque le fetch ...

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 20 Messages

29 nov. 2013, 20:21

Bon voilà j'ai réussi a faire l’ajout de mon flux RSS , mais je viens de me rendre compte que la requête devait être en apax afin que la page ne cette recharge pas #-o j’ai donc déplacé ma requête SQL dans un fichier insertrss.php que voici:
<?php
include('dbconnector.php');

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

?>
Et dans la page ou ce trouve le bouton ajouter RSS je mis la requête ajax suivante:
[javascript] $(document).ready(function(){
$('#formrss').on('submit', function(e){
e.preventDefault();
rss_link = $('#rss_link');

//requête ajax pour l'insertion dans la BD
$.ajax({
type: "GET",
url: "insertrss.php",
dataType: "html",
data: {
rss_link: rss_link.val(),
},

});
});

});[/javascript]

Le problème viens probablement du fait que dans la requête ajax je ne lui passe pas la variable session et je ne trouve pas comment faire un internet quelqu'un a une idée? Il n'y a pas de message d'erreur, mais la page ne recharge plus quand le clic sur LE bouton.... c'est bien mais les donnée ne s'insert pas.

Mammouth du PHP | 571 Messages

30 nov. 2013, 13:38

tu ne pas peux transmettre les données avec GET dans la requête ajax et vouloir les récupérer, dans le script de traitement php, avec POST. Soit POST côté ajax et POST côté php , soit GET côté ajax et GET en PHP:
//insertrss.php
<?php
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]

$(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]