Projet base de donnée

Eldouu
Invité n'ayant pas de compte PHPfrance

10 mai 2010, 16:40

Bonjour tout le monde,

je vais vous expliquer mon problème. Je dois faire un projet pour l'école, le projet consiste à faire un site Internet de journal qui contient des journalistes et rédacteurs. J'ai deux pages importantes , ajouter_articles.php qui permet à la personne d'ajouter l'article. Il y a aussi modifier_articles.php qui permet de modifier article. Le problème c'est que n'importe quelle journaliste qui ajoute un article peut modifier l'article des autres etc. J'aimerais que chaque journaliste peut simplement modifier son article pas lui des autres. J'ai une table Mysql.

J'ai deux tables =
tp2_php_articles
no_id_articles
titre_articles
date_articles
texte_articles
images_articles
auteur_articles
rubriques_articles
Mon fichier ajouter_articles .php
<?php

	$_SESSION['actif']='ajouter_articles.php';
	
	include 'entete.php';
	include 'menu.php';
	include 'contenu.php';
	
	  if ($_SESSION['categories_usagers'] == 'Membre') {
	header('Location: membre.php');
	echo'Membre';
   
   }
	if (!isset($_SESSION['pseudo_usagers']) and !isset($_SESSION['mot_de_passe_usagers'])) 
	{
		 header('Location: ../index.php');
	}
	
	if (isset($_POST['deconnexion']))
  {
  	$_SESSION["user"] = NULL;
	 session_destroy();
	 header("location: index.php" );

  }

	echo'
	
	
	<FORM METHOD="POST">
		<fieldset id="formulaire1">
			<ul> 
			<li>Pseudo : <input type="text" class="input" name="login" size=12></li>
			<li>Mot de passe : <input type="password" class="input" name="password" size=12></li></ul>';

	# CONNEXION DE L'ADMIN
	include 'identification.php';
	$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());
	mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

	#la requête sql
	$requete = 'select * from tp2_php_usagers;';

	
	#on fait exécuter la requête
	$resultat = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());;
	#on fait la boucle qui permet d'extraire chaque ligne d'enregistrement de la bd

	$loginOK = false;  // cf Astuce

	// On n'effectue les traitement qu'à la condition que
	// les informations aient été effectivement postées
if (isset($_POST['login']) && isset($_POST['password']) ) {

  $login = strtolower($_POST['login']);
  $pass_admin = strtolower($_POST['password']);

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT * FROM tp2_php_usagers WHERE pseudo_usagers = '$login';";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($pass_admin == $data['mot_de_passe_usagers']) {
      $loginOK = true;
	  
	  $_SESSION['categories_usagers']=$data['categories_usagers'];
	  
	  $_SESSION['nom_usager'] = $data['prenom_usagers'] . " " .$data['nom_usagers'] ;
	  
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) 
{
  $_SESSION['pseudo_usagers'] = $data['pseudo_usagers'];
  $_SESSION['mot_de_passe_usagers'] = $data['mot_de_passe_usagers']; 
  
   if ($_SESSION['categories_usagers'] == 'Administrateur' ) {
	header('Location: administration.php');
   echo'Administrateur';
   }
    if ($_SESSION['categories_usagers'] == 'Journaliste') {
	header('Location: journaliste.php');
	echo 'Journaliste';
   }
    if ($_SESSION['categories_usagers'] == 'Redacteur') {
	header('Location: redacteur.php');
	echo'Redacteur';
   
   }
    if ($_SESSION['categories_usagers'] == 'Membre') {
	header('Location: membre.php');
	echo'Membre';
   
   }
}

// Envois vers un message d'erreur si le login et password est pas bon
else if (isset($_POST['login']) && isset($_POST['password'])) {
	
	echo 'Erreur : Données entrées incorrectes';
	echo '<br />';
}
	mysql_close($connexion);
echo'<div id="bouton"><input id="connect" type="submit" value="Connexion" name="bouton_connexion">		
		</fieldset>
	</FORM>';
	
echo $_SESSION['nom_usager'].'</div>';
	
	//include ('accueil.php');
	//include ('competence.php');
	//include ('objectif.php');
	
	//accueil();
	//competence();
	//objectif();
	echo'<h2>La Section Administrateur</h2>';
	echo'<h4>Ajouter des Administrateurs</h4>';

	include 'identification.php';

if (isset($_POST['bouton_envoyer']))
{
	$titre_articles=$_POST["titre_articles"];
	$date_articles=$_POST["date_articles"];
	$images_articles=$_POST["images_articles"];
	$auteur_articles=$_POST["auteur_articles"];
	$rubriques_articles=$_POST["rubriques_articles"];
	$texte_articles=$_POST["texte_articles"];


	/*LA BD commence ici  */
	$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());
	mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());
	/*LA  requete SQL  */
	$requete = "insert into tp2_php_articles (no_id_articles, titre_articles, date_articles, images_articles, auteur_articles, rubriques_articles, texte_articles) values (null, '$titre_articles', '$date_articles', '$images_articles', '$auteur_articles', '$rubriques_articles', '$texte_articles' );";
	
	/*On éxécute la requete ici  */
	mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());
	echo "<br />";
	echo "<center>Bravo les données ont été ajoutés avec succès<br /><br />";
	
	mysql_close($connexion);
}	
?>

<br><br>
			
<div id="formulaire4"><FORM METHOD="POST">
<center>Ajouter un titre article <br><br>
Titre Article : <input name="titre_articles" size=10><br><br>
<center>Ajouter une date article <br><br>
Date Article : <input name="date_articles" size=10><br><br>
<center>Ajouter un image article <br><br>
Image Article : <input name="images_articles" size=10><br><br>
<center>Ajouter un auteur article <br><br>
Auteur Article : <input name="auteur_articles" size=10><br><br>
<center>Ajouter un nom article <br><br>
Nom Article: <input name="rubriques_articles" size=10><br><br>
<center>Ajouter un texte article <br><br>
Texte Article : <input name="texte_articles" size=10><br><br>


<br><br>
<input type="submit" value="Ajouter" name="bouton_envoyer">
<input type="reset" value="Effacer" name="bouton_effacer"><br><br>
</FORM>
</div>
<?php

if (isset($_POST['bouton_envoyer']))
{
	$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());
	mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

	/*La requete SQl */
	$requete2 = 'select * from tp2_php_articles;';
	/* on fait exécuter la requête */
	$resultat = mysql_query($requete2, $connexion) or die("Une erreur est survenue : " . mysql_error());;
	/*on fait la boucle qui permet d'extraire chaque ligne d'enregistrement de la bd */
	while($ligne = mysql_fetch_array($resultat))
	{
		echo $ligne['no_id_articles']." ".$ligne['titre_articles']." ".$ligne['date_articles']." ".$ligne['images_articles']." ".$ligne['auteur_articles']." ".$ligne['rubriques_articles']." ".$ligne['texte_articles']."<br />";
	}	
	mysql_close($connexion);
}

include 'footer.php';
?>
tp2_php_usagers
no_id_usagers
categories_usagers
nom_usagers
prenom_usagers
pseudo_usagers
courriel_usagers
mot_de_passe_usagers

modifier_articles.php
<?php

	$_SESSION['actif']='administration.php';
	
	include 'entete.php';
	include 'menu.php';
	include 'contenu.php';
	
	  if ($_SESSION['categories_usagers'] == 'Membre') {
	header('Location: membre.php');
	echo'Membre';
   
   }
	if (!isset($_SESSION['pseudo_usagers']) and !isset($_SESSION['mot_de_passe_usagers'])) 
	{
		 header('Location: ../index.php');
	}
if (isset($_POST['deconnexion']))
  {
  	$_SESSION["user"] = NULL;
	 session_destroy();
	 header("location: index.php" );

  }

	echo'
	
	
	<FORM METHOD="POST">
		<fieldset id="formulaire1">
			<ul> 
			<li>Pseudo : <input type="text" class="input" name="login" size=12></li>
			<li>Mot de passe : <input type="password" class="input" name="password" size=12></li></ul>';

	# CONNEXION DE L'ADMIN
	include 'identification.php';
	$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());
	mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

	#la requête sql
	$requete = 'select * from tp2_php_usagers;';

	
	#on fait exécuter la requête
	$resultat = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());;
	#on fait la boucle qui permet d'extraire chaque ligne d'enregistrement de la bd

	$loginOK = false;  // cf Astuce

	// On n'effectue les traitement qu'à la condition que
	// les informations aient été effectivement postées
if (isset($_POST['login']) && isset($_POST['password']) ) {

  $login = strtolower($_POST['login']);
  $pass_admin = strtolower($_POST['password']);

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT * FROM tp2_php_usagers WHERE pseudo_usagers = '$login';";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($pass_admin == $data['mot_de_passe_usagers']) {
      $loginOK = true;
	  
	  $_SESSION['categories_usagers']=$data['categories_usagers'];
	  
	  $_SESSION['nom_usager'] = $data['prenom_usagers'] . " " .$data['nom_usagers'] ;
	  
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) 
{
  $_SESSION['pseudo_usagers'] = $data['pseudo_usagers'];
  $_SESSION['mot_de_passe_usagers'] = $data['mot_de_passe_usagers']; 
  
   if ($_SESSION['categories_usagers'] == 'Administrateur' ) {
	header('Location: administration.php');
   echo'Administrateur';
   }
    if ($_SESSION['categories_usagers'] == 'Journaliste') {
	header('Location: journaliste.php');
	echo 'Journaliste';
   }
    if ($_SESSION['categories_usagers'] == 'Redacteur') {
	header('Location: redacteur.php');
	echo'Redacteur';
   
   }
    if ($_SESSION['categories_usagers'] == 'Membre') {
	header('Location: membre.php');
	echo'Membre';
   
   }
}

// Envois vers un message d'erreur si le login et password est pas bon
else if (isset($_POST['login']) && isset($_POST['password'])) {
	
	echo 'Erreur : Données entrées incorrectes';
	echo '<br />';
}
	mysql_close($connexion);
echo'<div id="bouton"><input id="connect" type="submit" value="Connexion" name="bouton_connexion">		
		</fieldset>
	</FORM>';
	
echo $_SESSION['nom_usager'].'</div>';
	
	//include ('accueil.php');
	//include ('competence.php');
	//include ('objectif.php');
	
	//accueil();
	//competence();
	//objectif();
	echo'<h2>La Section Administrateur</h2>
	<h4>Modifier des Administrateurs</h4>';
	
include 'identification.php';
		
$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());		
mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());
if (isset($_POST['bouton_enregistrer']))
{
	$no_id_articles=$_POST["no_id_articles"];
	$titre_articles=$_POST["titre_articles"];
	$date_articles=$_POST["date_articles"];
	$texte_articles=$_POST["texte_articles"];
	$images_articles=$_POST["images_articles"];
	$auteur_articles=$_POST["auteur_articles"];
	$rubriques_articles=$_POST["rubriques_articles"];



		# on se connecte au serveur de bd
		mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

		#la requête sql
		$requete = "update tp2_php_articles set titre_articles = '".$titre_articles."', date_articles = '".$date_articles."', texte_articles = '".$texte_articles."', images_articles = '".$images_articles."', auteur_articles = '".$auteur_articles."', rubriques_articles = '".$rubriques_articles."'  where no_id_articles = ".$no_id_articles.";";

		#on fait exécuter la requête
		$resultat = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());;
		
		echo "<center>Mise à jour effectuée</center>";	
		echo "<br /><br />";
		echo "
		<form method=POST action=administration.php>
		<input type=submit name='revenir' value='Retour'>
		</form>
		";
}
else		
	# Si le bouton modifier est cliqué, on attrape la personne sélectionnée		
if (isset($_POST['bouton_modifier']))
{
	$no_id_departement=$_POST["no_id_articles"];	
	
		mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

		#la requête sql
		$requete = "select * from tp2_php_articles where no_id_articles = ".$no_id_articles.";";
		
		#on fait exécuter la requête
		$resultat = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());;
		
		$ligne = mysql_fetch_array($resultat);
		
		$titre_articles=$ligne['titre_articles'];
		$date_articles=$ligne['date_articles'];
		$texte_articles=$ligne['texte_articles'];
		$images_articles=$ligne['images_articles'];
		$auteur_articles=$ligne['auteur_articles'];
		$rubriques_articles=$ligne['rubriques_articles'];

		
		echo'
		
			<FORM METHOD="POST">
			<input type=hidden name="no_id_articles" size=30 value="'.$no_id_articles.'">
			
			<center>Modifier le titre article<br><br>
			Nom : <input name="titre_articles" size=30 value="'.$titre_articles.'"><br><br>
			<center>Modifier la date article<br><br>
			Nom : <input name="date_articles" size=30 value="'.$date_articles.'"><br><br>
			<center>Modifier le texte article<br><br>
			Nom : <input name="texte_articles" size=30 value="'.$texte_articles.'"><br><br>
			<center>Modifier image article<br><br>
			Nom : <input name="images_articles" size=30 value="'.$images_articles.'"><br><br>
			<center>Modifier lauteur article<br><br>
			Nom : <input name="auteur_articles" size=30 value="'.$auteur_articles.'"><br><br>
			<center>Modifier la rubrique article<br><br>
			Nom : <input name="rubriques_articles" size=30 value="'.$rubriques_articles.'"><br><br>
		
			<input type="submit" value="Enregistrer" name="bouton_enregistrer">
			<INPUT TYPE="reset" VALUE="Effacer">
			</FORM>';
}
else
{
		mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());

		#la requête sql
		$requete = 'select * from tp2_php_articles;';
		
		#on fait exécuter la requête
		$resultat = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());;
		
		#on fait la boucle qui permet d'extraire chaque ligne d'enregistrement de la bd
		
		echo "<form method=POST>";
		while($ligne = mysql_fetch_array($resultat))
		{
			echo "<input type=radio name=no_id_articles value='".$ligne['no_id_articles']."'>";
			
			echo $ligne['no_id_articles']." ".$ligne['titre_articles']." ".$ligne['date_articles']." ".$ligne['texte_articles']." ".$ligne['images_articles']." ".$ligne['auteur_articles']." ".$ligne['rubriques_articles']."<br />";
		}
		echo "<br /><br />";
		echo '<input type="submit" value="Modifier" name="bouton_modifier">';
		echo "</form>";
}	

mysql_close($connexion);	
include 'footer.php';	

?>


J'aimerais savoir comment je pourrais faire ? où


Merci

ViPHP
ViPHP | 2291 Messages

10 mai 2010, 17:39

Salut,

A l'insertion de chaque article tu ajoute (via un champ supplémentaire dans ta table), le pseudo de l'utilisateur
$_SESSION['pseudo_usagers']
.
Puis il suffit a chaque modification de faire un test et voir si les pseudos correspondent. :wink:

exemple :
no_id_articles 
titre_articles 
date_articles 
texte_articles 
images_articles 
auteur_articles
rubriques_articles
id_pseudo
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eldouu
Invité n'ayant pas de compte PHPfrance

10 mai 2010, 19:41

Merci, mais ça ne fonctionne pas.

id_pseudo, il faut le créer ? dans la table articles ou la table usagers ?


Merci

Eldouu
Invité n'ayant pas de compte PHPfrance

11 mai 2010, 00:58

Il y a t-il une aimable personne qui pourrait m'aider ?


Merci

ViPHP
ViPHP | 1136 Messages

11 mai 2010, 08:02

Hi ,

quand tu rends une copie à ton prof , tu mets ton nom dessus pour indiquer que c'est bien la tienne , et qu'il ne mette pas ta note au voisin .. et bien là c'est pareil ....

tu as donc tes deux tables ( j'ai mis des nom au hasard .. ),

users
+iduser
nom
prénom
poids
mensurations
..

Et ta table article

articles
+idarticle
#iduser
titre
descrition
date_edition
...


La liaison entre tes deux tables se fait donc via la clef étrangère iduser , qui te permet , à la lecture d'un article , de savoir qui l'a écrit .. et donc d'autoriser le lecteur à le modifier s'il s'agit bien du rédacteur .

Ch.