Gestion de news sur site en ligne suite changement hébergeur

Petit nouveau ! | 3 Messages

23 août 2016, 13:14

j'utilise depuis des années une gestion des news en php hébergé chez OVH qui fonctionne encore correctement en attendant la mutation vers 1&1.
Avant mutation complète d'hébergeur, j'ai installé et créer les tables chez 1&1 , un copié collé des mêmes fichiers php chez 1&1 et renseigné le fichier config_inc pour le serveur de base de données et je rencontre des problèmes de fonctionnement dont voici une partie concernant l'ajout de news

merci de votre aide

Au niveau du ajouter .php3
<html>

<head>

<title>ADMIN - MyNEWS v1.2</title>

<style>

.m10,.m9,.m10b,.m9b {font-family:geneva,arial;}

.m8,.m8b {font-family:verdana;}

.m10,.m10b {font-size:10pt;}

.m9,.m9b {font-size:9pt;}

.m8,.m8b {font-size:8pt;}

.m10b,.m9b,.m8b {font-weight:bold;}

</style>

</head>



<body bgcolor="#EEEEFC">



<?

$date = date("d/m/Y");

$heure = date("H:i");

?>



<!-- FORMULAIRE AJOUTER UNE NEWS ---------------------->

<form method="POST" action="ajouter_verif.php3">

<div align="center">

  <center>

  <table border="0" cellpadding="0" cellspacing="0" width="600" bgcolor="#C5C6E3">

    <tr>

      <td height="30" bgcolor="#7E80E2" align="center" class="m10">

        <font color="#FFFFFF"><b>Insertion d'une News</b></font></td>

    </tr>

    <tr>

      <td height="20">&nbsp;</td>

    </tr>

    <tr>

      <td height="20" class="m9"><center>Titre : <input type="text" name="titre" size="62"></center></td>

    </tr>

    <tr>

      <td height="20">&nbsp;</td>

    </tr>

    <tr>

      <td height="20" class="m9"><center>Date : <input type="text" name="date" value="<? echo $date; ?>" size="9">

        & Heure : <input type="text" name="heure" value="<? echo $heure; ?>" size="7">

        de la news</center></td>

    </tr>

    <tr>

      <td height="20"><center></center>&nbsp;</td>

    </tr>

    <tr>

      <td height="20" class="m9"><center><textarea WRAP="virtual" rows="14" cols="60" name="news">Ici le corps de la news ...</textarea></center></td>

    </tr>

    <tr>

      <td height="20"><center></center>&nbsp;</td>

    </tr>

    <tr>

      <td height="20" class="m9"><center>Signature : <input type="text" name="signature" size="20"> Email sur signature : <input type="text" name="email_sign" size="20"></center></td>

    </tr>

    <tr>

      <td height="20">&nbsp;</td>

   </tr>



<!-- Boutons -->

  <tr>

   <td height="70" bgcolor="#EEEEFC" align="center">

      <input type="button" value="<< Retour menu principal" onClick="Javascript:window.location='index.php3';" Style="width: 295px">

      <input type="submit" value="Ajouter la news >>" Style="width: 295px">

   </td>

  </tr>

<!-- Boutons -->



    <tr>

      <td height="30" bgcolor="#7E80E2" align="center" class="m10">

        <font color="#FFFFFF"><b>Options de la News</b></font></td>

    </tr>

    <tr>

      <td height="20" bgcolor="#C5C6E3" class="m9">

        <blockquote>

          <p><input type="checkbox" name="source" value="oui">

          <b>Cochez pour insérer une source à la news </b>(optionnel)<b>.</b></p>

         <p>Titre de la Source : <input type="text" name="nom_source" size="33"></p>

         <p>Donnez le lien à mettre sur la source : <input type="text" name="url_source" size="33" value="http://"></p>

        </blockquote>

      </td>

    </tr>

    <tr>

      <td height="20">

        <hr size="1" color="#000000">

     </td>

  </tr>

    <tr>

     <td height="20" bgcolor="#C5C6E3">

        <blockquote>

          <font class="m9">

          <p><input type="checkbox" name="image" value="oui">

          <b>Cochez pour insérer une image à droite de la news </b>(optionnel)<b>.</b></p>

          <p>Le chemin de l'image : <input type="text" name="path_image" size="33" value="http://">

          <font color="#FF0000"><b>(120x90 pixels !)</b></font></p>

          <p>Lien à placer sur l'image : <input type="text" name="url_image" size="33" value="http://"></p>

          </font>

        </blockquote>

    </td>

   </tr>

 <tr>

    <td height="20">&nbsp;</td>

  </tr>

</table>

</center>

</div>

</form>

</body>

</html>

Au niveau du ajouter_verif .php3
<?

if(empty($titre) OR empty($news) OR empty($date) OR empty($heure) OR empty($signature) OR empty($email_sign))

     {

     ?>

     <script language="Javascript">

     alert('Ooops, il y a un champ vide !\n\nLes champs obligatoires sont :\n\nTitre\nDate & Heure\nNews\nSignature\nEmail Signature\n\nLes options ne sont pas obligatoires dans une News, mais veillez à ne pas cocher les cases correspondantes.');

     history.back();

     </script>

     <?

     }

elseif($source=='oui' AND empty($nom_source) OR empty($url_source))

     {

     ?>

     <script language="Javascript">

     alert('Ooops, il y a un champ vide dans la partie \'Source de la news\' !');

     history.back();

     </script>

     <?

     }

elseif($image=='oui' AND empty($path_image) OR empty($url_image))

     {

     ?>
voici la réponse

Image

pas d'enregistrement dans la base, par contre le fichier config_inc est bien renseigné car j'arrive à lire dans la table chez 1&1 les news que j'ai rentré via adminphp chez 1&1

merci d'avance pour votre aide

Mammouth du PHP | 2703 Messages

23 août 2016, 14:29

une solution rapide mais non sans danger est d'ajouter :
http://php.net/manual/fr/function.extract.php
avant
if(empty($titre) OR empty($news) OR empty($date) OR empty($heure) OR empty($signature) OR empty($email_sign))

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 août 2016, 16:44

Bonjour,

Il n'y a pas de requête SQL dans le code que tu présentes... pour autant le problème semble effectivement venir uniquement du if()

Est-ce que 1&1 propose encore une gestion en php 3 ? beaucoup de choses ont évolué depuis cette version, notamment la sécurité mais également certains paramètres par défaut. Il faudrait vérifier la configuration php de ton nouvel environnement, avec un phpinfo() par exemple et contrôler en particulier :
- est-ce que les open short tags sont autorisés ? sinon il faudra remplacer les "<?" par "<?php" et les "<?=" par "<?php echo"
- est-ce que la variable register globals est à on ? sinon, il te faut désormais spécifier explicitement d'où proviennent les variables que tu utilises (ex : $_POST['titre'] au lieu de $titre.
...

Le mieux étant de mettre à jour ton code pour des questions de sécurité, mais tu peux aussi vouloir aller vite, auquel cas la solution de or1 te permettra de convertir simplement toutes les données transmises via $_POST en variables afin de pouvoir les utiliser.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

23 août 2016, 17:00

il est vrai que l'origine date de 2003, mais je n'arrive pas pas à trouver la même chose aujourd'hui mais payant

Petit nouveau ! | 3 Messages

23 août 2016, 17:08

je suis trop débutant côté php et cela n'est pas mon coeur de métier