Page 1 sur 1

Problème de mise en page sur categorizator

Posté : mercredi, 17 octobre 2007, 00:10
par Larry
Bonsoir à tous !

Avant d'exposer mon problème, voici quelques informations qui peuvent être utiles :)

Je travaille avec le script d'annuaire Categorizator, plus précisément avec son add-on YourPhpAnnuaire.

Voici mon problème : lors de la proposition d'un site sur l'annuaire, si l'internaute oublie de remplir un champ ou le remplit de manière incorrecte, un message d'erreur apparaît : (voici un petit screen ) [img=http://img135.imageshack.us/img135/968/erreurnq0.th.jpg]

Ici, le problème est que le bloc de recherche ainsi que le bloc contenant le message d'erreur (donc le bloc principal) sont décalés vers la droite.De plus, les bloc ne sont pas chargés entièrement : il manque le bas du bloc contenant le message, ainsi que mon copyright (qu'on ne voit pas sur le screenshot). Voici un autre screen, de l'organisation "normale" de la page :)

[img=http://img153.imageshack.us/img153/5028 ... yc7.th.jpg]

Ici, comme nous pouvons le voir, tout va bien : (ormis le petit décalage interne dans la barre de recherche, qui va être règlé) à gauche, le bloc destiné à accueillir les partenaires, au milieu, le bloc de recherche interne, en dessous, le bloc principal, et à droite le bloc destiné au top one.

Pour résumer, lorsque l'internaute se trompe dans l'un des champs, le message d'erreur généré chamboule toute la page !!!

Ceci est très génant pour moi car je ne connais pas le php xD !

En ce qui concerne l'organisation de ma page, je n'utilise pas les fichiers after.php, before.php et bas.php. Toute ma page est comprise dans un énorme tableau, et chaque "morceau" de code en PHP de l'annuaire est compris dans un div (un div pour la barre de recherche, un div pour l'ajout de site ...).

Le problème serait résolu si, lors d'une erreur de la part de l'internaute, au lieu de charger le message d'erreur chamboulant ma mise en page, le script pointait sur une page de ma création, expliquant à l'internaute qu'il a commis une erreur. La logique serait : si un champ est mal remplis, charger la page "page.html". (Au lieu de générer ce fichu message d'erreur). Ne connaissant pas le php, il m'est impossible de modifier le fichier functions.php, qui, je suppose, est à l'origine du message d'erreur. En effet, ce fichier contient toutes les conditions de chargemennt des pages.

Autre solution : si l'internaute rentre des données érronées, alors la même page est chargée, lui faisant comprendre qu'il y a un problème puisque après avoir cliqué sur le bouton "continuer" il reste toujours au même stade. La logique serait alors : si données érronées, alors recharger la même page.(et non le message d'erreur xD).

J'espère avoir réussi à expliquer mon problème de manière compréhensible xD, et vous remercie d'avoir pris le temps de lire tout ce texte ! :) Merci d'avance pour vos réponses, cordialement,

Larry

Posté : mercredi, 17 octobre 2007, 00:57
par Keroin
Bonsoir et bienvenue Larry :welcome:

Pour ton soucis je sais peut être d'où ça vient, cela ne se passe pas uniquement dans le fichier functions.php mais aussi dans submit_site.php.

Les exemples ci dessous correspondent aux fichiers submit_site.php et functions.php d'un script categorizator n'ayant connu aucune modification (aussi les lignes peuvent ne pas correspondre exactement).
Fait un backup de ces deux fichiers avant de les modifier.

Il faut rechercher dans ce fichier submit_site.php le passage suivant :

Code : Tout sélectionner

//on cherche si l'url n'est pas deja presente dans les tables (la fonction exit si probleme)
	if (cherche_presence_url($url,$id_cat,$max_presence))
	{
		?>
		<br><br>
		<a href="index.php">Retour à l'annuaire</a>
		<?php
		include("after.php");
		exit;
	}
=> ligne 100 à 109.

Supprime la ligne

Code : Tout sélectionner

include("after.php");

Ensuite dans functions.php :

Ligne 491 à 497, chercher :

Code : Tout sélectionner

		echo htmlspecialchars($message);
		if ($inc) //si on peut faire die() (-> admin)
			include("after.php");					
		exit;
	}
	return true;
}
et supprimer

Code : Tout sélectionner

include("after.php");
Ligne 507 à 214, chercher :

Code : Tout sélectionner

echo $message;
		if ($inc) //si il faut inclure le fichier de fin (-> submit_site)
			include("after.php"); 
		exit;
	}
	else
		return false; //on rend faux pour dire que la variable n'est pas vide !
}
et supprimer

Code : Tout sélectionner

include("after.php"); 
Ligne 525 à 534, chercher :

Code : Tout sélectionner

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
}
=> toujours la même manip, supprimer la ligne de l'include.

Ligne 545 à 551, chercher :

Code : Tout sélectionner

	if ($ln_champ < $ln_min )
	{
		echo htmlspecialchars($message);
		if ($inc)
			include("after.php");
		exit;
	}
=> même ligne à supprimer

Ligne 640 à 644, chercher :

Code : Tout sélectionner

echo htmlspecialchars($message);
		if ($inc)
			include("after.php");
		exit;
	}
=> Même manip


Voilà ça devrait être ok avec tout ça^^

Ensuite tu replaces les deux fichiers sur ton ftp, tu vides le cache de ton navigateur et tu recharges la page.
Il y a de bonnes chances que celà vienne de là ;-)

Par contre pour l'affichage d'une page d'erreur perso je ne me suis pas trop penché sur la question (si c'est important je fouillerais un peu ;-) )

Posté : mercredi, 17 octobre 2007, 15:47
par Larry
Merci beaucoup, pour l'accueil et pour la réponse ! Je teste ça de suite ! ;-)

Reponse à : Larry

Posté : mercredi, 17 octobre 2007, 16:00
par Larry
Non ça ne marche toujours pas :saipas: je ne sais vraiment pas d'ou ça peut venir sniff :cry: Je pourrais résoudre le problème en proposant une inscription simple, avec le moins de champs possible à remplir, mais un anti-spam est présent dans le script, et si j'annule toute vérification, alors je vais être spamé de tous les cotés lol. En effet, l'anti-spam demande à l'internaute, à la fin du formulaire d'inscription, de réécrire dans le textearea prévu à cet effet, certains caractères images. C'est l'anti-spams classique quoi ! xD Donc sans cette protection, ... Je n'ose pas imaginer le combat que je vais devoir mener xD

Voici deux autres screen, réalisés sur une page que je n'ai presque pas modifié. J'ai seulement créé un tableau, dans lequel j'ai mis le code principal de "submit_site.php".

[img=http://img507.imageshack.us/img507/1520 ... go5.th.jpg]

Ici, on peut voir que sous la cellule du tableau, il y a encore du contenu. (Proposer un site, suivi d'une petite barre, elle même suivi d'"Adresse".

Jusque là, tout va bien. Le problème survient lorsque, par exemple, l'internaute clique sur continuer, sans avoir entré d'url.
Voici ce qui arrive :

[img=http://img507.imageshack.us/img507/9721 ... lz2.th.jpg]

Ici, ce qui est sous ma petite cellule, a disparu, pour laisser place à un blanc froid et distant xD. Bref, plus rien sous ma cellule !!
Il en est de même lorsque l'internaute finalise son inscription, et ommet de mettre son nom, ou entre un mauvais code pour l'anti-spams, ou encor lorsqu'il rentre une mauvaise adresse-mail : le bas de la page disparait, et le haut est tout chamboulé lol. Donc, la solution du chargement d'une page de ma création, à la place du message d'erreur serait génial, mais très dur et long à faire à mon avis xD.

Posté : mercredi, 17 octobre 2007, 16:08
par Keroin
Si ton projet est déjà en ligne donne l'url qu'on puisse y faire un tour voir les raisons de ce bug.

Si tu veux essayer de corriger par toi même et de comprendre exactement comment réagissent les éléments de ta page tu peux utiliser l'extension Firefox Firebug qui est souvent d'une grande aide dans ces cas là.

Reponse à : keroin

Posté : mercredi, 17 octobre 2007, 16:29
par Larry
Hum il n'est pas encor en ligne mais je peut metre une version "beta" sur le ftp d'un de mes anciens sites :)

Reponse à : Larry

Posté : mercredi, 17 octobre 2007, 16:36
par Larry
Voici le site (loin d'être terminé xD) :

Certains passages de texte n'aparaissent pas encore car il sont en noir, sur fond noir lol.
http://gta-movies.fr/annuaire/

Le mieux, est d'aller sur la page "Ton blog" et de cliquer sur continuer sans entrer l'adresse de son site :)

Posté : mercredi, 17 octobre 2007, 17:05
par Keroin
Bon je crois que j'ai trouvé, il faut retirer les attributs Width dans ton fichier CSS pour #Gauche et #Milieu.

Comme tu peux voir sur le screen ci dessous, ça semble corriger le souci ;-)

Image

Enfin ça ne corrige pas tout a fait car il faut aussi réduire la marge entre ton cadre partenaire et le formulaire.

Reponse à : keroin

Posté : mercredi, 17 octobre 2007, 17:35
par Larry
Merci beaucoup keroin, je teste ça de suite :-D

Reponse à : Larry

Posté : mercredi, 17 octobre 2007, 17:45
par Larry
Ta technique fonctionne pour centrer la box contenant le script, mais il manque beaucoup d'éléments de la page : le top one, le bas de page, et tout le coté droit (illustration et bordure blanche). Je pense qu'il n'y a pas tellement de solution à mon problème, je vais essayer de trouver un anti spam ne nécessitant pas de recopier les caractères apparus sur une image, et supprimer la vérification des données entrées dans les textarea. En tout cas, merci beaucoup pour ton aide et pour le temps que tu as consacré à mon problème, c'est super sympas !!! :good: