Forums NFrance

Forum de discussions NFrance - Support offres dédiées et mutualisées

Vous n'êtes pas identifié.

Annonce

Attention, le forum est public, ne postez donc jamais votre mot de passe en clair dans un message.

#1 22-04-2008 07:03:31

Stefou
Nouveau membre
Date d'inscription: 16-01-2007
Messages: 18

Problème d'execution code PHP pour livre d'or

Bonjour et merci de prendre le temps de me lire.

J'ai un code en php pour faire un livre d'or. Ce code marche bien sur d'autre hébergement, mais ne veut pas marcher sur mon hébergement cpur.fr.
Y a t-il quelque chose à activé ou ....????

Merci d'avance pour votre aide

Voici le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cpur : Livre d or</title>
<style type="text/css">
<!--
body {
    background-color: #A5AACE;
}
-->
</style>
<body>

<!-- Debut perso -->
<?php

// Si vous désirez adopter la même présentation que notre script :
// Indiquez ici la couleur de bordure des tableaux
$borduretable = "#000000";
// Indiquez ici la couleur de fond des tableaux
$backgroundtable = "#d5ebdc";
// Indiquez ici la couleur de fond du tableau contenant les messages du livre d'or
$backgroundtable2 = "#d5ebdc";
// Indiquez ici la largeur du tableau
$largeurtable = "90%";
// Indiquez ici la largeur du tableau
$alignn = "center";

// Sinon, libre à vous de modifier la mise en page ci-dessous
echo '
        <div align="center">
          <p class="Titre">Signer le livre d or</p>
          <p class="ssTitre"><a href="livre_d_or.php">Retour au livre d or</a></p>

';

// si le formulaire n'a pas été validé, la variable $poster est différente de "oui"
// on affiche donc le formulaire

if($poster!="oui"){

    echo '
    <table style="border: thin solid '.$borduretable.'; font-family: Comic Sans MS; font-size: 14px; width: '.$largeurtable.'; background-color: '.$backgroundtable.';">
    <tr><form action="">
    <td>Nom (facultatif)</td>
    <td><input type="text" name="nom" size="60" style="font-size:11px;"></td>
    </tr><tr>
    <td>Email(facultatif)</td>
    <td><input type="text" name="email" size="60" style="font-size:11px;"></td>
    </tr><tr>
    <td valign="top">Message</td>
    <td><textarea cols="44" rows="8" name="message" style="font-size:11px;"></textarea></td>
    </tr><tr>
    <td colspan="2" align="center">
    <input type="hidden" name="poster" value="oui" />
    <input type="submit" value="Envoyer" / style="font-size:12px;">
    </td>
    </tr>
    </table>
    ';
}

// si le formulaire a été validé, la variable $poster est égale à "oui"
// on traite donc les informations du formulaire
$IPClient = $_SERVER[REMOTE_ADDR] ;
if ($poster=="oui")
{
    $poster="non";
    // on lie les 3 dernière IP écrite
    $fp=fopen("ip.save","r");
    $der_IP1=fread($fp,15);
    $der_IP2=fread($fp,15);
    $der_IP3=fread($fp,15);
   

    fclose($fp);
   
   
    if (trim($IPClient)!=trim($der_IP1) && trim($IPClient)!=trim($der_IP2) && trim($IPClient)!=trim($der_IP3))
    {
   
        // On commence par mettre en forme le message correctement
       
        // suppression des balises HTML pour éviter les codes malveillant
        $message = htmlspecialchars($message);
       
        // convertion des retour chariots par des <br> et suppression des /
        $message= nl2br(stripslashes($message));
       
        // suppression des espaces en trop
        // ex: si le visiteur à inséré trois espaces, un seul sera pris en compte
        $message = ereg_replace("[ ]{2,}", " ", $message );
       
        // On vérifie que le fichier contenant les anciens messages existe
        if(file_exists("livre.html")){
       
            // On copie le contenu des anciens messages dans une variable
            // pour pouvoir y ajouter le message en cours
            if (filesize("livre.html")>0){
                $fp=fopen("livre.html","r");
                $contenu=fread($fp,filesize("livre.html"));
                fclose($fp);
            }
        }
   
   
        // On vide le contenu du fichier pour pouvoir y insérer le contenu
        // de la variable contenant les anciens messages + le message en cours
        $fp=fopen("livre.html","w");
        fclose($fp);
       
        // On ajoute le message en cours et on remet les anciens messages en dessous
       
        // On met le nom, la date et l'email du message en cours dans une variable
        $data="$nom - ".date("d/m/Y H:i")." - e-mail : $email"." - IP : ".$IPClient."";
       
        // On ouvre le fichier contenant les anciens messages
        // (actuellement vide)
        $fp=fopen("livre.html","a");
       
        // On y ajoute le message en cours et les anciens messages

        fputs($fp,"  <table width='95%' border='1' cellspacing='5' bgcolor='#d5ebdc'>
            <tr>
              <td bgcolor='#9cd5ae'>Message de : $data</td>
            </tr>
            <tr>
              <td><div align='center'>$message </div></td>
            </tr>
              </table>
              <br />
              \n<!-- guest -->\n$contenu");
        fclose($fp);
        // On écrit la dernière IP : en commentaire pour l'instant
       
        //$fp=fopen("ip.save","w");
        //fputs($fp,$IPClient."                 ",15);
        //fputs($fp,$der_IP1."                 ",15);
        //fputs($fp,$der_IP2."                 ",15);
        //fclose($fp);
       
       
       
       
        // On affiche un message de remerciement
        echo '<span style="font-family: Verdana; font-size: 16px;">Merci à vous et à bientôt !</span>';
        //}
    } else {
        echo '<span style="font-family: Verdana; font-size: 16px;">Désolé cette adresse IP est bloquée pour l instant (filtre anti spam) !</span>';
    }
}
echo '</div>';
?>
<!-- Fin perso -->



</body>
</html>

Hors ligne

 

#2 22-04-2008 13:58:53

joris
Moderateur
Date d'inscription: 27-06-2007
Messages: 1055

Re: Problème d'execution code PHP pour livre d'or

Bonjour,
Quel message d'erreur avez-vous ?


Joris
Support NFrance
---------------------------
N'oubliez pas la FAQ wink

Hors ligne

 

#3 22-04-2008 14:35:46

Stefou
Nouveau membre
Date d'inscription: 16-01-2007
Messages: 18

Re: Problème d'execution code PHP pour livre d'or

Merci pour la réponse.

Aucun message d'érreur à signaler : http://www.cpur.fr/z_livre_d_or/livre_d_or.php

????

Hors ligne

 

#4 24-04-2008 15:18:40

Stefou
Nouveau membre
Date d'inscription: 16-01-2007
Messages: 18

Re: Problème d'execution code PHP pour livre d'or

S'il vous plait. Faut-il activer quelque chose, ou est-ce une option qui ne pas possible avec mon hébergement ?

Que dois-je faire ce code marche tres bien sur mes autres site, même chez vous !!

Hors ligne

 

#5 25-04-2008 15:09:09

joris
Moderateur
Date d'inscription: 27-06-2007
Messages: 1055

Re: Problème d'execution code PHP pour livre d'or

Bonjour,
Si vous n'allez pas plus loin dans votre recherche que "ça ne marche pas", je crains fort que nous ayons du mal à vous aider.
Vous devez regarder en détail et comprendre ce qui ne marche pas.
Imprimer les variable , faire des tests, affichier les notices et les warnings ...


Joris
Support NFrance
---------------------------
N'oubliez pas la FAQ wink

Hors ligne

 

#6 26-04-2008 09:50:33

Stefou
Nouveau membre
Date d'inscription: 16-01-2007
Messages: 18

Re: Problème d'execution code PHP pour livre d'or

Merci Joris de ta réponse,

J'essaye d'affiner ma question :
Qu'est ce qui pourrait faire en sorte qu'un code PHP fonctionne sur un hébergement  "Web 1" et pas sur un "newbasic".

Pour cela j'ai recréé un code  test tres simple (cf en bas)

Ce code test marche ici : http://site_test_2.ecligne.net/livre_d_ … poster=oui
Mais ne marche pas ici : http://www.cpur.fr/z_livre_d_or/test.php?poster=oui

Merci d'avance pour le temps de me lire, si je viens vous écrire içi, c'est que je suis bloqué et que je suis allez au plus loin dans ma recherche.
J'ai besoins d'une piste pour aller encore plus loin...

Bonne journée à tous

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<body><?php


if($poster!="oui"){
    echo '
    <td>NON2</td>
    ';
}

if ($poster=="oui"){
    echo '
    <td>OUI2</td>
    ';
}

?></body>
</html>

Hors ligne

 

#7 26-04-2008 17:53:06

BertrandB
Membre habitué
Lieu: Dijon
Date d'inscription: 27-10-2007
Messages: 49
Site web

Re: Problème d'execution code PHP pour livre d'or

Vous devriez comparer les 2 phpinfo et consulter  : http://www.php.net/manual/fr/ini.core.p … er-globals

et bien lire les considération sur l'utilisation de register_global

Hors ligne

 

#8 27-04-2008 11:57:02

Stefou
Nouveau membre
Date d'inscription: 16-01-2007
Messages: 18

Re: Problème d'execution code PHP pour livre d'or

Merci Bertrand,

C'est tout à fait la piste que j'avais besoins et que j'étais à mille lieus de trouver.

Après une recherche sur internet, il suffit de rajouter une ligne de code pour se dépanner :
while (list($key, $val) = each($_GET)) {$$key=$val;}

Et pour moi cela marche !

Yahou
Encore merci et bonne journée.

Hors ligne

 

#9 27-04-2008 19:09:59

BertrandB
Membre habitué
Lieu: Dijon
Date d'inscription: 27-10-2007
Messages: 49
Site web

Re: Problème d'execution code PHP pour livre d'or

Stefou a écrit:

Après une recherche sur internet, il suffit de rajouter une ligne de code pour se dépanner :
while (list($key, $val) = each($_GET)) {$$key=$val;}

Oui mais on recrée la faille de sécurité potentielle. Une personne mal intentionnée peut s'amuser à écraser n'importe quelle variable du script et donc l'utiliser pour ce quoi il n'est pas fait. Donc après le dépanage il faudra penser à la réparation wink

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson