8722 sujets

Développement web côté serveur, CMS

Bonjour à tous et à toutes,

J'ai sur mon site (cf. bouton du profil) un formulaire de contact, dans la page correspondante, qui est fonctionnel mis à part deux choses :

- les messages d'erreurs apparaissent sur une page toute blanche, et moi j'aimerais bien les caler au-dessus du formulaire (logique).

- les apostrophes, dans les messages que je reçois, s'affichent \'

Comment régler ces deux problèmes ?

Merci d'avance,
SL

Smiley biggrin
Pour les apostrophes : magic quotes ou addslashes.
Pour ton autres question : ben apprendre le PHP ou trouver un script qui te convient mieux.
Salut,

En javascript c'est possible, sinon tu peux/dois toujours garder des instructions PHP pour ceux qui l'auraient désactivé.

Tu définis une div par exemple:
<div class="err"></div>

Et tu la relis à un javascript de vérification des champs. Après tu peux styler les messages d'erreurs via le CSS.
Modifié par jmlapam (23 Jan 2012 - 12:39)
Saloute,

Encore mieux, tu crées ce div de class error par javascript, comme ça tu ne pourris pas la sémantique de ton document avec des balises horriblement vides Smiley langue
Merci les gars pour vos réponses.

@jb_gfx : c'est quoi les magic quotes ? j'ai regardé vite fais mais je vois pas trop ce que je devrais concrètement changer dans mon script.

Je vais voir pour les divs d'erreur, je vais essayer.

Smiley biggrin
Salut,

Les magic_quotes c'est une directive php, à régler dans le php.ini ou via .htaccess, et en gros cela simplifie les transmissions de chaines de caractères, il ajoute automatiquement les escape chars sur les quotes quand c'est nécessaire et les retire aussi.

Un conseil si tu t'orientes vers du JS pour afficher dynamiquement des messages de retour passe par un framework type mootools pour ce faire...

Il te faudra aussi envoyer via request les données du form pour pouvoir afficher un retour sans recharger la page, a mon avis.
Ok, pour les magic quotes, normalement, j'ai réussi.

Pour le style des erreurs, j'y ai pensé, et en fait, ça pourrait être pas mal si je pouvais faire ça sous forme de fenêtre modale qui affiche l'erreur, mais je sais pas encore comment je vais faire ça ...

Merci à tous en tout cas Smiley smile
un petit bout de code grossier pour t'aider à réaliser un dialogue modal avec une request :

Coté HTML:

<body>
<form action="traitement.php" method="post" id="monform">
Mon champ :
<input type="text" name="monchamp" id="monchamp" /><br />
<input type="submit" value="Envoyer" />
</form>
</body>


coté JS (via le framework mootools):
window.addEvent('domready', function() { 
  $('monform').addEvent('submit', function(e) {
    e.stop();
    new Request({ url: 'monphp.php', method: 'post', onSuccess: function(reponse) {
      new Element('div', { id: 'fader', styles: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', background: #000, opacity: 0.7 }, events: { click: function(e) { this.dispose(); } } }).inject($(document.body), 'bottom');
      new Element('div', { id='dialogue', html: reponse, styles: { position: 'absolute', left: '50%', top: '50%', width: 400, height: 200, marginLeft: -200, marginTop: -100, padding: 5 } }).inject('fader');
    } }).send('monchamp='+$('monchamp').get('value');
});


Et coté PHP:

// monphp.php
if ($_POST["monchamp"]) echo 'Saisie OK';
else echo 'Remplir le formulaire !';


En gros la validation du form appelle le php, tout ce qui est en sortie sur le php est retourné via l'événement onSuccess() du request et ensuite le script mootools ajoute un div opacifié sur la page contenant un div centré qui affiche le retour du php. L'event click() du div fader permet de supprimer le fader et ses enfants, mais peut être mis sur un lien ou autre... c'est juste une ébauche pour te donner l'idée.
Modifié par Miky76 (25 Jan 2012 - 14:55)
Mais pourquoi styliser en utilisant javascript alors que ta vérification tu la fais en php et au lieu de la faire sur une page blanche à part tu le fais sur la meme page !
Crousti2 a écrit :
Mais pourquoi styliser en utilisant javascript alors que ta vérification tu la fais en php et au lieu de la faire sur une page blanche à part tu le fais sur la meme page !


Le mieux est encore de faire 2 validations, une en javascript qui évite d'envoyer le formulaire si il n'est pas correctement renseigné, et un autre en PhP pour refaire une validation complète au cas où le js est désactivé, et évidemment renvoyer sur la même page pour la validation...
Ouais mais en fait le problème est que je suis pas une lumière en php, et du coup je rame un peu ... mais je m'y mets doucement, je vais y arriver.

Smiley biggrin