Forum : Lws & Hebergeur-discount

Hébergement web, nom de domaine et serveur dédié.

Utilisation de sessions avec LWS

Ici vous pouvez poser vos questions techniques, les problemes que vous rencontrez (publication de votre site, configuration dns des domaines...)
Phicai
Débutant
Débutant
Messages : 3

ven. janv. 10, 2020 6:50 pm  

Bonjour
J'ai monté un petit site pour ma fille avec un formulaire contenant une image CAPTCHA
Ce formulaire fonctionne très bien (en tests) dans les pages perso FREE.
Quand j'ai voulu l'installer sur LWS (en utilisation officielle) je m'aperçois que la récupération de l'image CAPTCHA ne fonctionne pas.Il semblerait que chez FREE, il faut déclarer un répertoire "sessions" qui enregistre les fichiers de sessions. A priori c'est la seule différence entre FREE et LWS.
Je mets ci-dessous les lignes de codes du formulaire et du PHP qui génère l'image.
Quelqu'un sait-il ce qu'il faut faire chez LWS pour que les sessions fonctionnent .
Merci d'avance
Philippe


FORMULAIRE :
<form action="contact.php" method="post" name="contact" id="contact">
<p>
<label for="mail">Votre adresse mail :</label><br />
<input type="text" id="mail" name="mail" size="20" maxlength="100"/><br />
<label for="objet">Objet du mail :</label><br />
<input name="objet" type="text" size="20" maxlength="100" /><br />
<label for="msg">Texte du mail :</label><br />
<textarea name="msg" cols="40" rows="4"></textarea><br />
<img src="test_dynamique.php" alt="securisation du formulaire" title="securisation du formulaire" /><br />
<label for="verif">Recopier le code ci dessus dans le champ qui suit :</label><br />
<input type="text" name="verif" size="10" maxlength="5" />
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
</form>


GENERATEUR D'IMAGES :
<?
// Démarage d'une session
session_start();
// Définition de la liste des caractères autorisés, on exclus le 0
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// On créer la valeur du code
$code = '';
// On crée la chaine de 5 caractères
while(strlen($code) != 5) {
$code .= $liste[rand(0,63)];
}
$_SESSION['code']=$code;
// On crée une image
$larg = 50;
$haut =20;
$img = imageCreate($larg, $haut);
$rouge = imageColorAllocate($img,255,0,0);
$noir = imageColorAllocate($img,0,0,0);
$code_police=5;
header('Expires: Mon, 08 Dec 2008 12:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header("Content-type: image/jpeg");
// On intégre le code dans l'image
imageString($img, $code_police,($larg-imageFontWidth($code_police)*strlen("".$code.""))/2,0, $code,$noir);
// On créé une image de mauvaise qualité, 23% de l'image normal
imagejpeg($img,'',23);
imageDestroy($img);
?>

Avatar de l’utilisateur
Omar LWS
Modérateur
Modérateur
Messages : 93

mar. janv. 14, 2020 6:40 pm  

Bonjour Phicai,

Le code qui génère l'image est incorrect

je vous invite à remplacer imagejpeg($img,'',23) par: imagejpeg($img);

Plus d'informations sur la fonction sur la page suivante : https://php.net/manual/fr/function.imagejpeg.php

Bonne soirée :)

Phicai
Débutant
Débutant
Messages : 3

mer. janv. 15, 2020 7:39 am  

Bonjour et Merci pour la réponse. Je vais corriger et essayer.
Mais pourquoi le code fonctionne-t-il dans les pages perso de FREE?
Bonne journée.
Cordialement
Philippe

Phicai
Débutant
Débutant
Messages : 3

mer. janv. 15, 2020 6:35 pm  

Rebonjour
Merci de votre réponse. Effectivement, ça marche mieux comme ça. Une explication ?
Bonne soirée
Philippe

Avatar de l’utilisateur
Omar LWS
Modérateur
Modérateur
Messages : 93

mer. janv. 15, 2020 9:41 pm  

Bonsoir,

ça peut fonctionner avec NULL également, comme ceci : imagejpeg($img, NULL, 23);

ça dépends de la version PHP, de la librairie libgd

Voici la documentation sur la fonction : https://www.php.net/manual/fr/function.imagejpeg.php

Bonne soirée

  •   Information
  • Qui est en ligne ?

    Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 22 invités