Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
18 Novembre 2017, 04:05:51


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1]   Bas de page
  Imprimer  
Auteur Fil de discussion: Problème transferts de données/variables d'une page à l'autre  (Lu 5903 fois)
0 Membres et 1 Invité sur ce fil de discussion.
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« le: 26 Octobre 2010, 01:16:57 »

Bonsoir,

Je rame depuis des semaines pour mettre en place des transferts de données d'une page (formulaire) à l'autre (traitement et insert données)de mon site webou.
exemple (tout cela en PHP): je voulais initiallement faire tourner en boucle une page 'A' (formulaire) pour contrôler la validité des données introduites, mettre une message d'erreur (si erreur sur les données) ou insérer les données dans la BDD puis aller vers une page 'X' si les données sont valables.
du style (en raccourci et sans me relire (c'est pas un problème de syntaxe))...

----Page A ----
...
<?php If ($email == "")
{
 echo "l'email ne peut pas être vide";
?>
<form method="POST" enctype="multipart/form-data" action="A.php" >
<input name="email" type="text">
<input type="submit" name="inscription" value="Valider mes données">
<?php ;}
 else {instruction pour insérer données dans BDD
}
--------
>>> Impossible, j'ai au premier passage de cette page 'A' le message 'undefined index' pour la variable $email. Hors je vois que ce type de scénario/script est commun et souvent employé Huh Pleurs

Là je m'en suis sorti en créant une page 'B' qui récupère les données $_POST de la page 'A' (et donc  $email=$_POST['email'] est défini, je peux faire des tests dessus et tourner en boucle sur la page 'B'). AU moins, cela c'est résolu.

Autre exemple sur lequel je rame pour l'instant.
Vous connaissez tous/la plus part ce scénario où l'on se sert des données introduites (formulaire) pour envoyer un email sur l'adresse du nouveau membre pour que celui-ci valide son incription en cliquant sur le lien (contenu dans l'email envoyé). Ce lien est généralement du style (je simplifie ici) racine_du_site/confirmation.php?email=email@mem.bre

>>> He ben chez moi, sur cette page confirmation.php, si je fais un echo $email; >>> je reçois le message d'erreur 'undefined variable'....tout le contraire de ce que je lis sur les sites php qui décrivent ce type de scénario.
Dans ce style de scénario, J'en suis désormais ramené à devoir bricoler des trucs pour tenter d'extraire ma donnée 'email' de l'adresse http issue du lien:
<?php
$adr_a_corr = __FILE__ ;
$a=strpos($adr_a_corr , "?");
$f=strlen($adr_a_corr);
$d=$f-$a;
echo $adr_a_corr, "<BR/>", $a, "<BR/>", $f, "<BR/>", $d, "<BR/>";
?>
>>> ça marche pas  Pleurs $adr_a_corr ne contient que la racine du site et n'a pas pris le restant de l'info avec ?email=email@mem.bre. (marche pas non plus avec =$_SERVER['PHP_SELF'] ... même résultat)

ai-je une version assez actuelle de php (5.3.0)? est-ce wamp? Faut-il activer quelque part une option 'server flexible avec variable non définie spécifiquement' ?


au secours s'il vous plaît  Pleurs Pleurs Pleurs mon épouse va finir par me flinger à travailler toutes ces nuits sur de tels problèmes (qui ne devraient pas en être).

François
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« le: 26 Octobre 2010, 01:16:57 »

 Journalisée
judovillebon
Nouveau
*
Hors ligne Hors ligne

Messages: 38



Voir le profil WWW
« Répondre #1 le: 26 Octobre 2010, 16:09:28 »

Bonjour,

De manière générale, utilise l'envoi de formulaire par POST plutôt que GET.
Ce n'est pas la bonne méthode de vouloir extraire l'adresse mail via l'adresse url.

Si tu veux tester la validité d'une adresse mail, le plus simple reste encore de tester la validité des champs (email, ...) via un script javascript. La limitation est que celui qui visite ta page doit avoir activé javascript. Exemple ci-dessous.

Code:
<SCRIPT LANGUAGE="JavaScript">
/*
SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
http://www.editeurjavascript.com
*/
function VerifForm(formulaire)
{
adresse = formulaire.email.value;
var place = adresse.indexOf("@",1);
var point = adresse.indexOf(".",place+1);
if ((place > -1)&&(adresse.length >2)&&(point > 1))
{
formulaire.submit();
return(true);
}
else
{
alert('Entrez une adresse e-mail valide!!');
return(false);
}
}
</SCRIPT>

<form method="POST" enctype="multipart/form-data" action="A.php" [b]onsubmit="return VerifMail(this);"[/b]>
<input name="email" type="text">
...
</from>

Pour ton problème de ré-entrance, en php tu as moyen de tester l'existance d'une variable: fonction isset()

Regarde les 2 liens suivants, je pense qu'ils peuvent t'aider:
http://www.commentcamarche.net/contents/php/phpform.php3
http://fr.php.net/manual/fr/function.isset.php

Bon courage
Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #2 le: 26 Octobre 2010, 18:34:57 »

Bonjour,
Par rapport au message de judovillebon :
La vérification javascript est facilement contournable, il faut aussi faire la vérification en PHP (en utilisant les regex).
En plus de isset(), il vaut mieux utiliser empty() Clin d'oeil
Sinon tout a été dit ...
++
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #3 le: 27 Octobre 2010, 00:35:33 »

Que nenni  Grima&ccedil;ant
Un constat que j'ai fait, sans pouvoir l'expliquer:
la sensibilité à des variables indéfinies ou vides, générant des messages d'erreur, semble varier ÉNORMÉMENT selon le navigateur.
Teste tantôt sous Mozilla, tantôt sous IE: est-ce que les messages sont présents dans les 2 cas??
(bon, certes, tu devras bien, au final, faire tourner sous au moins ces 2 là...
mais ça peut débloquer la situation si tu arrives au moins à faire fonctionner sous un des 2 tant que tu es en train de coder!)
Journalisée
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #4 le: 27 Octobre 2010, 02:00:34 »

GRAND Merci pour vos aides TRES appréciées.  Sourire Elles me permettent …

- de me dire que je ne suis pas fou Grima&ccedil;ant, les scénario/scripts qui fonctionnent sur certains servers peuvent ne pas fonctionner sur d’autres (où, là, les variables globales sont sans doute accessibles). Je viens de vérifier, ni wamp ni le server Webou n’a activé les variables globales.
>>> Note aux webmaster débutants (cô moi): FAITES GAFFE, tous les beaux scripts PHP que vous comptez copier (de divers tutos)-coller sur Webou, VERIFIER qu’ils n’utilisent pas des variables non définies au préalable sur la même page (pas possible sans la mise en fonction des variables globales) !!(((un doute toutefois, sur le tuto commentcamarche il écrit <input …value=nom> (et nom pas "nom" …. Les guillemets peuvent-ils expliquer aussi mes problèmes passés??))))

- ET MIEUX encore, de résoudre mon problème   Souriant Souriant Souriant Souriant et encore   Souriant. je sais à présent récupérer les données inclues dans l’adresse URL grâce à cette merveilleuse fonction $_GET  Bisou...   génialement claire et utile cette page http://www.commentcamarche.net/contents/php/phpform.php3 !!

Désolé Judovillebon si je ne suis pas ton conseil sur GET mais c'est trop bon d'avoir mon système complet qui fonctionne et cela fait trop de nuits/semaines que j'étais là dessus pour faire demi-tour.
Comme k@cem, je teste en PHP les données introduites via le formulaire, mais sans doute d’une façon plus bricolage que lui
Par contre K@cem, ta fonction regex m'inquiète un peu car PHP manual renseigne ceci "Depuis PHP 5.3.0, cette extension est obsolète ; l'appel à n'importe quelle fonction de cette extension émettra une alerte de type E_DEPRECATED" ... hors je suis en 5.3.0 ....

je propose de mettre dans un autre message le code solution.

Encore merci à tous

François
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« Répondre #4 le: 27 Octobre 2010, 02:00:34 »

 Journalisée
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #5 le: 27 Octobre 2010, 02:15:54 »

Bonsoir MrsB,

je suis en IE ... humhum.. version 6 je pense (j'aime pas les nouvelles versions avec les feuillets). sinon j'ai aussi safari mais j'ai même pas pensé à tester si cela m'éviterait des messages d'erreurs... Roulement des yeux.
Si l'on s'en réfère au lien indiquer par judovillebon, le problème viendrait du fait que les variables globales sont pas actives ... Ind&eacute;ci

Non pro que je suis, je ne saurai pas checher plus loin. D'où l'immense joie de recevoir vos coups de pouce lorsque le mur devient vraiment trop infranchissable.
Et quel bonheur lorsque tout cela fonctionne  Souriant

Merci.

François
Journalisée
judovillebon
Nouveau
*
Hors ligne Hors ligne

Messages: 38



Voir le profil WWW
« Répondre #6 le: 27 Octobre 2010, 10:37:42 »

Bonjour,

Pour avoir le code pour verifier une adresse en php, regarde ce lien http://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail
Pour ton info, si tu passes par expression régulière, il ne faut pas utiliser ereg(), mais la fonction preg_match().

a+
Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #7 le: 27 Octobre 2010, 15:34:07 »

@MrsB : Ca n'a rien à voir avec le navigateur, le code est exécuté sur le serveur Clin d'oeil
@fontaineff : Je n'ai encore donné aucune fonction moi ...
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #8 le: 27 Octobre 2010, 21:15:59 »

Salut K@cem,

Ben tu mentionnais 'regex' dans ton message  Huh, ça sonnait pour moi comme le nom d'une fonction PHP et donc je l'ai cherché sur le PHP manual qui m'a orienté vers 'regex posix' avec le message style fonction obsolète  Huh

Merci Judovillebon mais je pense avoir désormais tout le nécessaire niveau test formulaire en php. Plus, cela deviendrait fortnox. Souriant

Je mettrais bien des bouts de codes ici (pour le débutants comme moi) mais lorsque je fais un copier coller, le server webou se plante et m'indique erreur 500  Huh
Comment vous faites vous pour copier sur le forum vos codes tels une photo ?

A+

François
Journalisée
MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #9 le: 27 Octobre 2010, 22:19:03 »

@kacem: je suis bien d'accord, mais alors comment tu expliques que, parfois, le même script déclenche des messages d'erreurs avec un navigateur et tourne avec l'autre??
En étant bien entendu exécuté sur le même serveur...
Moi j'ai pour l'instant conclu que selon le navigateur les codages "limite" étaient tolérés ou pas...
Informatiquement, je suis bien d'accord que ça n'a AUCUN sens. Mais je l'ai vu, donc ça existe...

@tous: ya une ambiguité de vocabulaire là jpense Grima&ccedil;ant
Kacem a parlé de
Citation
faire la vérification en PHP (en utilisant les regex)
pas d'une fonction regex!!
Donc je pense qu'il est plutôt question de
http://fr.wikipedia.org/wiki/Expression_rationnelle
(il est vrai que les informaticiens retiennent plus facilement le concept de "string"
http://fr.wikipedia.org/wiki/Cha%C3%AEne_de_caract%C3%A8res
que celui de "regex", alors que pourtant c'est pas tout à fait pareil...
me demande bien pourquoi  Huh Huh)

@fontaineff:
1) les scripts c'est comme les chaussures:
  • si c'est de la fabrication industrielle, c'est le pied qui se fait à la chaussure
  • si tu veux être bien dedans faut du sur-mesure
Grima&ccedil;ant Grima&ccedil;ant Grima&ccedil;ant Grima&ccedil;ant
2) Sinon pour insérer du code c'est le bouton # au-dessus des smileys quand tu tapes le message...
Journalisée
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #10 le: 02 Novembre 2010, 16:30:29 »

Merci MrsB;

Pour ce qui est du script, vu mon niveau, je commence avec l'industriel (dreamweaver) puis je bidouille dans le code pour l'aranger à mon pied.

Malheureusement, pour ceux que cela aurait pu intéresser, je ne pourrai pas mettre ici le code 'mes contrôles sur données (y inclus contrôle pas de doublon dans la bdd)' car à chaque fois que je colle le code dans ce message (même entre les balises "code"), webou me renvoie une erreur 500  Huh, mon code n'est pas si mauvais que cela pourtant, il fonctionne bien maintenant  Souriant
(j'ai même eu une erreur 404 lorsque j'ai cliqué sur l'option 'formulaire message' pour signaler le problème Huh)

A+

François
Journalisée
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #11 le: 23 Novembre 2010, 02:03:05 »

J'ai toujours ce message 'erreur 404 et/ou 500 lorsque je veux coller ici le bout de code pê utile à d'autres (pour le contrôle des données sur l'email introduit dans le formulaire). Désolé pour ceux que cela aurait pu intéresser....
« Dernière édition: 25 Novembre 2010, 01:23:28 par fontaineff » Journalisée
Pages: [1]   Haut de page
  Imprimer  
 
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.099 secondes avec 22 requêtes.