Ajout d'une fonction php pour masquer en variable une news
Résolu
Coukies94
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
Coukies94 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Coukies94 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voila le titre montre bien que je suis débutant dans le domaine du développement mais je vais essayer de vous expliquer mon besoin et je vous remercie d'avance de lire ce message.
J'ai mis en ligne ce site (que vous pouvez tester pour comprendre mon besoin) :
http://coukies.zapto.org:8000
================
C'est un outil que je met en place pour gérer des "news"
================
il est composé de 4 fichiers php pour ajouter / éditer / supprimer les news et un pour l'index et pour finir un fichier news.txt pour stocker les news.
================
Avec le développement actuel j'arrive donc à ajouter, éditer et supprimer les news mais je voudrais avoir une autre fonction sur ma page index.php qui me permet de conserver la news en la déplaçant par exemple dans un autre fichier archive (news_archive.txt par exemple) un bouton "archiver" a coté de "Supprimer / Editer" sur l'index.php serait idéal
================
Puis sur la page index ajouter un liens News archivés qui me permettrait d'afficher le contenu de "news_archive.txt"
================

==================
voici mon fichier index complet:
</html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Incidents et Demandes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<div align='center' ; class='fichier'><u><b>
<h2><u>Pour transmettre un fichier au support informatique :</u></h2>
</font></b></u>
<form method="POST" action="FichiersUploader\upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 10000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
</div>
<h2><u>Liste des demandes et incidents actifs au support informatique :</u></h2>
<div align='center' ; class='detail2'><b>
<?php
$liste_news = unserialize(file_get_contents('news.txt'));
if(!empty($liste_news)) {
foreach($liste_news as $id => $news) {
$news = array_map('htmlspecialchars', $news);
?>
<h2><?php echo $news['titre'] ?></h2>
<i>Ajoutée par <?php echo $news['auteur'] ?></i> <br />
<p><?php echo $news['contenu'] ?></p>
<i><a href="supprimer_news.php?id=<?php echo $id ?>" onclick="return confirm('Etes-vous sûr de vouloir supprimer cette news ?');">Supprimer</a> /
<a href="editer_news.php?id=<?php echo $id ?>">Editer</a></i> <br>_______________________________________________________________________<br>
<?php
}
}
else {
echo 'Il n\'y a aucun incidents ou demandes pour le moment<br />';
}
echo '<h2><a href="ajouter_news.php">Ajouter un incident ou une demande pour le service informatique</a></h2>';
?>
</div>
<div align='center' ; class='detail'><u><b><h1>Tchat</h1></font></b></u>
<!-- Debut shoutbox - https://www.i-tchat.com/ -->
<center>
<a target="_blank"; return false;" class="info"><FONT COLOR="Orange"><b>"Comment utiliser"</b></FONT COLOR="Orange"><span style="top: 5px; left: -10px;">
Pour pouvoir utiliser le tchat<br>
cliquer sur "connexion"
<br>
puis créer votre compte
<br>
</span></a>
====================================
===================================
voila par exemple mon fichier "supprimer_news.php" je peux vous montrer les autres si besoin
<?php
//Si l'id passé en paramètre dans l'url n'existe pas, c'est que le visiteur a été amenené ici par hasard
if(!isset($_GET['id'])) {
//Donc on redirige vers index.php
header('Location: index.php');
//Puis on stoppe l'exécution du script
exit();
}
//On récupère l'array des news
$news = unserialize(file_get_contents('news.txt'));
//Puis l'id passé en paramètre
$id = (int) $_GET['id'];
//Si la news existe
if(isset($news[$id])) {
//On efface l'index correspondant à l'id de la news
unset($news[$id]);
//Puis on sauvegarde le tout
file_put_contents('news.txt', serialize($news));
echo 'La news a bien été supprimée !';
}
else {
echo 'La news n\'existe pas.';
}
echo '<br />';
echo '<a href="index.php">Retour</a>';
====================================
===================================
Voici l'exemple d'une entré du fichier news.txt
a:1:{i:0;a:3:{s:5:"titre";s:21:"ici_le_texte_du_titre";s:6:"auteur";s:22:"ici_le_texte_du_pseudo";s:7:"contenu";s:34:"ici_le_texte_du_contenu_de_la_news";}}
====================================
===================================
Voila comment cela s'affiche sur la page index.php

====================================
===================================
Je suis conscient que les thermes que j'emploi ne sont certainement pas les bon et que le code laisse peut être à désirer alors si vous pouviez etre indulgent ;D
Je ne laisserais aucunes remarque de coté je suis la pour m'ameliorer et donc améliorer mon code
Merci l’équipe !
Alors voila le titre montre bien que je suis débutant dans le domaine du développement mais je vais essayer de vous expliquer mon besoin et je vous remercie d'avance de lire ce message.
J'ai mis en ligne ce site (que vous pouvez tester pour comprendre mon besoin) :
http://coukies.zapto.org:8000
================
C'est un outil que je met en place pour gérer des "news"
================
il est composé de 4 fichiers php pour ajouter / éditer / supprimer les news et un pour l'index et pour finir un fichier news.txt pour stocker les news.
================
Avec le développement actuel j'arrive donc à ajouter, éditer et supprimer les news mais je voudrais avoir une autre fonction sur ma page index.php qui me permet de conserver la news en la déplaçant par exemple dans un autre fichier archive (news_archive.txt par exemple) un bouton "archiver" a coté de "Supprimer / Editer" sur l'index.php serait idéal
================
Puis sur la page index ajouter un liens News archivés qui me permettrait d'afficher le contenu de "news_archive.txt"
================

==================
voici mon fichier index complet:
</html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Incidents et Demandes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<div align='center' ; class='fichier'><u><b>
<h2><u>Pour transmettre un fichier au support informatique :</u></h2>
</font></b></u>
<form method="POST" action="FichiersUploader\upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 10000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
</div>
<h2><u>Liste des demandes et incidents actifs au support informatique :</u></h2>
<div align='center' ; class='detail2'><b>
<?php
$liste_news = unserialize(file_get_contents('news.txt'));
if(!empty($liste_news)) {
foreach($liste_news as $id => $news) {
$news = array_map('htmlspecialchars', $news);
?>
<h2><?php echo $news['titre'] ?></h2>
<i>Ajoutée par <?php echo $news['auteur'] ?></i> <br />
<p><?php echo $news['contenu'] ?></p>
<i><a href="supprimer_news.php?id=<?php echo $id ?>" onclick="return confirm('Etes-vous sûr de vouloir supprimer cette news ?');">Supprimer</a> /
<a href="editer_news.php?id=<?php echo $id ?>">Editer</a></i> <br>_______________________________________________________________________<br>
<?php
}
}
else {
echo 'Il n\'y a aucun incidents ou demandes pour le moment<br />';
}
echo '<h2><a href="ajouter_news.php">Ajouter un incident ou une demande pour le service informatique</a></h2>';
?>
</div>
<div align='center' ; class='detail'><u><b><h1>Tchat</h1></font></b></u>
<!-- Debut shoutbox - https://www.i-tchat.com/ -->
<center>
<a target="_blank"; return false;" class="info"><FONT COLOR="Orange"><b>"Comment utiliser"</b></FONT COLOR="Orange"><span style="top: 5px; left: -10px;">
Pour pouvoir utiliser le tchat<br>
cliquer sur "connexion"
<br>
puis créer votre compte
<br>
</span></a>
====================================
===================================
voila par exemple mon fichier "supprimer_news.php" je peux vous montrer les autres si besoin
<?php
//Si l'id passé en paramètre dans l'url n'existe pas, c'est que le visiteur a été amenené ici par hasard
if(!isset($_GET['id'])) {
//Donc on redirige vers index.php
header('Location: index.php');
//Puis on stoppe l'exécution du script
exit();
}
//On récupère l'array des news
$news = unserialize(file_get_contents('news.txt'));
//Puis l'id passé en paramètre
$id = (int) $_GET['id'];
//Si la news existe
if(isset($news[$id])) {
//On efface l'index correspondant à l'id de la news
unset($news[$id]);
//Puis on sauvegarde le tout
file_put_contents('news.txt', serialize($news));
echo 'La news a bien été supprimée !';
}
else {
echo 'La news n\'existe pas.';
}
echo '<br />';
echo '<a href="index.php">Retour</a>';
====================================
===================================
Voici l'exemple d'une entré du fichier news.txt
a:1:{i:0;a:3:{s:5:"titre";s:21:"ici_le_texte_du_titre";s:6:"auteur";s:22:"ici_le_texte_du_pseudo";s:7:"contenu";s:34:"ici_le_texte_du_contenu_de_la_news";}}
====================================
===================================
Voila comment cela s'affiche sur la page index.php

====================================
===================================
Je suis conscient que les thermes que j'emploi ne sont certainement pas les bon et que le code laisse peut être à désirer alors si vous pouviez etre indulgent ;D
Je ne laisserais aucunes remarque de coté je suis la pour m'ameliorer et donc améliorer mon code
Merci l’équipe !
A voir également:
- Ajout d'une fonction php pour masquer en variable une news
- Fonction si et - Guide
- Masquer une conversation whatsapp - Guide
- Comment appeler en masquer - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Comment masquer une photo dans la galerie - Guide
3 réponses
Bonjour
Il te suffit d'utiliser les mêmes codes pour sauvegarder dans un autre fichier texte celles que tu veux archiver.
Quel est ton souci exactement ?
Il te suffit d'utiliser les mêmes codes pour sauvegarder dans un autre fichier texte celles que tu veux archiver.
Quel est ton souci exactement ?
Ca deverait faire l'affaire :
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
<?php //Activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //récupération propre des variables AVANT de les utiliser $id = !empty($_GET['id']) ? (int)$_GET['id'] : NULL; $titre = !empty($_POST['titre']) ? $_POST['titre'] : NULL; $contenu = !empty($_POST['contenu']) ? $_POST['contenu'] : NULL; $newsAmodifier = $id; if(!$id) { header('Location: index.php'); exit(); } if($titre && $contenu) { $news[$newsAmodifier]['titre'] = $titre; $news[$newsAmodifier]['contenu'] = $contenu; //On récupère l'array des news archivées $newsarchive = unserialize(file_get_contents('news.txt')); //On récupère l'array des news $news = unserialize(file_get_contents('news.txt')); file_put_contents('archive/news_archive.txt', serialize($news)); echo 'La news a bien été archivée'; if(isset($news[$id])) { //On efface l'index correspondant à l'id de la news unset($news[$id]); //Puis on sauvegarde le tout file_put_contents('news.txt', serialize($news)); echo 'La news a bien été supprimé du fichier news.txt !'; } echo '<br />'; echo '<a href="index.php">Retour</a>'; } else { ?> <form action="" method="POST"> Auteur : <strong><?php echo $news[$newsAmodifier]['auteur'] ?></strong><br /> <label for="titre">Titre de la news :</label> <input type="text" name="titre" id="titre" value="<?php echo $news[$newsAmodifier]['titre'] ?>" /><br /> <label for="contenu">Contenu de l'incident ou demande : </label><br /> <textarea name="contenu" id="contenu" rows="20" cols="60"><?php echo $news[$newsAmodifier]['contenu'] ?></textarea><br /> <input type="submit" value="Appliquer les modifications" /> <br> <a href="index.php">Retour</a> </form> <?php } ?>
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Bonjour Jordane, bien compris pour le code, désolé, je le ferais à l'avenir, c'est vrais que c'est beaucoup plus compréhensible.
Merci de prendre du temps pour moi et mon problème
======
Je viens d'essayer le code que tu m'a fournis, la copie dans news_archive.txt et la suppression de news.txt se fait bien en même temps mais, je n'arrive plus à archiver ma première news et j'ai encore mes deux erreurs quand j'archive la deuxième news:
1) Au moment d'archiver une news via index.php nous sommes obligé de cliquer sur le bouton "appliquer les modification" pour que le fichier "news_archive.txt" reçoive la news (j'ai en plus des erreurs que je ne comprend pas, voir le screenshot)

2) Dans mon index.php (et donc news.txt) si je créé la news 1 et la news 2 et que j'archive la news 2, je me retrouve dans le fichier news_archive.txt avec les 2 news .... et si j'archive une autre ligne ça écrase la news de news_archive.txt
==========
Si tu peux (et a le temps je te laisse voir en direct, le site est en ligne)
URL de mon index : http://coukies.zapto.org:8000/
URL de mon index_archive : http://coukies.zapto.org:8000/archive/index_archive.php
Merci de prendre du temps pour moi et mon problème
======
Je viens d'essayer le code que tu m'a fournis, la copie dans news_archive.txt et la suppression de news.txt se fait bien en même temps mais, je n'arrive plus à archiver ma première news et j'ai encore mes deux erreurs quand j'archive la deuxième news:
1) Au moment d'archiver une news via index.php nous sommes obligé de cliquer sur le bouton "appliquer les modification" pour que le fichier "news_archive.txt" reçoive la news (j'ai en plus des erreurs que je ne comprend pas, voir le screenshot)

2) Dans mon index.php (et donc news.txt) si je créé la news 1 et la news 2 et que j'archive la news 2, je me retrouve dans le fichier news_archive.txt avec les 2 news .... et si j'archive une autre ligne ça écrase la news de news_archive.txt
==========
Si tu peux (et a le temps je te laisse voir en direct, le site est en ligne)
URL de mon index : http://coukies.zapto.org:8000/
URL de mon index_archive : http://coukies.zapto.org:8000/archive/index_archive.php
Oupsss...
déjà commence par inverser quelques lignes dans le code :
A remplacer par :
déjà commence par inverser quelques lignes dans le code :
$news[$newsAmodifier]['titre'] = $titre; $news[$newsAmodifier]['contenu'] = $contenu; //On récupère l'array des news archivées $newsarchive = unserialize(file_get_contents('news.txt')); //On récupère l'array des news $news = unserialize(file_get_contents('news.txt'));
A remplacer par :
//On récupère l'array des news archivées $newsarchive = unserialize(file_get_contents('news.txt')); //On récupère l'array des news $news = unserialize(file_get_contents('news.txt')); $news[$newsAmodifier]['titre'] = $titre; $news[$newsAmodifier]['contenu'] = $contenu;
Je viens de faire les modifications dans le fichier archiver_news.php
Mais cela n'a pas réglé mes problèmes précédents (en fait j'ai l’impression que ça n'a pas changé le fonctionnement)
Voici mon code complet actuellement suite à ton conseil :
C'est peut être juste pas possible ce que je voudrais faire .... ça me déprime de pas y parvenir lol
Mais cela n'a pas réglé mes problèmes précédents (en fait j'ai l’impression que ça n'a pas changé le fonctionnement)
Voici mon code complet actuellement suite à ton conseil :
<?php //Activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //récupération propre des variables AVANT de les utiliser $id = !empty($_GET['id']) ? (int)$_GET['id'] : NULL; $titre = !empty($_POST['titre']) ? $_POST['titre'] : NULL; $contenu = !empty($_POST['contenu']) ? $_POST['contenu'] : NULL; $newsAmodifier = $id; if(!$id) { header('Location: index.php'); exit(); } if($titre && $contenu) { //On récupère l'array des news archivées $newsarchive = unserialize(file_get_contents('news.txt')); //On récupère l'array des news $news = unserialize(file_get_contents('news.txt')); $news[$newsAmodifier]['titre'] = $titre; $news[$newsAmodifier]['contenu'] = $contenu; //On récupère l'array des news $news = unserialize(file_get_contents('news.txt')); file_put_contents('archive/news_archive.txt', serialize($news)); echo 'La news a bien été archivée'; if(isset($news[$id])) { //On efface l'index correspondant à l'id de la news unset($news[$id]); //Puis on sauvegarde le tout file_put_contents('news.txt', serialize($news)); echo 'La news a bien été supprimé du fichier news.txt !'; } echo '<br />'; echo '<a href="index.php">Retour</a>'; } else { ?> <form action="" method="POST"> Auteur : <strong><?php echo $news[$newsAmodifier]['auteur'] ?></strong><br /> <label for="titre">Titre de la news :</label> <input type="text" name="titre" id="titre" value="<?php echo $news[$newsAmodifier]['titre'] ?>" /><br /> <label for="contenu">Contenu de l'incident ou demande : </label><br /> <textarea name="contenu" id="contenu" rows="20" cols="60"><?php echo $news[$newsAmodifier]['contenu'] ?></textarea><br /> <input type="submit" value="Appliquer les modifications" /> <br> <a href="index.php">Retour</a> </form> <?php } ?>
C'est peut être juste pas possible ce que je voudrais faire .... ça me déprime de pas y parvenir lol
J'aimerais si possible que l'on m'aide à modifier le fichier index.php pour ajouter la fonction archiver et que l'ont m'aide également à créer le fichier "archiver_news.php"
J'ai tenté de le faire mais sans succès ....
Il te faut donc créer un fichier archiver_news.php
Dans lequel tu placeras le code
-> Ajout de la news dans un autre fichier text
-> Suppression de la news dans l'ancien fichier
J'ai donc pu avancer et créé le fichier "archiver_news.php" et le fichier "news_archive.txt"
===========================
Il va bien ajouter la news dans un autre fichier "news_archive.txt" et il supprime bien la news du fichier "news.txt" mais deux problèmes (surement du au fait que j'ai tenté d'adapter le code du fichier "editer_news.php" pour faire l'archivage de la news) :
1) au moment d'archiver une news via mon index.php la suppression se fait bien en automatique mais nous sommes obligé de cliquer sur le bouton "appliquer les modification" pour que le fichier "news_archive.txt" reçoive la news => possible de le faire directement sans confirmation ?
2) dès que j'archive 2 news, la deuxième écrase ma première .... => possible d'incrémenter au lieu d'editer ?
=====================================
Voici le fichier "archiver_news.php"
=====================================
======================================
A toute fin utile :
Voici le fichier "ajouter_news.php" qui me sert pour ajouter des news à mon fichier news.txt il peut surement servir pour corriger mon code ci-dessus mais je n'y suis pas parvenu
======================================
Explications disponibles ici :ICI
Merci d'y penser dans tes prochains messages.Jordane45