Aller au contenu

Mauvais code ou pas ?


Sujets conseillés

Posté

Bonsoir à tous,

Je voudrais simplement savoir si ce code est possible

<input style="background-color:black;color:white" type="button" value="Quitter" onclick="window.location=<?PHP header(\'Location:index.php\')?>">

En fait, j'essaie avec Header(location... parce que je connais pas très bien cela.

Le but est de renvoyer à l'index du site en cliquant le bouton.

Je sais que cela peut se faire avec "windows.location=../index.php...", mais je voulais voir avec autre chose !

Merci d'avance de vos réponses.

Posté (modifié)

bonsoir,

tu ne peux pas utiliser la fonction header de PHP à cet endroit.

Comme son nom l'indique, la fonction header permet d'envoyer une entete HTTP au navigateur.

Il faut qu'elle soit utilisée avant que le serveur n'envoie quoi que ce soit.

Généralement, on la retrouve tout en haut de la page.

Mais dans ton cas, elle précédée par du code HTML.

Par contre pourquoi ne pas faire un simple lien ?

Je te conseille aussi de réviser les formulaires HTML avec la balise FORM.

Lionel

Modifié par pluriels
Posté

Merci Pluriels, je voulais simplement savoir parce que je ne maitrise absolument pas cette fonction et de plus, je ne sais pas comment et où s'en servir !

Posté

Comme tu es parti sur du javascript, tu peux simplement faire ça :

<input style="background-color:black;color:white" type="button" value="Quitter" onclick="document.location= 'index.php';">

Posté

Oui, j'ai fait ça mais je voulais l'éviter, donc de trouver un autre moyen !

Posté

Si tu veux te passer de javascript, il va falloir utiliser plus de code :

<form method="post" action="page.php">
<input type="submit" name="quitter" value="Quitter">
</form>

Et dans la page "page.php" :

<?php
if(isset($_POST['quitter'])) {
header('Location: index.php');
}
?>

Posté

Je te remercie grandement, c'est très explicatif.

J'ai fait ça !

	echo("L'insertion a échoué.");
// echo ("[ <a href=\"java script:history.go(-1)\">Retour page précédente</a> ]");
echo '<form method="post" action="choix.php">';
echo '<input type="submit" name="quitter" value="Quitter">';
echo '</form>';
}
mysql_close();

Est-ce que c'est conforme ?

Par contre, là où j'ai un mauvais aperçu, c'est le 2ème code que tu m'as donné.

Le hic c'est que je n'ai pas d'index sur cette page et "header('Location: index.php');" en fait allusion !!!!

Ton code me semble parfait mais j'ai du mal à percuter avec cela.

Ce n'est pas nouveau parce que je ne sais pas comment m'en servir et surtout où.

Posté

Bonjour,

header : renvoie un entête au navigateur.

Location : renvoie une localisation. Autrement dit, dit au navigateur qu'il faut aller à tel endroit.

index.php > Donnes l'endroit, il faut aller sur index.php.

Dans le cas : header("Location: index.php");

le serveur comprends : envoyer au navigateur l'instruction d'aller directement à la page 'index.php'.

Quand tu dis :

Je sais que cela peut se faire avec "windows.location=../index.php...", mais je voulais voir avec autre chose

La réponse est :

Non, il faudrait, pour utiliser la fonction 'header' le faire comme ceci : header("Location: index.php");

Le hic c'est que je n'ai pas d'index sur cette page et "header('Location: index.php');" en fait allusion !!!!

Ah, mais tu parles, toi en premier, de 'index.php'.

Alors ton code 'javascript' du premier post renvoie vers quel fichier ?

<a href=\"java script:history.go(-1)\">Retour page précédente</a>

javascript : en 1 mot, sinon c'est pas bon.

header & Location : doivent être utilisés avant tout code html. Si tu renvoie du html, c'est pas bon. Si tu renvoies (ne serait-ce) un espace, ca n'est pas bon non plus.

Le plus simple est donc de commencer ton fichier comme ceci:

<?php

et d'y mettre du php jusqu'à la fonction 'header'.

Et ce php ne doit pas comporter de 'echo', sinon ca n'est pas bon non plus, ca va renvoyer quelque chose au navigateur, et il ne pourra plus être redirigé de cette manière.

Pour t'aider plus, il nous faudrait le nom exact des pages, la fonction de celles-ci, et éventuellement le code de la page (au moins le début) qui renvoie vers la 2e page.

Sinon, on ne voit pas trop où tu veux en venir..

Nico.

Posté

Bonjour Anonymus,

Je pense avoir bien compris tes explications.

J'ai tout modifié pour avoir une meilleure utilisation de cette fonction.

Je l'ai essayé... et ça marche.

Le hic, c'est que j'ai un fichier général (renommé "index.php"); c'est à dire qui contient les liens (P1, P2, P3...).

Donc, le location en question dans les différents fichiers me ramènent au général; jusque là, tout va bien.

Mais si je choisi un lien, par exemple P1, dans cette page, j'ai un autre lien pour aller vers PP1 par exemple.

Donc, quand je suis sur cette page (PP1), je fais le travail et à la fin, j'ai 2 possibilités :

1- revenir à la page précédente (vers P1) - utilisation du javascript (encore)

2- revenir au fichier général (vers index.php) - utilisation de header('Location: index.php')

En faisant ça, c'est impeccable.

Mais ce que je voudrais faire, dans le cas de PP1, c'est remplacer le javascript par du Php, et qui me ramènerait à la page précédente.

Je ne sais pas si je me suis bien expliqué ????

Un dessin vaut mieux qu'un long discours :

index.jpg

p1.jpg

pp1.jpg

C'est plus facile à voir non ?

T'as une idée à proposer ?

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...