Page 1 sur 1

Caractères minimum pour description Catégorizator

Posté : lundi, 12 mai 2008, 15:25
par landry
Bonjour,

J'ai mis un minimum de caractères lors de l'inscription d'un site. Ca fonctionne mais le message d'erreur envoyé au webmaster est ... bizarre :
Votre description fait 22 caractères et le minimum autorisé est 200 caractères <br><br> <a href="javascript:history.go(-1);">Retour au formulaire</a>
Que fait ce Javascript au milieu ?
J'ai ajouté ça dans Submit_site :
est_trop_court($description,200,"Votre description",true);
Ce qui donne :
url_image_valide($url_image,true);
est_trop_court($description,200,"Votre description",true);
est_vide($description,"Vous n'avez pas rempli la description du site !",true);
est_trop_long($description,255,"Votre description",true);
if ($PMA_infos['code_verif']) faux_code($code,"Le code de vérification que vous avez entré est incorrect !",true);
De plus, et pour ma curiosité personnelle où sont stockées ce genre de phrases :
Votre description fait 22 caractères et le minimum autorisé est 200 caractères
J'ai épluché tous les fichiers de Categorizator et je ne l'ai pas trouvé.

Merci

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:03
par Keroin
La fonction javascript suivante

Code : Tout sélectionner

<a href="javascript:history.go(-1);">Retour au formulaire</a>
permet de générer automatiquement un lien de retour vers le formulaire d'inscription du site sans que les données que le webmaster à précédemment saisies soient effacées.
La fonction ne doit pas apparaitre sur la page (seul le lien "retour au formulaire" doit apparaitre).
Voir peut être en vidant le cache du navigateur ou en testant avec un autre navigateur si ça apparait dans la page.

J'ai vu sur wri qu'un script est proposé pour ajouter la possibilité de bloquer les descriptions trop courtes, ce qui donne :
pour une description minimun, par exemple 250

dans submit_site.php
vers ligne 145 ajouter
est_trop_court($description,250,"Votre description",true);



dans modify_site.php
vers ligne 35 ajouter

est_trop_court($description,500,"Votre description");

vers ligne 104 ajouter
est_trop_court($description,250,"Votre description");

vers ligne 155 ajouter
est_trop_court($description,250,"Votre description");


dans admin_annuaire.php

vers ligne 93

ajouter

est_trop_court($description,250,"Votre description");
C'est celui ci que tu as suivis ?

Il faut comparer avec le tuto pour allonger la longueur de l'inscription que j'avais fait, les fichiers à modifier sont certainement les mêmes.

La mention

Code : Tout sélectionner

Votre description fait 22 caractères et le minimum autorisé est 200 caractères
se trouve dans le fichier modify_site.php (chez moi c'est à la ligne 156 mais le mien est tellement modifié que ça ne doit plus correspondre à ça pour fichier originel.
Il faut faire une petite recherche sur les termes "votre description" dans le fichier modify_site.php et tu devrais tomber dessus.
La phrase que tu recherches est construite avec des appels de données en php (pour les chiffres) c'est pour ça que ce n'est pas simple à trouver ;-)

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:18
par landry
dans modify_site.php
vers ligne 35 ajouter

est_trop_court($description,500,"Votre description");
Pourquoi 500 ?

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:23
par Keroin
500 c'est la valeur maximum (en nombre de caractères) que j'avais choisie pour le tuto mais après chacun met ce qu'il veut, depuis je suis passé à 1024 caractères maximum ce qui permet d'avoir des descriptions plus détaillées :sm28:
C'est écrit 500 sur le tuto du membre de wri car il avait sans doute suivi le mien au préalable pour augmenter la valeur de son champ description.

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:26
par landry
J'ai suivie tes instructions mais j'ai toujours ce problème :
Votre description fait 12 caractères et le minimum autorisé est 200 caractères <br><br> <a href="javascript:history.go(-1);">Retour au formulaire</a>
Avec IE cahce vidé ou avec FF. :saipas:
1024 caractères maximum

Tu as réglé le problème de décomptage dont tu parlais sur WRI ?

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:36
par Keroin
Malgré que la mention

Code : Tout sélectionner

<br><br> <a href="javascript:history.go(-1);">Retour au formulaire</a>
apparaisse, est ce que le de lien retour au formulaire fonctionne ?
Si oui, c'est parce qu'il y a un doublon quelque part...

Pour le décompte, je l'ai complètement supprimé aussi plus de soucis avec ça ;-)

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:44
par landry
apparaisse, est ce que le de lien retour au formulaire fonctionne ?
Non, il ne fonctionne pas dans ce cas d'erreur (description trop courte)

Mais il fonctionne dans les autres cas (champs "Nom" non renseigné par exemple)

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 16:55
par landry
se trouve dans le fichier modify_site.php (chez moi c'est à la ligne 156 mais le mien est tellement modifié que ça ne doit plus correspondre à ça pour fichier originel.
Ben ...non. :rolleyes:

Regarde : http://cjoint.com/?fmq3fIaIvc

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 17:22
par landry
En fait cette phrase se trouve dans fonction.php
//verifie si un champ n'est pas trop long
{
$ln_champ = strlen($champ);

$message = "$message fait $ln_champ caractères et le maximum autorisé est $ln_max caractères\n";
$message .= "<br><br>\n";
$message .= "<a href=\"javascript:history.go(-1);\">retour au formulaire</a>\n";

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 17:53
par Keroin
Effectivement, bien vu et c'est certainement aussi dans le fichier functions.php que doit pouvoir se régler ton souci de javascript ;-)

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 17:56
par landry
Ce sont 2 codes identiques, l'un dans le cas où l'on dépasse le nombre de caractères et l'autre si l'en manque.
function est_trop_long($champ,$ln_max,$message,$inc = false)
//verifie si un champ n'est pas trop long
{
$ln_champ = strlen($champ);

$message = "$message fait $ln_champ caractères et le maximum autorisé est $ln_max caractères\n";
$message .= "<br><br>\n";
$message .= "<a href=\"javascript:history.go(-1);\">retour au formulaire</a>\n";

if ($ln_champ > $ln_max )
{
echo htmlspecialchars($message);
if ($inc)
include("after.php");
exit;
}
else
return false; //on rend faux si on a pas quitte car trop long
}

function est_trop_court($champ,$ln_min,$message,$inc = false)
//verifie si un champ n'est pas trop court
{
$ln_champ = strlen($champ);

$message = "$message fait $ln_champ caractères et le minimum autorisé est $ln_min caractères\n";
$message .= "<br><br>\n";
$message .= "<a href=\"javascript:history.go(-1);\">retour au formulaire</a>\n";

if ($ln_champ < $ln_min )
{
echo htmlspecialchars($message);
if ($inc)
include("after.php");
exit;
}
else
return false; //on rend faux si on a pas quitte car trop court
}
Dans le premier cas le le lien "retour au formulaire" s'affiche mais dans le cas des descriptions trop courtes il bug.
Alors là je suis complétement largué. :cry:

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 18:27
par landry
J'ai trouvé !!
Ce qui induit en erreur c'est que l'on ne peut pas savoir si la fonction "Verifie si un champ n'est pas trop long " bugue sur le lien de retour au formulaire ou pas puisque de toute façon le nombre de frappe est limitée sur les champs concernés. Mais si on avait pu tester on se serait apperçu que l'on aurait eu le même bug au sujet de "a href=\"javascript:history.go(-1);\">retour au formulaire</a>"

Donc les deux codes sont érronés et c'est dans les deux qu'il faut chercher la cause et non uniquement dans "Verifie si un champ n'est pas trop court"

Voilà la modification que j'ai apporté et maintenant ça fonctionne sans problème :

Chercher dans "Verifie si un champ n'est pas trop court"
echo htmlspecialchars($message);
Et la remplacer par :
echo $message;
:sm28:

Et le problème est réglé.

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 19:34
par Keroin
Excellent :bravo3:

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 20:41
par landry
Pour le décompte, je l'ai complètement supprimé aussi plus de soucis avec ça

Pour modifier le chiffre par défaut du nombre de caractère restant il faut intervenir directement sur le Javascript se trouvant dans le fichier meta.php.
Exemple : 999 caractères

Trouver :

Code : Tout sélectionner

// Le meta Description ne peut comporter plus de 255 caractères
		$description = htmlspecialchars(substr(preg_replace("/\r|\n/",'',$description),0,255));
Remplacer par :

Code : Tout sélectionner

// Le meta Description ne peut comporter plus de 999 caractères
		$description = htmlspecialchars(substr(preg_replace("/\r|\n/",'',$description),0,999));
Trouver (plus bas) :

Code : Tout sélectionner

// Le meta Description ne peut comporter plus de 255 caractères
		$description = htmlspecialchars(substr(preg_replace("/\r|\n/",'',$description),0,255));
Remplacer par :

Code : Tout sélectionner

// Le meta Description ne peut comporter plus de 999 caractères
		$description = htmlspecialchars(substr(preg_replace("/\r|\n/",'',$description),0,999));
Trouver :

Code : Tout sélectionner

<?php
if ( preg_match("/submit_site\.php/",$_SERVER{REQUEST_URI}) )
{
	echo <<<EOF
	function CheckLen(Target)
	{
		StrLen = Target.value.length;
		if ( StrLen>255 ) {
			Target.value = Target.value.substring(0,255);
			CharsLeft = 255;
		} else {
			CharsLeft = StrLen;
		};
		var CharsLeft1 = 255 - CharsLeft;
		document.form2submit.reste.value = CharsLeft1;
	};\n\n
EOF;
};
?>
Remplacer par :

Code : Tout sélectionner

<?php
if ( preg_match("/submit_site\.php/",$_SERVER{REQUEST_URI}) )
{
	echo <<<EOF
	function CheckLen(Target)
	{
		StrLen = Target.value.length;
		if ( StrLen>999 ) {
			Target.value = Target.value.substring(0,999);
			CharsLeft = 999;
		} else {
			CharsLeft = StrLen;
		};
		var CharsLeft1 = 999 - CharsLeft;
		document.form2submit.reste.value = CharsLeft1;
	};\n\n
EOF;
};
?>
:sm28:

Re: Caractères minimum Catégorizator

Posté : lundi, 12 mai 2008, 20:44
par Keroin
Merci beaucoup :good: