[RESOLU]Erreur code Suppression et modification des news

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU]Erreur code Suppression et modification des news

par Truc » 26 janv. 2006, 23:32

Ce n'est pas super comme méthode d'identification mais peut être que tu n'as pas besoin d'un systeme avec base de données :-k

Dans ton cas le mot de passe est donc fixe et toujours le même pour tout le monde.

Le plus simple est de mettre le mot de passe en session une fois qu'il a été validé et de verifier si la variable de session correspondante au mot de passe existe. Si tel est le cas afficher la "page cachée".
if (($mot_de_passe == "*****") || (isset($_SESSION['passe']) && $_SESSION['passe'] ==  "*****") )
{
$_SESSION['passe'] = $mot_de_passe;
?>
//page_cachée 
sans oublier de mettre "session_start()"
tout en haut de la page d'index !!
pour le fonctionnement des sessions regarde ceci.

par ratdelabo » 26 janv. 2006, 22:25

if (isset($_POST['mot_de_passe']))
{
   
   $mot_de_passe = $_POST['mot_de_passe'];
}
else 
{
   $mot_de_passe = ""; 
}

if ($mot_de_passe == "*****") 
{
?>
//page_cachée
<?
}

else
{

?>
<div id="identification">	
	<h1>Veuillez saisir le mot de passe qui vous a été envoyé par l'Administrateur</h1>
	<p>Si vous n'en avez pas, demandez-le au <a href="mailto:[email protected]">Webmaster</a></p>	
	
	<form method="post"> 
	
		<p>
		<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
		</p>
	</form>
</div>
<?

} 
?>
Voilà mon type de code pour la password ;)

par Truc » 26 janv. 2006, 22:14

comment se passe cette demande de mot de passe ?

utilise tu des variables de session ?

par ratdelabo » 26 janv. 2006, 22:09

Une erreur bête mais sans vous, jlaurais pas vue ! Merci beaucoup.
Question piège:
J'ai mis un mot de passe pour protéger cette page. Lorsque je clique sur "Modifier" ou "Supprimer", la page demandant le mot de passe se recharge (normal me direz-vous !). Comment faire pour aller cette fois directement sur la page de saisie (la page cachée quoi). ?

par Truc » 26 janv. 2006, 21:58

regarde les liens il y a deux fois "?":
 echo '<a href="index.php?p=rediger_news?modifier_news='
à remplacer par :
echo '<a href="index.php?p=rediger_news&modifier_news='
avec un "&"

par ratdelabo » 26 janv. 2006, 21:33

Voici le code des includes:
<?php
// C'est tout en bas que cela se passe pour modifier la photo du jour et le site du mois.

// Ici on indique les noms de lien associés au titre qui va s'incrire dans la barre du navigateur...
$titre_pages = array(
	'section_sixieme' => '::.. Section sixième ..::',
	'section_cinquieme' => '::.. Section cinquième ..::',
	'section_quatrieme' => '::.. Section quatrième ..::',
	'section_troisieme' => '::.. Section troisième ..::',
	'section_seconde' => '::.. Section seconde ..::',
	'section_premiere_s' => '::.. Section première S ..::',
	'section_premiere_es' => '::.. Section première ES ..::',
	'section_terminale_s' => '::.. Section terminale S ..::',
	'section_documentation' => '::.. Section documentation ..::',
	'livre_or' => '::.. Livre d OR du site ..::',
	'lecons' => '::.. Toutes les leçons ..::',
	'lecons_enseignant' => '::.. Section enseignants ..::',
	'lecons_college' => '::.. Section collège ..::',
	'lecons_lycee' => '::.. Section lycée ..::',
	'archives' => '::.. Les archives de news ..::',
	'rediger_news' => '::.. Rédiger une news pour le site ! ..::',
	'liste_news' => '::.. Voici les news déjà postées ..::',
// Cours de sixième
	'six_chap1' => '::.. Leçons SIXIEME, Chapitre 1',
	'six_chap2' => '::.. Leçons SIXIEME, Chapitre 2',
	'six_chap3' => '::.. Leçons SIXIEME, Chapitre 3',
	'six_chap1_part2' => '::.. Leçons SIXIEME, Partie 2, Chapiptre 1',
	'six_chap2_part2' => '::.. Leçons SIXIEME, Partie 2, Chapiptre 2',
// cours de cinquième
	'cinq_chap1' => '::.. Leçons CINQUIEME, Chapitre 1',
	'cinq_chap2' => '::.. Leçons CINQUIEME, Chapitre 2',
	'cinq_chap3' => '::.. Leçons CINQUIEME, Chapitre 3',
	'cinq_chap4' => '::.. Leçons CINQUIEME, Chapitre 4',
//cours de troisième
	'troi_chap1' => '::.. 3ème - Partie A, Chapitre 1 ..::',
	'troi_chap2' => '::.. 3ème - Partie A, Chapitre 2 ..::',
	'troi_chap3' => '::.. 3ème - Partie A, Chapitre 3 ..::');

// Ici sont indiqués les noms de liens associés à l'URL relative de chaque fichier correspondant...
	
$url_pages = array(
	'section_sixieme' => 'sections/section_sixieme.htm',
	'section_cinquieme' => 'sections/section_cinquieme.htm',
	'section_quatrieme' => 'sections/section_quatrieme.htm',
	'section_troisieme' => 'sections/section_troisieme.htm',
	'section_seconde' => 'sections/section_seconde.htm',
	'section_premiere_s' => 'sections/section_premiere_s.htm',
	'section_premiere_es' => 'sections/section_premiere_es.htm',
	'section_terminale_s' => 'sections/section_terminale_s.htm',
	'section_documentation' => 'sections/section_documentation.htm',
	'livre_or' => 'livre_or.php',
	'lecons' => 'sections/lecons.htm',
	'lecons_enseignant' => 'sections/lecons_enseignant.htm',
	'lecons_college' => 'sections/lecons_college.htm',
	'lecons_lycee' => 'sections/lecons_lycee.htm',
	'archives' => 'sections/archives.php',
	'rediger_news' => 'sections/rediger_news.php',
	'liste_news' => 'sections/liste_news.php',
// cours de sixieme 
	'six_chap1' => 'cours/sixieme/sixieme_chapitre1.htm',
	'six_chap2' => 'cours/sixieme/sixieme_chapitre2.htm',
	'six_chap3' => 'cours/sixieme/sixieme_chapitre3.htm',
	'six_chap1_part2' => 'cours/sixieme/sixieme_chap1_part2.htm',
	'six_chap2_part2' => 'cours/sixieme/sixieme_chap2_part2.htm',
//cours de cinquième
	'cinq_chap1' => 'cours/cinquieme/cinquieme_chapitre1.htm',
	'cinq_chap2' => 'cours/cinquieme/cinquieme_chapitre2.htm',
	'cinq_chap3' => 'cours/cinquieme/cinquieme_chapitre3.htm',
	'cinq_chap4' => 'cours/cinquieme/cinquieme_chapitre4.htm',
//cours de troisième
	'troi_chap1' => 'cours/troisieme/troisieme_chapitre1.htm',
	'troi_chap2' => 'cours/troisieme/troisieme_chapitre2.htm',
	'troi_chap3' => 'cours/troisieme/troisieme_chapitre3.htm');
	
if(isset($_GET['p']))
{
	if(array_key_exists($_GET['p'], $url_pages))
	{
		$page = $url_pages[$_GET['p']];
		$titre = $titre_pages[$_GET['p']];
	}
	else
	{
		$page = 'erreur.php';
		$titre = 'Erreur 404';
	}
}
else
{
	$page = 'accueil.php';
	$titre = '::.. Objectif SVT, Acceuil';
}

// Voici les formules magiques pour générer la photo du jour et le site du mois... La condition porte sur le titre de la page.

if($titre == '::.. Toutes les leçons ..::')
{  
	$photo_jour = '<a href="mailto:[email protected]"><img src="images/moi.gif" alt="Le visage de celui qui travaille dans l\'ombre..." /></a>';
	$site_mois = '<a href="http://escaut.portail-svt.com/"><img src="images/escaut.gif" alt="Un site très enrichissant ! Merci Monsieur MICHNIK !" /></a>';
}

else
{
	$photo_jour = '<a href="http://www.futura-sciences.com/news-offensive-pacifique-etats-unis-climat_8068.php/"><img src="images/ouragan.gif" alt="Le réchauffement climatique commence à inquiéter les USA" />';
	$site_mois = '<a href="http://www.futura-sciences.com/news-grippe-aviaire-printemps-virus-menacerait-afrique-europe_8072.php"><img src="images/grippe.gif" alt="L\'épidémie de grippe aviaire s\'étendrait bientôt à l\'Afrique et à l\'Europe!" /></a>';
}

par charabia » 26 janv. 2006, 21:27

Si tu pouvais nous fournir le code des tes includes ça serait mieux.

par ratdelabo » 26 janv. 2006, 21:18

Pas de changement...
Je fonctionne avec un système d'include à partir de la page index.php
J'ai donc changé les liens vers rediger_news.php et liste_news.php
Cela vient-il de là ?

par charabia » 26 janv. 2006, 21:13

Remplaces cette ligne par celle de ton code. Tu avais oublié un ". On verra ensuite s'il y a encore un souci.

par ratdelabo » 26 janv. 2006, 21:12

Et....?
Soyez plus explicite, s'il vous plaît, je poste dans le forum "Debiter en php" :lol:

par charabia » 26 janv. 2006, 21:08

mysql_query("DELETE FROM news WHERE id=".$_GET['supprimer_news']."");

[RESOLU]Erreur code Suppression et modification des news

par ratdelabo » 26 janv. 2006, 20:50

Bonsoir à tous,
il semble qu'il y ait une erreur dans mon code php concernant le listing de mes news car il m'est impossible, à partir de la page liste_news.php, de modifier ou de supprimer la moindre news.
Voici le code cette page:
<?php
mysql_connect("***", "****", "*****");  mysql_select_db("********");  

//----------------------------------------------------------------------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//----------------------------------------------------------------------------------------------------------------

if (isset($_POST['titre']) AND isset($_POST['contenu']) AND isset($_POST['pseudo']))
{
        $pseudo = addslashes($_POST['pseudo']);
        $titre = addslashes($_POST['titre']);
        $contenu = addslashes($_POST['contenu']);
        // On vérifie si c'est une modification de news ou pas
        if ($_POST['id_news'] == 0)
        {
                // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
                mysql_query("INSERT INTO news (titre, contenu, timestamp, pseudo, valide) VALUES ('" . $titre . "', '" . $contenu . "', '" . time() . "', '" . $pseudo . "', '1')");

        }
        else
        {
                // C'est une modification, on met juste à jour le titre, le contenu et le pseudo
                mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "', pseudo='" . $pseudo . "' WHERE id=" . $_POST['id_news']);
        }
}


// --------------------------------------------------------------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
// --------------------------------------------------------------------------------------------------------------

if (isset($_GET['supprimer_news']))  // Si on demande de supprimer une news
{
        // Alors on supprime la news correspondante
        mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
}
?>

<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
<th>Pseudo</th>
<th>Valider</th>
</tr>

<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))  // On fait une boucle pour lister les news
{
?>

<tr>
<td><?php echo '<a href="index.php?p=rediger_news?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="index.php?p=liste_news?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
<td><?php echo $donnees['pseudo'] ?></td>
<td><?php
        if (($donnees['valide']) == 0) { //Afficher "valider" si la news a été proposée
        ?>
        &nbsp;&nbsp;<a href="valinews.php?ampnewsavalid=<?php echo $donnees['id'];?>">valider</a>&nbsp;&nbsp;
        <?php
        }
        else{
        echo $donnees['valide']; 
        }
        ?>
</tr>

<?php
}  // Fin de la boucle qui liste les news
?>
</table>
L'erreur renvoyée est la suivante:
http://objectifsvt.free.fr/index.php?p= ... mer_news=5
Merci de vos réponses[/quote]