Page 1 sur 1

Problème d'affichage de news PHP

Posté : 21 juin 2012, 01:22
par nico44530
Bonjour,

J'ai un script PHP de news, et normalement quand un membre poste un article, il y a le nom et le prénom de celui qui l'a posté.
Donc je me connecte, c'est bien moi qui l'a posté, mais quand je connecte un autre membre, c'est son nom et son prénom à la place du miens.

Je pense que si le cookie "pseudo" existe, alors d'après la requête dans home.php, le nom et le prénom devrait être celui qui se connecte.
Mais moi je veux que ce soit celui qui a posté l'article.

PS : Ma base de donnée "wa_news" n'est pas la même que celle de mon espace membre, l'erreur viens peut être de là ?

Vous comprendrez mieux avec les codes :

home.php :
<?php
session_start();
require('include/connect.php');

if (!isset($_COOKIE['pseudo']))
{
	$reponse = '<div class="bloc_03">
					<h1 class="separate"><span class="lettrine">E</span>rreur d\'authentification !</h1>
					<p style="color:#ff0000;">Vous n\'êtes pas autorisé à accéder à cette page.</p>
				</div>';
}
$sql = connect_sql();
$pseudo_membre = $_SESSION['pseudo'];
$requete =  mysql_query("SELECT * FROM wa_communaute WHERE `pseudo`='$pseudo_membre'");
$result = mysql_fetch_array ($requete);

$id = $result['id'];
$pseudo = $result['pseudo'];
$nom = $result['nom'];
$prenom = $result['prenom'];
$mail = $result['mail'];
$sexe = $result['sexe'];

$adresse_image = $sexe ==1 ? 'images/upload/homme.png' : 'images/upload/femme.png';
$filename = 'images/upload/'.$id.'.png';vc
?>
[...]
<?php include('bloc-center.php'); ?>
[...]

bloc-center.php :
				<?php if(isset($_COOKIE["pseudo"])) { ?>
				<?php 
				$db_link = 	mysql_connect("...", "...", "...");
				mysql_select_db("...", $db_link);
				
				if(isset($_POST)) {
					foreach($_POST as $k => $v) {
						$_POST[$k] = trim(htmlspecialchars($v)) ;
					}
				}
				if(isset($_GET)) {
					foreach($_GET as $k => $v) {
						$_GET[$k] = trim(htmlspecialchars($v)) ;
					}
				}
				if(isset($_POST['send'])) {
					if($_POST['send'] == 'new') {
					$sql = "INSERT INTO wa_news (auteur,date,titre,news) values ('".$_POST['auteur']."',now(),'".$_POST['titre']."','".$_POST['news']."')";
					}
					elseif($_POST['send'] == 'update') {
					$sql = 'update wa_news set titre = "'.$_POST['titre'].'", auteur =
					"'.$_POST['auteur'].'", news = "'.$_POST['news'].'", date =
					"'.$_POST['date'].'" WHERE newsId = "'.$_POST['newsId'].'"';
					}
					mysql_query($sql,$db_link) or die(mysql_error());
				}
				if(isset($_GET['delete']) and is_numeric($_GET['delete'])) {
				   mysql_query("delete from wa_news where newsId = \"".$_GET['delete']."\"",$db_link);
				}
				if(isset($_GET['edit']) and is_numeric($_GET['edit'])) {
					$Id = $_GET['edit'] ;
					$sql = 'SELECT * FROM wa_news WHERE newsId="'.$newsId.'" LIMIT 1' ;
					$rc = mysql_query($sql,$db_link);
					while($data = mysql_fetch_array($rc)) { ?>
						<form action="admin.php" method="post">
							<strong>Modification d\'une news :</strong><br /><br />
							Titre<br />
							<input type="text" name="titre" maxlength="120"
							value="<?php echo htmlentities($data['titre']); ?>"/><br />
							Auteur<br />
							<input type="text" name="auteur" maxlenght="60"
							value="<?php echo htmlentities($data['auteur']); ?>" /><br />
							Date de la News<br />
							<input type="text" name="date" size="10" value="<?php echo $data['date']; ?>" />
							News (sans html)<br />
							<textarea name="news" cols="40"
							rows="6"><?php echo htmlentities($data['news']); ?></textarea>
							<br />
							<input type="submit" value="Valider" />
							<input type="hidden" name="newsId" value="<?php echo $_GET['edit']; ?>" />
							<input type="hidden" name="send" value="update" />
						</form>
					<?php }
				}
				else { ?>
					<div class="bloc_03">
						<h1 class="separate">Poster un article</h1>
						<form action="home.php" method="post">
							<input type="text" name="titre" maxlength="120" />
							<textarea name="news" cols="40" rows="6"></textarea><br />
							<input type="submit" value="Valider" />
							<input type="hidden" name="send" value="new" />
						</form>
					</div>
					<?php
					$sql = 'SELECT * FROM wa_news ORDER BY newsId DESC' ;
					$rc = mysql_query($sql,$db_link);
					while($data = mysql_fetch_array($rc)) { 
					$data['date'] = date('d/m/Y');
					?>
					<div class="bloc_03">
						<h1 class="separate"><?php echo $data['titre']; ?></h1>
						Le <?php echo $data['date']; ?> par <?php echo $prenom; ?> <?php echo $nom; ?>
						<br />=> <a href="?delete=<?php echo $data['newsId']; ?>">Supprimer</a> - 
						<a href="?edit=<?php echo $data['newsId']; ?>">Editer</a>
					</div>
					<?php }
				}
				mysql_close();
				?>
				<?php } else { ?>
				<div class="bloc_03">
					<h1 class="separate">Actualités à la Une</h1>
				</div>
				<?php } ?>
Merci d'avance :)

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 09:38
par xTG
<?php echo $prenom; ?> <?php echo $nom; ?>
Et pourquoi ne pas utiliser les vrai valeurs ? A savoir ce qui se trouve retourné dans la requête : $data ? :D

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 12:34
par nico44530
Tu veux dire en mettant : <?php echo $data['prenom']; ?> <?php echo $data['nom']; ?> ?
Ca va pas marché, il n'y a pas les champs prénom et nom dans la base de donnée wa_news
Et je préfère que ce soit le nom du membre qui poste :cry:

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 13:13
par xTG
Tu ne stockes donc pas l'identité de la personne qui poste ? C'est quoi la colonne auteur de ta table ?
Si tu ne la stockes pas comment veux-tu pouvoir l'afficher ?

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 13:44
par nico44530
Enfaite, oui il y a un champs "auteur" mais je préfère que ce soit directement de nom et le prénom qui soit automatiquement affiché.
Je préfère qu'on ai moins de champs à remplir, juste le champs "article", pas d'auteur : je préfère qu'il s'affiche automatiquement

Comment on peut faire ? :(

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 14:02
par xTG
Bah lors de l'enregistrement de l'article tu stockes $_COOKIE['pseudo'] dans la colonne auteur. :D
Et lors de l'affichage tu affiches la colonne auteur.

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 14:13
par nico44530
Euuu, tu peux me montrer avec le code que j'ai mis plus haut ^^ lol

Heureusement que t'es là, parce que y'a que toi qui me répond :)
Merci

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 14:19
par nico44530
Je crois que j'ai réussi, donc ça affiche bien le pseudo :) Merci,
Maintenant pour afficher le prénom et le nom, je vais créer deux autres cookies avec comme valeur le prénom et le nom, il reste plus qu'à faire ce que tu m'a dit.

Mais comment faire pour stocker $_COOKIE['prenom'] et $_COOKIE['nom'] dans la colonne auteur, parce que y'en a deux ! :wink:

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 15:41
par xTG
Une concaténation en PHP se fait ainsi :
$variable1 = 'hello';
$variable2 = 'world';
$affich = $variable1 . ' ' . $variable2; // concaténation aussi d'un espace
echo $affich; // hello world

Re: Problème d'affichage de news PHP

Posté : 21 juin 2012, 16:37
par nico44530
C'est pas comme ça que j'ai fait, mais merci quand même ^^

J'ai crée deux autres cookie avec les variables $nom et $prenom
Ensuite j'ai mis $_COOKIE['nom'] et $_COOKIE['prenom'] dans la colonne "Auteur"

Et ça fonctionne :)
Résolu