Bonjour,
Après un formulaire de saisie des données, je passe à leur enregistrement,
en intercalant par include dans le script d'enregistrmeent un script
fileupload qui traite les données d'upload d'un fichier photo
Dans ma quête de la perfection (j'en suis loin, riez pas), je voudrais faire
en sorte que, dans ce script fileupload, chaque if du genre :
if ($fichier_name == "")
{ echo "Pas de photo ? Dommage...";
exit;
}
offre la possibilité de cliquer sur le bouton Retour pour revenir à la page
précédente (ici pour fournir une photo) ou un bouton Continuer (pour
poursuivre la série des tests if comme celui-ci (il y en a 4 qui se suivent
du même tonneau) :
$masque = "^[_a-zA-Z0-9.-]+$";
if (!ereg($masque,$fichier_name))
{
echo "Nom de fichier invalide...";
exit;
}
J'ai placé dans ces if un bouton Retour (je l'ai pas mis là pour pas gêner
la lecture de l'original) précédé d'un return
return;
echo"<INPUT TYPE = 'button' VALUE = 'Retour' onClick =
'window.history.go(-1);'>";
mais ce n'est pas satisfaisant.
1) je voudrais interrompre le processus du script (càd pas d'affichage de la
suite si on n'a pas cliquer sur un bouton continuer)
2) avoir un bouton Continuer qui poursuive le processus pour certains tests
if (par exemple pour la photo, il n'est pas obligatoire d'en mettre une, en
revanche si on a choisi d'en placer une, qu'on puisse revenir et changer le
format/taille/nom du fichier)
A) Je n'ai pas trouvé d'instructions de Continuer (continue peut-être mais
je suis pas sûr)
B) Je ne sais pas comment "interrompre" le processus de ce script pour
revenir automatiquement à la page précédente
C) Faut-il que j'imbrique ma série de if assortie à chaque fois d'un return
ou d'un seul return en fin ?
Bref, je nage un peu sur le vocabulaire...
Merci
ADB
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
John Gallet
Bonjour,
if ($fichier_name == "") { echo "Pas de photo ? Dommage..."; exit; }
offre la possibilité de cliquer sur le bouton Retour pour revenir à la page précédente (ici pour fournir une photo) ou un bouton Continuer (pour poursuivre la série des tests if comme celui-ci (il y en a 4 qui se suivent du même tonneau) : Deux problèmes différents donc.
1) la logique de vérification - si tu n'as pas de fichier, tu ne risques pas de tester son nom. Donc le "continuer" n'a pas de sens. - si tu peux faire plusieurs tests indépendants les uns des autres qui tous doivent passer correcteemnt, rien ne t'empêche de tous les faire, et si un au moins échoue, arrêter le script.
2) la reprise sur erreur Si tu veux pouvoir rejouer la page précédente, il faut que tu saches avec quels arguments elle a été appelée. Par exemple en les stockant en session ou en les transmettant à ce script là. Tu as donc deux solutions : regénérer la page précédente en appelant la fonction ou le script par include. Rappel : les variables définies dans le script courant sont définies dans tout script inclus. Puis exit. C'est la version logique. Si tu sépares bien ta logique de la génération pure du html (présentation) c'est immédiat à metter en oeuvre. Deuxième solution : faire faire un aller retour aux données pour rien avec header("Location..."). Voir http://faqfclphp.free.fr/#ss2.11
2) avoir un bouton Continuer qui poursuive le processus pour certains tests if (par exemple pour la photo, il n'est pas obligatoire d'en mettre une, en revanche si on a choisi d'en placer une, qu'on puisse revenir et changer le format/taille/nom du fichier)
Il faut alors que tu mettes un lien http avec tous les arguments nécessaires au script qui affiche la page de choix d'upload. Le plus simple en terme d'écriture est qu'une seule page gère toutes les actions et qu'une variable (appelée originaleemnt 'action' ou 'choix') déclenche le bon code (par exemple avec un switch).
A) Je n'ai pas trouvé d'instructions de Continuer (continue peut-être mais je suis pas sûr) Non, rien à voir. Tu n'es pas en connexion permanente. Tu envoies une
requête http, le script s'exécute, se termine, et la liaison est rompue. Il n'y a aucune mémoire entre l'apel successif de deux scripts (sauf à utiliser les sessions.
B) Je ne sais pas comment "interrompre" le processus de ce script pour revenir automatiquement à la page précédente
Il suffit de regénérer le bon écran. Il ne faut pas raisonner en termes de nom de fichier mais d'affichage.
C) Faut-il que j'imbrique ma série de if assortie à chaque fois d'un return ou d'un seul return en fin ? Je n'ai pas compris. Return est utilisé dans une FONCTION, pour renvoyer
une valeur. Il interrompt l'exécution de ladite fonction.
Bref, je nage un peu sur le vocabulaire... Et la notion de client serveur en asynchrone non connecté... Lis la FAQ
du forum, ça te remettra les idées au clair sur certaines bases.
a++ JG
Bonjour,
if ($fichier_name == "")
{ echo "Pas de photo ? Dommage...";
exit;
}
offre la possibilité de cliquer sur le bouton Retour pour revenir à la page
précédente (ici pour fournir une photo) ou un bouton Continuer (pour
poursuivre la série des tests if comme celui-ci (il y en a 4 qui se suivent
du même tonneau) :
Deux problèmes différents donc.
1) la logique de vérification
- si tu n'as pas de fichier, tu ne risques pas de tester son nom. Donc
le "continuer" n'a pas de sens.
- si tu peux faire plusieurs tests indépendants les uns des autres qui
tous doivent passer correcteemnt, rien ne t'empêche de tous les faire,
et si un au moins échoue, arrêter le script.
2) la reprise sur erreur
Si tu veux pouvoir rejouer la page précédente, il faut que tu saches
avec quels arguments elle a été appelée. Par exemple en les stockant en
session ou en les transmettant à ce script là.
Tu as donc deux solutions : regénérer la page précédente en appelant la
fonction ou le script par include. Rappel : les variables définies dans
le script courant sont définies dans tout script inclus. Puis exit.
C'est la version logique. Si tu sépares bien ta logique de la génération
pure du html (présentation) c'est immédiat à metter en oeuvre. Deuxième
solution : faire faire un aller retour aux données pour rien avec
header("Location..."). Voir http://faqfclphp.free.fr/#ss2.11
2) avoir un bouton Continuer qui poursuive le processus pour certains tests
if (par exemple pour la photo, il n'est pas obligatoire d'en mettre une, en
revanche si on a choisi d'en placer une, qu'on puisse revenir et changer le
format/taille/nom du fichier)
Il faut alors que tu mettes un lien http avec tous les arguments
nécessaires au script qui affiche la page de choix d'upload.
Le plus simple en terme d'écriture est qu'une seule page gère toutes les
actions et qu'une variable (appelée originaleemnt 'action' ou 'choix')
déclenche le bon code (par exemple avec un switch).
A) Je n'ai pas trouvé d'instructions de Continuer (continue peut-être mais
je suis pas sûr)
Non, rien à voir. Tu n'es pas en connexion permanente. Tu envoies une
requête http, le script s'exécute, se termine, et la liaison est rompue.
Il n'y a aucune mémoire entre l'apel successif de deux scripts (sauf à
utiliser les sessions.
B) Je ne sais pas comment "interrompre" le processus de ce script pour
revenir automatiquement à la page précédente
Il suffit de regénérer le bon écran. Il ne faut pas raisonner en termes
de nom de fichier mais d'affichage.
C) Faut-il que j'imbrique ma série de if assortie à chaque fois d'un return
ou d'un seul return en fin ?
Je n'ai pas compris. Return est utilisé dans une FONCTION, pour renvoyer
une valeur. Il interrompt l'exécution de ladite fonction.
Bref, je nage un peu sur le vocabulaire...
Et la notion de client serveur en asynchrone non connecté... Lis la FAQ
du forum, ça te remettra les idées au clair sur certaines bases.
if ($fichier_name == "") { echo "Pas de photo ? Dommage..."; exit; }
offre la possibilité de cliquer sur le bouton Retour pour revenir à la page précédente (ici pour fournir une photo) ou un bouton Continuer (pour poursuivre la série des tests if comme celui-ci (il y en a 4 qui se suivent du même tonneau) : Deux problèmes différents donc.
1) la logique de vérification - si tu n'as pas de fichier, tu ne risques pas de tester son nom. Donc le "continuer" n'a pas de sens. - si tu peux faire plusieurs tests indépendants les uns des autres qui tous doivent passer correcteemnt, rien ne t'empêche de tous les faire, et si un au moins échoue, arrêter le script.
2) la reprise sur erreur Si tu veux pouvoir rejouer la page précédente, il faut que tu saches avec quels arguments elle a été appelée. Par exemple en les stockant en session ou en les transmettant à ce script là. Tu as donc deux solutions : regénérer la page précédente en appelant la fonction ou le script par include. Rappel : les variables définies dans le script courant sont définies dans tout script inclus. Puis exit. C'est la version logique. Si tu sépares bien ta logique de la génération pure du html (présentation) c'est immédiat à metter en oeuvre. Deuxième solution : faire faire un aller retour aux données pour rien avec header("Location..."). Voir http://faqfclphp.free.fr/#ss2.11
2) avoir un bouton Continuer qui poursuive le processus pour certains tests if (par exemple pour la photo, il n'est pas obligatoire d'en mettre une, en revanche si on a choisi d'en placer une, qu'on puisse revenir et changer le format/taille/nom du fichier)
Il faut alors que tu mettes un lien http avec tous les arguments nécessaires au script qui affiche la page de choix d'upload. Le plus simple en terme d'écriture est qu'une seule page gère toutes les actions et qu'une variable (appelée originaleemnt 'action' ou 'choix') déclenche le bon code (par exemple avec un switch).
A) Je n'ai pas trouvé d'instructions de Continuer (continue peut-être mais je suis pas sûr) Non, rien à voir. Tu n'es pas en connexion permanente. Tu envoies une
requête http, le script s'exécute, se termine, et la liaison est rompue. Il n'y a aucune mémoire entre l'apel successif de deux scripts (sauf à utiliser les sessions.
B) Je ne sais pas comment "interrompre" le processus de ce script pour revenir automatiquement à la page précédente
Il suffit de regénérer le bon écran. Il ne faut pas raisonner en termes de nom de fichier mais d'affichage.
C) Faut-il que j'imbrique ma série de if assortie à chaque fois d'un return ou d'un seul return en fin ? Je n'ai pas compris. Return est utilisé dans une FONCTION, pour renvoyer
une valeur. Il interrompt l'exécution de ladite fonction.
Bref, je nage un peu sur le vocabulaire... Et la notion de client serveur en asynchrone non connecté... Lis la FAQ
du forum, ça te remettra les idées au clair sur certaines bases.