Voilà mon pb. J'ai récupéré un script de news "VRNews" que je souhaite modifié un peu pour mon utilisation. Il marche très bien en local mais j'ai un soucis sur mon espace web.
En fait, je peux ajouter une news sans pb, mais je ne peux ni récupérer les données des news afin de les modifier (les champs restent vide), ni supprimer une news. Il semblerait qu'il ne veuille pas prendre en compte l'id en question.
Le pb se pose donc pour -> else if($_GET['act']=="edit")
et -> else if($_GET['act']=="del")
J'ai beau cherché, je trouve pas
Merci de votre aide
Voici le code (si quelqu'un peut m'aider) :
<?php
$fichierins="install.php";
if(file_exists($fichierins))
{
include('install.php');
}
else
{
require('config.php');
echo'<html>
<head>
<title>VRNews v1.1.1 - Administration</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="">
<LINK media="screen" href="news.css" type="text/css" rel="stylesheet">
<script language="javascript" type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas"
});
</script>
</head>
<body>
<div align="center"><u><font class=text>Administration des news</font></u><br><br>
<table width="100%" border="0" summary="">
<tr>';
$add="Ajouter une news";
$edit="Editer une news";
$del="Supprimer une news";
$config="Configuration";
echo"<td><a href=\"\" class=text>Accueil du site</a></td>";
if($_GET['act']=="add")
echo"<td><font class=text><u>$add</u></font></td>";
else
echo"<td><a href=\"?act=add\" class=text>$add</a></td>";
if($_GET['act']=="edit")
echo"<td><font class=text><u>$edit</u></font></td>";
else
echo"<td><a href=\"?act=edit\" class=text>$edit</a></td>";
if($_GET['act']=="del")
echo"<td><font class=text><u>$del</u></font></td>";
else
echo"<td><td><a href=\"?act=del\" class=text>$del</a></td></td>";
if($_GET['act']=="config")
echo"<td><font class=text><u>$config</u></font></td>";
else
echo"<td><a href=\"?act=config\" class=text>$config</a></td>";
echo'</tr>
</table></div><hr color="#000000">';
if($_GET['act']=="add")
{
if($_GET['cat']=="")
{
echo "<br><br>Vous allez ici pouvoir ajouter une news, remplissez simplement le formulaire ci-dessous, et cliquez sur le bouton Enregistrer :<br><br>
<form action=\"?act=add&cat=add\" method=\"post\">
<div>
<table width=\"$largeur\" border=\"0\">
<tr>
<td><hr color=\"#000000\"></td>
</tr>
<tr>
<td><font class=\"titre\">Date : <input type=\"text\" name=\"date\" size=\"40\" maxlength=\"256\"></font></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><font class=\"titre\">Titre : <input type=\"text\" name=\"titre\" size=\"40\" maxlength=\"256\"></font></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><textarea name=\"texte\" cols=\"50\" rows=\"10\" id=\"texteajouter\"></textarea></td>
</tr>
</table>
</div>
<br>
<div><input type=\"submit\" value=\"Enregistrer la news\"></div>
</form>
";
}
else if($_GET['cat']=="add")
{
$date =$_POST['date'];
$titre =$_POST['titre'];
$texte =$_POST['texte'];
if($date=="" || $titre=="" || $texte=="")
{
if($date=="")
$error="Vous n'avez pas introduit de date";
if($titre=="")
$error="Vous n'avez pas introduit de titre";
else if($texte=="")
$error="Vous n'avez pas introduit de texte";
$texte = str_replace("\\","",$texte);
echo "<br><br>Vous allez ici pouvoir ajouter une news, remplissez simplement le formulaire ci-dessous, et cliquez sur le bouton Enregistrer :<br>
<font color=\"#FF0000\"><center>$error</center></font>
<br><br>
<form action=\"?act=add&cat=add\" method=\"post\">
<div>
<table width=\"$largeur\" border=\"0\">
<tr>
<td><hr color=\"#000000\"></td>
</tr>
<tr>
<td><font class=\"titre\">Date : <input type=\"text\" name=\"date\" size=\"40\" maxlength=\"256\" value=\"$date\"></font></td>
</tr>
<tr>
<td ></td>
</tr>
<tr>
<td><font class=\"titre\" >Titre : <input type=\"text\" name=\"titre\" size=\"40\" maxlength=\"256\" value=\"$titre\"></font></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><textarea name=\"texte\" cols=\"50\" rows=\"10\" id=\"texteajouter\">$texte</textarea></td>
</tr>
</table>
</div>
<br>
<div><input type=\"submit\" value=\"Enregistrer la news\"></div>
</form>
";
}
else
{
$texte = nl2br($texte);
mysql_query("INSERT INTO ".$prefixetab."news (id,date,titre,texte) values('','$date','$titre','$texte')") or die($errormessage);
echo "<div align=\"center\"><br><br>La news \"<I>$titre</i>\" à bien étée ajoutée.<br><br><br><br><br><br>
Vous allez être redirigé vers l'accueil des news ...<br>Si votre navigateur ne vous redirige pas automatiquement <a href=\"?\" class=Link2>cliquez ici</a>.</div>
<meta http-equiv=\"Refresh\" content=\"3;url=?\">";
}
}
}
else if($_GET['act']=="edit")
{
if($_GET['cat']=="")
{
echo "<br><br>Vous allez ici pouvoir éditer l'ensemble des news se trouvant dans la base de données, sélectionnez la news à éditer ci-dessous :<br><br>
<table width=\"100%\" border=\"0\">
<tr>
<td width=\"54\" bgcolor=\"#C1C1C1\" class=text><b>ID</b></td>
<td width=\"376\" bgcolor=\"#C1C1C1\" class=text><b>Titre</b></td>
<td bgcolor=\"#C1C1C1\" class=text><b>Editer</b></td>
</tr>";
$requetebd = mysql_query("SELECT id, titre from ".$prefixetab."news order by id desc") or die ($errormessage);
while($data=mysql_fetch_array($requetebd))
{
echo"
<tr>
<td width=\"15%\" class=text>$data[id]</td>
<td width=\"65%\" class=text>$data[titre]</td>
<td><a href=\"?act=edit&cat=2&id=$data[id]\" class=text>Editer</a></td>
</tr>
";
}
echo'</table>';
}
else if($_GET['cat']=="2")
{
$requetebd = mysql_query("SELECT * from ".$prefixetab."news where id='$id'") or die ($errormessage);
$data=mysql_fetch_array($requetebd);
$texte=br2nl($data[texte]);
echo "<br><br>Edition de la news <b>$data[titre]</b> :<br><br>
<form action=\"?act=edit&cat=edit&id=$id\" method=\"post\">
<div>
<table width=\"$largeur\" border=\"0\">
<tr>
<td><font class=\"titre\" colspan=\"2\">Date : <input type=\"text\" name=\"date\" size=\"40\" maxlength=\"256\" value=\"$data[date]\"></font></td>
</tr>
<tr>
<td><font class=\"titre\" colspan=\"2\">Titre : <input type=\"text\" name=\"titre\" size=\"40\" maxlength=\"256\" value=\"$data[titre]\"></font></td>
</tr>
<tr>
<td colspan=\"2\"></td>
</tr>
<tr>
<td colspan=\"2\"><textarea name=\"texte\" cols=\"80\" rows=\"12\" id=\"texteaediter\">$texte</textarea></td>
</table>
</div>
<br>
<div><input type=\"submit\" value=\"Enregistrer les modifications\"></div>
</form>
";
}
else if($_GET['cat']=="edit")
{
$date =$_POST['date'];
$titre =$_POST['titre'];
$texte =$_POST['texte'];
if($date=="" || $titre=="" || $texte=="" || $texte=="<p />")
{
if($date=="")
$error="Vous n'avez pas introduit de date";
else if($titre=="")
$error="Vous n'avez pas introduit de titre";
else if($texte=="" || $texte=="<p />")
$error="Vous n'avez pas introduit de texte";
$texte = str_replace("\\","",$texte);
echo "<br><br>Edition de la news <b>$titre</b> :<br>
<font color=\"#FF0000\">$error</font><br><br>
<form action=\"?act=edit&cat=edit&id=$id\" method=\"post\">
<div>
<table width=\"$largeur\" border=\"0\">
<tr>
<td><font class=\"titre\" colspan=\"2\">Date : <input type=\"text\" name=\"date\" size=\"40\" maxlength=\"256\" value=\"$date\"></font></td>
</tr>
<tr>
<td><font class=\"titre\" colspan=\"2\">Titre : <input type=\"text\" name=\"titre\" size=\"40\" maxlength=\"256\" value=\"$titre\"></font></td>
</tr>
<tr>
<td colspan=\"2\"></td>
</tr>
<tr>
<td colspan=\"2\"><textarea name=\"texte\" cols=\"80\" rows=\"12\" id=\"texteaediter\">$texte</textarea></td>
</table>
</div>
<br>
<div><input type=\"submit\" value=\"Enregistrer les modifications\"></div>
</form>";
}
else
{
$texte=nl2br($texte);
mysql_query("Update ".$prefixetab."news Set date ='$date', titre ='$titre',texte ='$texte' where id ='$id'") or die("Erreur MYSQL");
echo "<div align=\"center\"><br><br>La news \"<I>$titre</i>\" a bien étée éditée.<br><br><br><br><br><br>
Vous allez être redirigé vers l'accueil des news ...<br>Si votre navigateur ne vous redirige pas automatiquement
<a href=\"?\" class=Link2>cliquez ici</a>.</div>
<meta http-equiv=\"Refresh\" content=\"3;url=?\">";
}
}
}
else if($_GET['act']=="del")
{
if($_GET['cat']=="")
{
echo "<br><br>Vous allez ici pouvoir supprimer des news se trouvant dans la base de données, sélectionnez la news à supprimer ci-dessous :<br><br>
<table width=\"100%\" border=\"0\">
<tr>
<td width=\"54\" bgcolor=\"#C1C1C1\" class=text><b>ID</b></td>
<td width=\"376\" bgcolor=\"#C1C1C1\" class=text><b>Titre</b></td>
<td bgcolor=\"#C1C1C1\" class=text><b>Supprimer</b></td>
</tr>";
$requetebd = mysql_query("SELECT id, titre from ".$prefixetab."news order by id desc") or die ($errormessage);
while($data=mysql_fetch_array($requetebd))
{
echo"
<tr>
<td width=\"15%\" class=text>$data[id]</td>
<td width=\"65%\" class=text>$data[titre]</td>
<td><a href=\"?act=del&cat=2&id=$data[id]&title=$data[titre]\" class=text>Supprimer</a></td>
</tr>
";
}
echo'</table>';
}
else if($_GET['cat']=="2")
{
$title=$_GET['title'];
$id=$_GET['id'];
echo "<br><br><center>Etes-vous certain de vouloir supprimer la news $title ?<br><br>
<table width=\"50%\" border=\"0\" summary=\"\">
<tr>
<td><div align=\"right\"><form action=\"?act=del&cat=del&id=$id\" method=\"post\">
<input type=\"submit\" value=\" Oui \">
</form></div></td>
<td> </td>
<td><div align=\"left\"><form action=\"?\" method=\"post\">
<input type=\"submit\" value=\" Non \">
</form></div></td>
</tr>
</table>
</center>";
}
else if($_GET['cat']=="del")
{
mysql_query("Delete from ".$prefixetab."news where id ='$id'");
echo "<br><br><center>Suppression de la news effectuée avec succès.<br><br><br><br><br><br>
Vous allez être redirigé vers l'accueil des news ...<br>Si votre navigateur ne vous redirige pas automatiquement <a href=\"?\" class=Link2>cliquez ici</a>.</div>
<meta http-equiv=\"Refresh\" content=\"3;url=?\"></center>";
}
}
else if($_GET['act']=="config")
{
if($_GET['cat']=="")
{
echo "<br><br>Vous devez remplir l'ensemble des champs ci-dessous pour modifier la configuration de votre module :<br><br>";
echo'<form action="?act=config&cat=2" method="post"><table width="70%" border="0" class=text><tr>
<td> Veuillez indiquer le Serveur MySQL : </td>
<td><input name="nameserv" type="text" value='.$nomserveur.'></td>
</tr>
<tr>
<td> Veuillez indiquer le nom d\'utilisateur MySQL : </td>
<td><input name="loginserv" type="text" value='.$loginserveur.'></td>
</tr>
<tr>
<td> Veuillez indiquer le passe MySQL : </td>
<td><input name="passserv" type="password" value='.$passserveur.'></td>
</tr>
<tr>
<td> Veuillez indiquer le nom de la base : </td>
<td><input name="baseserv" type="text" value='.$baseserveur.'></td>
</tr>
<tr>
<td> Prefixe des tables MySQL : </td>
<td><input name="prefixserv" type="text" value='.$prefixetab.'></td>
</tr>
<tr>
<td> Nombres de news par pages : </td>
<td><input name="nbpage" type="text" value='.$maxnews.'></td>
</tr>
<tr>
<td> Largeur du module entier (en px) : </td>
<td><input name="largeur" type="text" value='.$largeur.'></td>
</tr>
</table><br><br><br>
<div align="center"><input type="submit" value="Enregistrer la configuration"></div>
</form><br><br><br>
<center><font color="#FF0000">Attention les informations ici sont très importantes, si vous comettez une erreur, vous devrez modifier manuellement le fichier config.php.</font></center>
';
}
else if($_GET['cat']=="2")
{
$nomserv=$_POST['nameserv'];
$loginserv=$_POST['loginserv'];
$passserv=$_POST['passserv'];
$baseserv=$_POST['baseserv'];
$prefixtabserv=$_POST['prefixserv'];
$maxnewsserv=$_POST['nbpage'];
$largeurserv=$_POST['largeur'];
$fichier="config.php";
if(file_exists($fichier))
{
@unlink($fichier);
}
touch($fichier);
echo"";
echo"<br><br><center><b>Les script a été mis à jour correctement</b><br><br><br><br><br><br>
Vous allez être redirigé vers l'accueil des news ...<br>Si votre navigateur ne vous redirige pas automatiquement <a href=\"?\" class=Link2>cliquez ici</a>.</div>
<meta http-equiv=\"Refresh\" content=\"3;url=?\"></center>";
$ouvert = fopen($fichier,"r+");
@$texte=''
.'<?php
$nomserveur = "'.$nomserv.'";
$loginserveur = "'.$loginserv.'";
$passserveur = "'.$passserv.'";
$baseserveur = "'.$baseserv.'";
$prefixetab = "'.$prefixtabserv.'";
$maxnews = '.$maxnewsserv.';
$largeur = '.$largeurserv.';
$errormessage = "Désolé, une erreur s\'est produite sur la base de données.";
$db = mysql_connect($nomserveur,$loginserveur,$passserveur) or die ($errormessage);
mysql_select_db($baseserveur,$db) or die ($errormessage);
function br2nl($txt)
{return str_replace("<br />", "\t", $txt) ;}
?>';
fwrite($ouvert, $texte);
fclose($ouvert);
}
}
else
{
echo'<br><br>
<div align="center">Bienvenue sur l\'administration des news, veuillez choisir dans le menu ci-dessus.</div>';
}
echo"</body></html>";
}
mysql_close();
?>