Forum de discussions NFrance - Support offres dédiées et mutualisées
Vous n'êtes pas identifié.
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
Merci pour la réponse.
Aucun message d'érreur à signaler : http://www.cpur.fr/z_livre_d_or/livre_d_or.php
????
Hors ligne
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
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 ...
Hors ligne
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
<!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
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
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
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 ![]()
Hors ligne