[PHP] Problème de variable avec Script de News

Problème de variable avec Script de News [PHP] - PHP - Programmation

Marsh Posté le 15-11-2002 à 16:30:15    

Bonjour
 
Je débute en php et après avoir réussi mes pseudo-frames, je souhaite mettre en place Les News v2.2 .
Et j'ai un problème, qui est surement lié à ma version de PHP :4.2.3, je pense, variables globales sur off .
 
Le script pour la page d'administration:
 
 
<?php
require "news-conf.php3";
$lngfile="lang/fr.txt";
$lng = "_fr";
$phrases = get_translations($lngfile);
require ("haut.php3" );
if ($file == "addn" ) {
require ("addnews.php3" );
}
elseif ($file == "modn" ) {
require ("modnews.php3" );
}
elseif ($file == "deln" ) {
require ("delnews.php3" );
}
elseif ($file == "up" ) {
require ("upload.php3" );
}
else {
echo ("<center><font face=\"verdana\"><h3>".translate("Select an option" )."</h3></font></center>" );
}
 
require ("bas.php3" );
?>
 
Et les erreurs sur la page executée:
 
Notice: Undefined variable: files in E:\Intranet 2002\news\adminews\index_fr.php3 on line 7
 
Notice: Undefined variable: files in E:\Intranet 2002\news\adminews\index_fr.php3 on line 10
 
Notice: Undefined variable: files in E:\Intranet 2002\news\adminews\index_fr.php3 on line 13
 
Notice: Undefined variable: files in E:\Intranet 2002\news\adminews\index_fr.php3 on line 16
 
Donc une erreur à chaque ligne avec $file.
J'ai remis variable globals sur On dans php.ini, pareil :(
J'ai donc remis sur off
 
Et quand je rajoute çà au début du script :
 
$file = $_GET['file'];  
 
Les erreurs ci dessus disparaissent mais celle là apparait :
 
Undefined index: file in E:\Intranet 2002\news\adminews\index_fr.php3 on line 3
Pourtant j'ai accès à l'interface !
 
Mais cé pas fini  :cry:  
 
Je clic sur ajout d'une news :
 
Undefined variable: action in E:\Intranet 2002\news\adminews\addnews.php3 on line 8
 
Ligne 8 : switch($action)
 
Même erreur et même ligne pour modifier ou supprimer ...
 
Une autre juste pour modifier/supprimer :  
 
Undefined index: Date in E:\Intranet 2002\news\adminews\news-conf.php3 on line 106
 
Script : /* translate a string */
function translate($str,$vals="" ) {
 
  global $phrases;
 
  if ($phrases) {
   $p_str = $phrases[$str]; Ligne 106
        if ($p_str == "" ) {
          $p_str = $str;
        }
  } else {
    $p_str = $str;
  }
 
  if (gettype($vals)=="array" ) {
    $p_str = sprintf($p_str,$vals[0],$vals[1],$vals[2],$vals[3],$vals[4],$vals[5],$vals[6]);
  }
 
  return (trim($p_str));
 
 
J'espere que vous pourrez m'aider à comprendre ... sachant que je débute et que mon cerveau fume  :pt1cable:  :pt1cable:

Reply

Marsh Posté le 15-11-2002 à 16:30:15   

Reply

Marsh Posté le 15-11-2002 à 16:55:08    

Fouyaya, y a du boulot.
Alors euh bon, pour les erreurs du début "Undefined variable file", ba stu pouvais nous dire à quel moment tu initialises la variable, ça s'rait cool. Je suppose qu'elle se trouve dans un de tes require() m'enfin montre le code passke sans ça, on peut pas trop t'aider :)
Ensuite, pour les erreurs d'index, là c'est normal (enfin je crois). On va prendre l'exemple de ton dernier script. J'imagine que tu fais un translate("Date", "kekchose" ). Et à ta ligne 106, tu demandes la valeur du tableau $phrases correspondant à l'index Date. Perso, j'verrai plus un truc genre 1, 2 ou 148, vu que t'as un tableau. Ou alors, si tu fais une association du style "Date"->"15/11/2002" alors fais plutôt $phrases["Date"] (soit $phrases["$str"] dans ton code).
 
Enfin bref, t'as voulu faire concis pour pas prendre trop de place mais si j'étais toi, je donnerai toutes les infos pour UNE erreur. Comme ça, avec la correction d'une bin t'auras p'têt la correction de tout :p


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 18-11-2002 à 11:46:23    

Bon, merci pour ta réponse , mais comme je maitrise rien du tout pour l'instant, j'ai pris un script de news très simple pour mieux comprendre.
Ne tiens pas compte du script ci-dessus, j'en ai choisi un autre. Et j'ai aussi des erreurs, et je sais pas pourquoi mais je crois que c'est du à ma version de php, ca le faisait pas avec l'ancien ...
 
Voici le script complet :
 
<?php
 
require ("dv_config.php" );
 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Suprem">
<meta name="keywords" content="">
<title></title>
<link rel="stylesheet" href="css/<?php echo $css; ?>" type="text/css">
</head>
 
<body bgcolor="#FFFFFF" text="#000000" background="" leftmargin="0" topmargin="0">
<br>
<table border="0" cellspacing="0" cellpadding="10" width="650">
  <tr>
    <td height="151">  
      <div align="left">
 
<?php
 
$db = mysql_connect("$dv_host", "$dv_login", "$dv_pass" );
mysql_select_db("$dv_base",$db);
 
if ($selection == "toutes" )
    $query = "SELECT * FROM DVnews ORDER BY id DESC";
 
else
    $query = "SELECT * FROM DVnews ORDER BY id DESC LIMIT 0,5";
 
$result = mysql_query($query);
 
while ($row = mysql_fetch_array($result)) {
 
    $date = $row[date];
    $annee = date("Y", $date);
    $mois = date("m", $date);
    $jour = date("d", $date);
    $heures = date("H", $date);
    $minutes = date("i", $date);
 
    $contenu = nl2br($row[contenu]);
     
    $date = "le ".$jour."/".$mois."/".$annee." à ".$heures."h".$minutes;
 
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"450\" align=\"center\">\n";
    echo "<tr>\n";
    echo "<td>".$row[titre]."</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";  
    echo "<td> \n";
    echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\">\n";
    echo "<tr> \n";
    echo "<td> \n";
    echo "<p>    ".$contenu."</p>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td align=\"right\">".$date."</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    echo "<p> </p>\n";
 
}
 
/* fermeture de la connexion */
mysql_close($db);
?>

     </div>
    </td>
  </tr>
</table>
<table width="650" border="0" cellspacing="0" cellpadding="10">
  <tr>
    <td>
      <div align="center"><a href="dv_news.php?selection=toutes">Afficher toutes les news</a></div>
    </td>
  </tr>
</table>
<br>
<table width="650" border="0" cellspacing="0" cellpadding="10">
  <tr>
    <td>
 
    </td>
  </tr>
</table>
</body>
</html>
 
Lorsque je rentre dans l'interface d'admin et que je lance la page , il m'inscrit bien ma news dans la base Sql !  :)
 
Lorsque , ensuite, je lance le script ci-dessus dans ma page :  
 
Notice: Use of undefined constant date - assumed 'date' in E:\Intranet 2002\news\dv_news.php on line 37
 
Notice: Use of undefined constant contenu - assumed 'contenu' in E:\Intranet 2002\news\dv_news.php on line 44
 
Notice: Use of undefined constant titre - assumed 'titre' in E:\Intranet 2002\news\dv_news.php on line 50
 Ceci est un test  
    TEST DE LA PREMIERE NEWS
 
 
le 18/11/2002 à 11h09  
 
 
 
Afficher toutes les news  

 
C'est un problème de variable je sais mais j'y comprends encore pas grand chose, je débute  :whistle:  
 
Ligne 37 :  $date = $row[date];
Ligne 44 :  $contenu = nl2br($row[contenu]);
Ligne 50 :  echo "<td>".$row[titre]."</td>\n";
 
Ce que je comprends encore moins, c'est qu'il m'affiche bien ma news pourtant ....

Reply

Marsh Posté le 18-11-2002 à 11:50:05    

tixi a écrit a écrit :

 
Ligne 37 :  $date = $row["date"];
Ligne 44 :  $contenu = nl2br($row["contenu"]);
Ligne 50 :  echo "<td>".$row["titre"]."</td>\n";
 




 
Ca devrait aller mieux ;)


Message édité par Fred999 le 18-11-2002 à 11:50:16
Reply

Marsh Posté le 18-11-2002 à 11:57:12    

Merci Fred, j'ai honte de moi maintenant  :ange:  :ange:  :ange:

Reply

Marsh Posté le 18-11-2002 à 13:13:17    

Faut le savoir! :)
 
Tu ne la feras plus :)


Message édité par Fred999 le 18-11-2002 à 13:13:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed