Script de news PHP qui présente un bug pour affichage date

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 : Script de news PHP qui présente un bug pour affichage date

Re: Script de news PHP qui présente un bug pour affichage da

par xTG » 15 janv. 2012, 14:34

La date a donc déjà été formatée par une fonction date().
Tu dois appeler des fonctions dans un ordre qui n'était pas du tout prévu par le développeur.

On peut faire une rustine sans avoir à tout revoir de la forme :
if( is_numeric($date) ) // si la date est un timestamp
  $date = date($format, $date); // on la formate
A toi d'adapter avec les variables correspondantes.

Re: Script de news PHP qui présente un bug pour affichage da

par @rseno » 15 janv. 2012, 13:17

Bonjour, j'ai ajouter le bout de code comme mentionné voici le message qui apparait sur ma page maintenant

Code : Tout sélectionner

string(21) "Le 14/01/2012 à 22:09" Warning: date() expects parameter 2 to be long, string given in /home/lnvhv/www/niouz/functions.php on line 84 bool(false)

Re: Script de news PHP qui présente un bug pour affichage da

par xTG » 15 janv. 2012, 10:40

Tu rajoutes :
var_dump($DATABASE[$e[$i]]['date']);
dans ton code afin de voir lorsque le script est exécuté la valeur que tu tentes d'utiliser. :)
Comme précédemment dit il faut que ce soit un timestamp, donc un nombre.

Re: Script de news PHP qui présente un bug pour affichage da

par @rseno » 15 janv. 2012, 07:08

Bonjour,

Merci de la réponse! Je vais paraître un peu crétin, mais je ne sais pas trop comment procédé avec les indications que tu me donne.

Re: Script de news PHP qui présente un bug pour affichage da

par moogli » 15 janv. 2012, 00:57

salut,

vérifie ce qu'il y a dans $DATABASE[$e[$i]]['date'] ce ne doit pas être un timestamp !

utilise var_dump($DATABASE[$e[$i]]['date']); pour voir ce qu'il y a dedans

plus d'infos dans la doc de la fonction date :)

@+

Script de news PHP qui présente un bug pour affichage date

par @rseno » 14 janv. 2012, 22:47

Bonjour,

J'ai installer un module de news sur mon site, mais voilà qu'une erreur affiche sur la page test dont je me sert pour le moment.

Voici le code qui apparaît en erreur

Code : Tout sélectionner

Warning: date() expects [/download/telecharger-34076286-parameter parameter] 2 to be long, string given in /[/download/telecharger-34085672-home home]/lnvhv/www/niouz/functions.php on line 84
Voici le fichier référé à l'erreur

Code : Tout sélectionner

<?php /* © Rémi JEAN, 2009 [email protected] http://niouzproject.free.fr/ Ce logiciel est un programme informatique servant à gérer des news dynamiquement sans aucune base de données sql. Ce logiciel est régi par la licence CeCILL-B soumise au droit français et respectant les principes de diffusion des logiciels libres. Vous pouvez utiliser, modifier et/ou redistribuer ce programme sous les conditions de la licence CeCILL-B telle que diffusée par le CEA, le CNRS et l'INRIA sur le site "http://www.cecill.info". En contrepartie de l'accessibilité au code source et des droits de copie, de modification et de redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du programme, le titulaire des droits patrimoniaux et les concédants successifs. A cet égard l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation, à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve donc à des développeurs et des professionnels avertis possédant des connaissances informatiques approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez pris connaissance de la licence CeCILL-B, et que vous en avez accepté les termes. */ //* CONFIGURATION - Vous pouvez modifier les données librement *// $CONFIG=array( 'XXXXX', // Mot de passe (laissez vide pour désactiver la protection) (int)3, // Nombre de niouz par page (laissez le (int) devant le nombre de niouz) '\L\e d/m/Y \à H:i', // Format des dates (utiliser le format de la fonction PHP date();) 'niouz', // Répertoire contenant le script 'DESC' // Ordre d'affichage des niouz (ASC ou DESC) ); //* SECURITE *// session_start(); function security() { global $CONFIG; if(!empty($CONFIG[0])) { if(isset($_POST['password'])&&$_POST['password']==$CONFIG[0]) { $_SESSION['NIOUZ']=md5(sha1($_POST['password'])); $_SESSION['SID']=session_id(); } elseif(@$_SESSION['NIOUZ']!=md5(sha1($CONFIG[0]))||@$_SESSION['SID']!=session_id()) { header('location:./connexion.php'); exit; } } } //* SYSTEME *// if(is_file('./secure/database.dat')) $DATABASE=unserialize(file_get_contents('./secure/database.dat')); elseif(is_file("./$CONFIG[3]/secure/database.dat")) $DATABASE=unserialize(file_get_contents("./$CONFIG[3]/secure/database.dat")); else die('Erreur fatale, assurez vous que le répertoire contenant le script est correctement indiqué dans la configuration, ou alors vérifiez l\'existence du fichier database.dat.'); if(!empty($DATABASE)) { foreach($DATABASE as $key=>$value) { $e[]=$key; $f[]=$value['date']; } if($CONFIG[4]=='ASC') array_multisort($f,SORT_ASC,SORT_NUMERIC,$e); else array_multisort($f,SORT_DESC,SORT_NUMERIC,$e); } $nbniouz=count($DATABASE); $nbpages=ceil($nbniouz/$CONFIG[1]); $niouz=isset($_GET['niouz'])&&is_numeric($_GET['niouz'])&&$_GET['niouz']>0&&$_GET['niouz']<=$nbpages?(int)$_GET['niouz']:1; $lastniouz=$CONFIG[1]*$niouz; $firstniouz=$lastniouz>0?$lastniouz-$CONFIG[1]:0; $SYSTEM=array($nbniouz,$nbpages,$niouz,$lastniouz,$firstniouz); function showNiouz($layout) { global $DATABASE,$CONFIG,$SYSTEM,$i,$e; if($SYSTEM[0]>=1) { for($i=$SYSTEM[4];$i<$SYSTEM[3];$i++) { if(array_key_exists($i,$e)&&array_key_exists($e[$i],$DATABASE)) { $DATABASE[$e[$i]]['date']=date($CONFIG[2],$DATABASE[$e[$i]]['date']); @$showniouz.=preg_replace_callback('#\{([a-z]+)\}#i',create_function('$arg','global $DATABASE,$i,$e; return array_key_exists($arg[1],$DATABASE[$e[$i]])?$DATABASE[$e[$i]][$arg[1]]:$e[$i];'),$layout); } } return @$showniouz; } } function showPages() { global $SYSTEM; $ib=$SYSTEM[2]-1; $ia=$SYSTEM[2]+1; $before=($SYSTEM[2]>1)?" <a href='?niouz=$ib'><</a> ":" < "; $after=($SYSTEM[2]<$SYSTEM[1])?" <a href='?niouz=$ia'>></a> ":" > "; $first=($SYSTEM[2]>1)?" <a href='?niouz=1'><<</a> ":" << "; $last=($SYSTEM[2]<$SYSTEM[1])?" <a href='?niouz=$SYSTEM[1]'>>></a> ":" >> ";; for($i=1;$i<=$SYSTEM[1];$i++) @$showpage.=($SYSTEM[2]!=$i)?" <a href='?niouz=$i'>$i</a> ":" <strong>$i</strong> "; if($SYSTEM[0]<1) $showpage=" <strong>$i</strong> "; return $first.$before.$showpage.$after.$last; } //* MODULES *// function ShowModule() { if(isset($_GET['delet'])) return moduleDelet(); elseif(isset($_GET['edit'])) return moduleEdit(); elseif(isset($_GET['add'])) return moduleAdd(); } function moduleDelet() { global $DATABASE,$SYSTEM; $get=isset($_GET['id'])?$_GET['id']:'none'; if(array_key_exists($get,$DATABASE)) { $title=$DATABASE[$get]['title']; if(isset($_POST['yes'])) { unset($DATABASE[$get]); save('./secure/database.dat','w+',$DATABASE); } else return "<div class='wrapmax'><h1>Suppression de $title</h1><p>Confirmez vous l'ordre de suppression de la niouz <strong>$title</strong> ?</p><form name='form' method='post' action=''><input type='submit' name='yes' value='Oui' /> <input type='button' value='Non' onclick='javascript:window.location.href=\"?niouz=$SYSTEM[2]\";' /></form></div>"; } } function moduleEdit() { global $DATABASE,$SYSTEM; $get=isset($_GET['id'])?$_GET['id']:'none'; if(array_key_exists($get,$DATABASE)) { if(isset($_POST['yes'])) { $title=stripslashes($_POST['title']); $content=stripslashes($_POST['content']); $content=nl2br($content); $DATABASE[$get]=array('content'=>$content,'date'=>$DATABASE[$get]['date'],'title'=>$title); save('./secure/database.dat','w+',$DATABASE); } $replace=str_replace('<br />','',$DATABASE[$get]['content']); return "<div class='wrapmax'><h1>Modification de ".$DATABASE[$get]['title']." (Hauteur : <a href='javascript:textareaRows(+5,\"content\");'>+</a> <a href='javascript:textareaRows(-5,\"content\");'>-</a>)</h1><form name='form' method='post' action=''><table><tr><td><strong>Titre de la niouz</strong></td><td><input type='text' size='40' name='title' value='".$DATABASE[$get]['title']."' /></td></tr><tr><td colspan='2'><textarea cols='85' rows='10' id='content' name='content'>$replace</textarea><br /><small>Vous pouvez utiliser du HTML pour la mise en page de vos niouz.</small></td></tr></table><br /><input type='submit' name='yes' value='Valider' /> <input type='button' value='Fermer' onclick='javascript:window.location.href=\"?niouz=$SYSTEM[2]\";' /></form></div>"; } } function moduleAdd() { global $DATABASE,$SYSTEM; $i=0; while(array_key_exists($i,$DATABASE)) $i++; if(isset($_POST['yes'])) { if(!array_key_exists($_POST['i'],$DATABASE)) { $title=stripslashes($_POST['title']); $content=stripslashes($_POST['content']); $content=nl2br($content); $DATABASE[$_POST['i']]=array('content'=>$content,'date'=>time(),'title'=>$title); save('./secure/database.dat','w+',$DATABASE); } return "<div class='wrapmax'><h1>Ajout d'une niouz</h1><p>Votre nouvelle niouz vient d'être créée avec succès !<p><form name='form' action=''><input type='button' value='Continuer' onclick='javascript:window.location.href=\"?niouz=$SYSTEM[2]&id=$i&edit\";' /></form></div>"; } else return "<div class='wrapmax'><h1>Ajout d'une niouz (Hauteur : <a href='javascript:textareaRows(+5,\"content\");'>+</a> <a href='javascript:textareaRows(-5,\"content\");'>-</a>)</h1><form name='form' method='post' action=''><table><tr><td><strong>Titre de la niouz</strong></td><td><input type='text' size='40' name='title' value='' /></td></tr><td colspan='2'><textarea cols='85' rows='10' id='content' name='content'></textarea><br /><small>Vous pouvez utiliser du HTML pour la mise en page de vos niouz.</small></td></tr></table><br /><input type='submit' name='yes' value='Créer' /> <input type='button' value='Fermer' onclick='javascript:window.location.href=\"?niouz=$SYSTEM[2]\";' /><input type='hidden' name='i' value='$i'</form></div>"; } //* FONCTIONS *// function save($path,$method,$subject) { $fp=fopen($path,$method); fwrite($fp,serialize($subject)); return fclose($fp); } ?>
Quelqu'un à une idée de ce qui cloche? Car le créateur du module de news, ne semble plus faire de support, où il à changé d'adresse email sans modifier l'information dans son "ReadMe" de fichier

Note: (page où on peut voir cela: http://www.lnvhv.com/test)