Gestionnaire de news basique avec upload d'images

Soyez le premier à donner votre avis sur cette source.

Vue 13 369 fois - Téléchargée 2 189 fois

Description

Bonjour

Aprés avoir dépanné un internaute sur le forum je poste ce bout de code minimaliste
pour gérer des news ...

j'ai ajouté un editeur js nicEdit (leger),
securisé l'upload,
securisé contre les injection sql / xss.

Une pagination mysqli que l'on pourra utiliser ulterieurement
!!!!! ATTENTION SUR FREE PAS DE Msqli FAUDRA REECRIRE AVEC MYSQL !!!!!
dans l'affichage en 'front office' (client)

un lien direct sur l'image

pour se connecter le pass est titi1234

a++

Source / Exemple :


<?php
session_start();
require('config/pass.php');

function dateFr($dateDatetimeMysql){
$d = explode(' ',$dateDatetimeMysql);
/*date*/
$d1=explode('-',$d[0]);

$mois=array(0=>'janvier',
            1=>'février',
            2=>'mars',
            3=>'avril',
            4=>'mai',
            5=>'juin',
            6=>'juillet',
            7=>'août',
            8=>'septembre',
            9=>'octobre',
            10=>'novembre',
            11=>'décembre');
            
$d[0]=$d1[2].' '.$mois[($d1[1]-1)].' '.$d1[0];
/*heure*/
$h=explode(':',$d[1]);
$d[1]=' à '.$h[0].' heure(s) '.$h[1].' mn';

$dateFR=$d[0].$d[1];
return $dateFR;
}

if($_SESSION['pass']===$pass){
/*le haut dans chaque fichier protege*/
?>

<html>
<head>
	<title>BIENVENUE NEWS ADMIN</title>
</head>
<body>

<div id="sample">
<script src="nicEdit/nicEdit.js" type="text/javascript"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() {
	new nicEditor({iconsPath : 'nicEdit/nicEditorIcons.gif'}).panelInstance('area3');
});
</script>
      
    <a href="deconnect.php">se deconnecter</a>
    
    <form method="post" action="creer.php" enctype="multipart/form-data" />
    
    titre: <br />
    <input type="text" style="width:500px;" name="titre"/><br />
    
    contenu: <br />
    <textarea name="contenu" style="width:500px; height:200px;" id="area3" /></textarea><br />Image :
    
    <input name="logo" type="file" size="50" /><br />
    <p>
    <input type="submit" name="upload" value="Envoyer">
    </p>   <br />
    
    </form>
    
</div>    
    
    <?php
    require "config/connection.php";
        
    $sql="SELECT * FROM ".$table." ORDER BY id DESC LIMIT 0,5";  /*a vous de regler voir upgrade pagination*/
    $req= mysql_query($sql) or die ('erreur sql!<br/>'.$sql.'<br/>'.mysql_error());
    
    while($data=mysql_fetch_assoc($req)){
    
    echo "ARTICLE ".$data["id"]." publié le ".dateFr($data["date_creation"])." <br />";
    
        if($data['image_news']!==""){
        echo '<a href="upload/'.$data['image_news'].'"><img src="upload/'.$data['image_news'].'" border="0" height="90" width="120" alt="img" /></a>';
        
        }else{
        echo $ligne='Pas d\'image dans la base<br />';
        }
    
    echo "<h3>".stripslashes(html_entity_decode($data["titre"]))."</h3>";
    echo "<p>".stripslashes(html_entity_decode($data["contenu"]))."</p>";
    echo "<a href=\"edit.php?id=".$data["id"]."\">Modifier cette news</a><br/>";
    echo "<a href=\"suppr.php?id=".$data["id"]."\">Supprimer cette news</a>";
    echo "<hr>";
    }

/*le bas dans chaque fichier protege*/

/*Dans pagination.php il y a une mise en page basique avec pagination pour votre site*/
/*mysqli ne fonction pas sur free.fr*/
if(file_exists('pagination_mysqli.php')){
@include('pagination_mysqli.php');
}else{
//rien
}

}else{
header('Location: deconnect.php');exit;
}
?>
</body>
</html>

Conclusion :


bonjour

editer
config/connection

si vous changer $pass="titi1234'
il faut le changer dans chaque fichier ou il est present
bon il y a pas trop de fichiers ou faire un include ... (pas eu le temps)

Vous pouvez tester le script sur
http://abyz.free.fr/manageur/index.php
code pour entrer : titi1234

free/.htaccess c'est pour free.fr le fameux php 1 pour passer à php5
creer aussi un repertoire sessions à la racine du site chez free.fr
autrement supprimer le .htaccess chez les autres henergeurs
sinon une erreur 500 sera envOyée

Pour plus de securite

1/ il est bien de copier le fichier .htaccess qui est dans le repertoire secuplus dans upload
si vous travailler avec un serveur apache

2/ sur free.fr je vous conseille de passer en php5 en copiant le .htaccess du repertoire free
à la racine de votre site pour les autres hebergeurs eviter cette manipulation

a++

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3 -
Oula je ne saurais trop te conseiller de jeter un oeil a ca, ton upload est pas du tout securise c'est vraiment pas exploitable...

http://www.phpcs.com/codes/UPLOADEUR-FICHIERS-MULTIPLES-V1_52956.aspx
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3 -
Mdr je suis hors sujet j'ai meme pas regarde qui avait poste :P
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3 -
Par contre tu devrai vraiment regarder du cote des moteurs de templates parce que c'est vraiment trop melange ou du cote javascript pour coder sur un MVC.
cod57
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8 -
bonjour

Tu as completement raison c'est pas securisé du tout et pas beau, mais bon, comme je l'ai dit c'est un bout de code qui vient du forum je vais ameliorer ça quand j'aurai 5 minutes
c'est un canevas ...

1/ je vais ajouter une table membres avec statut admin
2/ securise upload (en premier)
3/ peut etre une miniaturisation
4/ un editeur javascript à la place du textarea
5/ un install.php
6/ MVC oui aussi je vais separer
...


a++
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3 -
C'est le gros soucis avec PhP : avoir un code bien separe, perso etant alergique aux moteurs de templates que je trouve trop lourds et qui te demandent d'apprendre leur syntaxe j'ai opte pour un MVC base sur la techno AJAX ou ma view est ma page html mon modele est le code metier PhP et mon controleur est entierement en Javascript.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.