location.href=

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2007, 18:39

Bonsoir à tous,

j'aimerais savoir s'il a l'équivalent de location.href='autrePage.php'; en php

car j'ai essayé
echo ("<script language='javascript'>location.href='envoi.php'</script>");

je suis bien rediriger mais les données du formulaire post ne suivent pas :(

Aidez-moi SVP

Eléphant du PHP | 493 Messages

18 nov. 2007, 18:51

Code : Tout sélectionner

document.location = "ta-page.php";
De rien 8-)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 nov. 2007, 18:56

La demande est incomplète !
Redirection en PHP se fait par header()
header("Location: page.php");
Mais les données formulaires ne vont pas suivre non plus :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2007, 19:25

mon problème est que j'ai employé le script de cyrano permettant de vérifier que tous les champs sont remplis convenablement (nom, email, tel, etc) formulaire.php

une fois la vérification fait, lui dans son script, affiche les données du formulaire mais ce toujours dans la même page..

moi je veux les envoyer par mail et les afficher sur une page envoi.php

un peu complexe pour une débutante.. :(

Eléphant du PHP | 185 Messages

18 nov. 2007, 20:46

Pour enregistrer les données d'un formulaire il faut tout d'abord lui indiquer une "méthode" d'envoi. Il y en a deux : GET ou POST. La méthode GET fait passer les variables par l'URL et la méthode POST les envoie de façon masquée (méthode la plus conseillée, surtout si des données contiennent des mots de passe et autres données privées).

Ensuite il faut que tes champs de formulaire soit nommés. Par exemple un champ "login" contiendra l'argument name="login". Lorsqu'un utilisateur remplira ce champ, le pseudo sera enregistré dans une variable de type $_GET['login'] ou $_POST['login'].

Ici il ne s'agit que de bases en HTML... Si tu ne connais pas au moins ces bases, mieux vaut dans un premier temps étudier le HTML, sinon tu risques de ne pas comprendre la suite...

Un formulaire valide peut ressembler à ceci :

Code : Tout sélectionner

<form method="post" action="envoi.php"> Login :<input type="text" name="login" /> Pass :<input type="password" name="pass" /> <input type="submit" name="envoi" value="Envoyer" /> </form>
Le fichier envoi.php doit ensuite récupérer les données envoyées par le formulaire via la méthode POST pour pouvoir les afficher :
<?php
// On récupère les données envoyées par le formulaire
$login = $_POST['login'];
$pass = $_POST['pass'];

// On affiche les données dans le navigateur
echo $login;
echo $pass; //logiquement on doit éviter d'afficher un mot de passe, mais là c'est pour l'exemple...
?>
Voilà, les bases... Reprendre un script tout fait (et certainement complexe s'il a été écrit par Cyrano, surtout quand on débute :P ) ne t'aidera pas à mieux comprendre. Il faut prendre le problème à la source.

Bon courage ! ;)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 nov. 2007, 21:57


/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

19 nov. 2007, 09:57

euh non pas vraiment, c'est bien ce script mais

bin moi en fait, je veux ouvrir une autre page avec les données entrées par l'utilisateur la nouvelle page s'ouvre avec la fontion javascript echo ("<script language='javascript'>location.href='envoi.php'</script>");
mais sans les données de l'utilisateur.

document.location = "envoi.php"; et document.location.href = "envoi.php";
Parse error: syntax error, unexpected '=' in /wwwsand/cyrano.php on line 142

donc comment remplacer le javascript <?php echo ("<script language='javascript'>location.href='envoi.php'</script>"); ?>

et mon formulaire est en method='POST' et je commence envoi.php avec
if(isset($_POST['envoi'])) { 
    $nom       = isset($_POST['nom'])       ? trim($_POST['nom'])      : ""; 
    $tel       = isset($_POST['tel'])       ? trim($_POST['tel'])      : ""; 
    $email     = isset($_POST['email'])     ? trim($_POST['email'])    : ""; 
    $societe   = isset($_POST['societe'])   ? trim($_POST['societe'])  : ""; 
    $adr       = isset($_POST['adr'])       ? trim($_POST['adr'])      : ""; 
    $rue       = isset($_POST['rue'])       ? trim($_POST['rue'])      : ""; 
    $cp        = isset($_POST['cp'])        ? trim($_POST['cp'])       : ""; 
    $hrs       = isset($_POST['hrs'])        ? trim($_POST['hrs'])      : ""; 
    $comm      = isset($_POST['comm'])      ? trim($_POST['comm'])     : ""; 
}
mais comme c'est ouvert en javascript il ne prend pas

merci de votre aide

ViPHP
ViPHP | 4039 Messages

19 nov. 2007, 10:11

"ouvert en javascript" ?

Tu nous fais un beau mélange la... y'a pas de "ouvrir en php" ou d'"ouvrir en javascript".

Un page s'ouvre en html. Alors, pour la petite histoire:

Php génère le html, il l'écrit selon qu'il à été programmé, selon les valeurs fournies. Il écrit le HTML, et il l'envoie a l'utilisateur, qui ne voit jamais rien en php (il ne voit que le résultat). Le javascript, c'est du code qui est écrit dans le html, que l'utilisateur reçoit, et qui va fonctionner chez l'utilisateur, une fois que celui-ci a réçu la page.

Si tu veux que javacript puisse lire les données traitées par php, va falloir les inscrire dans le page html, pourque JS puisse aller les lire (soit avec des input "hidden", soit à générer le code JS avec php).
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Invité
Invité n'ayant pas de compte PHPfrance

19 nov. 2007, 10:29

mais je ne veux pas rediriger en javascript, je voudrais l'équivalent en php pour que les données suivent.

Petit nouveau ! | 4 Messages

19 nov. 2007, 10:36

Essai avec la METHOD GET
Puis rempli ton javascript de cette façon :
<?php 
echo ("<script language='javascript'>location.href='envoi.php?nom=".$_GET[nom]."&prenom=".$_GET[prenom]."&mail=".$_GET[mail]."'</script>"); 
?> 
Ensuite tu récupères tous les champs sur ta page en remplaçant $_POST[] par $_GET[]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 nov. 2007, 11:11

Pour faire quelque chose de beaucoup plus propre que de transporter les données en GET ou en POST, tu peux utiliser les sessions ;)

Plus d'info sur les sessions
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Loulou
Invité n'ayant pas de compte PHPfrance

16 déc. 2007, 20:37

[skip]
bin moi en fait, je veux ouvrir une autre page avec les données entrées par l'utilisateur la nouvelle page s'ouvre avec la fontion javascript echo ("<script language='javascript'> location.href='envoi.php'</script>"); mais sans les données de l'utilisateur.
1/ le formulaire doit être correctement nommé et paramétré
<form name="formu1" action="ma_page.php" method="post">
2/... mettre tous tes <input name="nom1" /> <input "nom2" /> etc...
3/ mettre un bouton submit
<input type="submit" onclick="mafonction_javascript();" value="Envoi" />
</form>
4/ terminer la fonction mafonction_javascript par :
document.formu1.submit();

that's it folks :)
--
JLoulou

Invité
Invité n'ayant pas de compte PHPfrance

16 déc. 2007, 20:41

3/ mettre un bouton submit
<input type="submit" onclick="mafonction_javascript();" value="Envoi" />
</form>
j'ai oublié : il vaut mieux ajouter arrêt au retour de la fonction JS

<input type="submit" onclick="mafonction_javascript();return false;" value="Envoi" />

--
Jloulou

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2007, 09:28

Bonjour,

Pourquoi ne pas utilier ceci :

Code : Tout sélectionner

document.monFormulaire.action = 'maPage.php'; document.monFormulaire.submit();
Bon courage