8795 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je n'avais jamais vu ça et je suis bloqué. Mon site php fait un déroulé de pages, comme un livre, avec des boutons submit et par POST. $page +1 pour Suivant et $page -1 pour Précédent. En fonction du numéro de $page, un texte et des photos sont affichés.

Jai un fichier index.php qui, en récupérant le POST, avec des switch trie les textes et les photos et un fichier textes.php qui contient tous les textes.

Une fois sur 10, le site, (le script) se déroule sans soucis, ( aller 1, 2, 3, etc... et retour 35, 34, 33, 32 etc...) mais 9 fois sur 10, arrivant à la page 4, ou la 7, ou la 15, etc..., jamais forcément pareil, une fenêtre apparaît et dit "Imopssible d' ouvrir le site famille/noel/visite/index.php. Opération abandonnée."

Et pan, j'ai droit à la page IE "Internet explorer ne peut afficher cette page" et le bouton "Diagnostiquer les problèmes de connexion".

J'ai remis windows (W7) à une date antérieure avec les points de restauration, j'ai re-intallé EasyPhp1-7, j'ai corrigé toutes mes erreurs en lisant même celles qui ne sautent pas aux yeux (afficher la source), bref j'ai fait le tour de ce qui était possible, me semble-t-il, et c'est toujours pareil.

Si vous aviez une idée...

Merci de m'en faire part.

Très cordialement,

Whombat
Modifié par whombat (05 Mar 2010 - 14:01)
Salut,

Je ne serais pas celui qui va répondre à ta question car c'est hors de mes compétences, mais je pense que pour aider ceux qui sont en mesure de t'apporter une réponse, il serait bien que tu montre une page en ligne et le code php utilisé. Smiley cligne
Pourquoi passer par POST quand on peut passer par GET ?

L'avantage c'est que tu peux utiliser n'importe quel élément pour ton lien, donc une image, du texte ou autre, à la place d'un formulaire.

Et ça laisse une trace dans l'url ce qui permet, si on le veut de mettre en favoris une page et d'y accéder directement ensuite.

Et si ça se trouve ton script plante à force d'envoyer toujours le même formulaire à la même page. Tu pourrais le tester avec un autre navigateur pour voir si le problème se reproduit par exemple, ils ne réagissent pas tous pareil.

Et, en effet, le code pourrait éventuellement être utile Smiley smile
Merci à vous deux.

Tu as raison HammHetfield, pour le coup des favoris, je vais tout passer en GET. Et je verrais bien. Je vous tiens au courant.

D'autre par, je viens de mettre à jour EasyPHP (il était temps) en passant du 1-7 au 5.2.10. et ça a l'air de fonctionner.

Windows 7 m'a proposé, pour la première fois, de contrôler mon PC car il a cru déceler un pb... Je l'ai laissé faire et, en fait, il n'y avait rien. Mais c'est quand même curieux que, juste au moment où j'ai le souci bizarre, W7 se reveille...

Bon, je vais continuer et wait and see, comme disent les touristes de Cahors.

Merci encore de vos réponses.

Très cordialement,

Whombat
Salut,

HammHetfield a écrit :
Pourquoi passer par POST quand on peut passer par GET ?
Parce que la plupart du temps c'est nettement mieux ! Smiley langue

A l'exception des urls autant cacher les variables soumises et leur valeur.
Bonjour,
Heyoan a écrit :
Parce que la plupart du temps c'est nettement mieux ! Smiley langue

Je ne suis pas d'accord. Je pense qu'il est en général préférable d'opter pour GET. Il est ensuite facile de faire une liste exhaustive des cas où POST est préférable :
- Certains des champs du formulaire ne doivent pas être affichés dans l'URL (mot de passe, ...).
- La requête a des effets de bord.

Il me semble que le premier élément est un cas particulier du second.
La question c'est plutôt pourquoi passer par un formulaire ? Ca a pas vraiment de sens, c'est pas le but, et en plus ici ça gêne la navigation du visiteur qui ne peut pas faire ce qu'il veut au final... Les données envoyées, c'est juste la page...
Plop,

@Julien > je parlais des variables soumises via un formulaire qui AMHA n'ont jamais ou presque (par exemple pour une recherche) à être visibles dans l'url... <edit>en me relisant je suppose que toi aussi tu parlais de formulaires ! Smiley smile Donc en le disant autrement : à part dans tous les cas où l'url générée peut-être fonctionnelle en étant bookmarquée je préfère utiliser POST et si ça n'est pas pour les 2 raisons principales que tu as évoquées ce sera tout simplement pour ne pas "altérer" inutilement l'URL</edit>

HammHetfield a écrit :
La question c'est plutôt pourquoi passer par un formulaire ?
[...]
Les données envoyées, c'est juste la page...
+1
Modifié par Heyoan (03 Mar 2010 - 12:55)
Heyoan a écrit :
@Julien > je parlais des variables soumises via un formulaire qui AMHA n'ont jamais ou presque (par exemple pour une recherche) à être visibles dans l'url... <edit>en me relisant je suppose que toi aussi tu parlais de formulaires ! Smiley smile Donc en le disant autrement : à part dans tous les cas où l'url générée peut-être fonctionnelle en étant bookmarquée je préfère utiliser POST et si ça n'est pas pour les 2 raisons principales que tu as évoquées ce sera tout simplement pour ne pas "altérer" inutilement l'URL</edit>

En fait je pense que l'on est d'accord, tout en formulant les choses de façon différente. Smiley smile
Bonjour à tous,

Ca y est, tout fonctionne. J'ai installé le nouveau EasyPHP, le mien datait un peu, et j'ai tout fait contrôlé par W7. Et ça c'est remis à fonctionner.

Pourquoi le script plantait ? Je ne sais pas. Mais ça marche.

D'autre part, j'ai trouvé comment tout passer en Get avec un <INPUT type='button' sans mettre de <A Href mais avec le onClick. Voilà, c'est nickel.

Merci de votre aide.

Très cordialement,

Whombat
D'après ce que j'ai compris, ton bouton ne devrait pas fonctionner avec Javascript désactivé alors...

Pourquoi pas un simple lien en texte ou en image plutôt qu'un button ?
Julien Royer a écrit :
En fait je pense que l'on est d'accord, tout en formulant les choses de façon différente.
Yep ! Smiley smile
whombat a écrit :
D'autre part, j'ai trouvé comment tout passer en Get avec un <INPUT type='button' sans mettre de <A Href mais avec le onClick. Voilà, c'est nickel.
C'est loin d'être "nickel" : soit tu as vraiment besoin d'un formulaire auquel cas il faut un élément INPUT ou un élément BUTTON de type="submit" et pas de onclick JavaScript, soit tu n'en as pas besoin et il suffit d'un lien (élément A) et pas de onclick JavaScript. Smiley murf
Il me semble avoir déjà expliqué mon point de vue, par forcément le meilleur d'ailleur :

Pour mon style de page, je ne veux pas faire apparaître un lien du type



<A HREF='index.php>mon lien </A> parce que je ne le trouve pas esthétique.



Donc, il me restez 2 possibilités : une image (flèche par exemple), roll-over ou pas, et un bouton du type submit mais en simple type='button' ce qui donne :



$pagePlus = $page + 1;
echo "<INPUT type='button' value='  Suivant  ' onclick=\"location.href='index.php?page=$pagePlus'\">";



Sans <FORM>

Oualà...
whombat a écrit :
Oualà...
Tu voulais plutôt dire Oulala non ? Smiley biggol


Si ton problème est d'ordre esthétique il suffit de remplacer le lien textuel par une image :
<a href="monlien.html"><img src="monimage.gif" alt="mon lien que j'ai" /></a>

Modifié par Heyoan (04 Mar 2010 - 11:54)
C'est exactement les options qui restaient.

Merci à tous pour vos réponses.

Très cordialement,

Whombat