IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire PHP : coordonnées gps + fichier xml


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de laureencrv
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 17
    Par défaut Formulaire PHP : coordonnées gps + fichier xml
    Bonjour à tous,

    J'espère que je poste ceci au bon endroit. J'ai un soucis avec mon code, j'espère que vous pourriez m'aider parce que ça me prends sacrément la tête.

    Dans mon fichier (html) j'ai ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <!DOCTYPE html>
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
    <title>ecrire horloge </title>
    <script>
    function maPosition(position) {
    document.forms["formulaire"].elements["latitude"].value=position.coords.latitude;
    document.forms["formulaire"].elements["longitude"].value=position.coords.longitude;
    }
    </script>
     
    </head>
     
    <body>
     
    <form name="formulaire" action="ecrire_horloge.php" method="POST">
    <label for="id latitude">Latitude : </label><input id="id_latitude" type="text" name="latitude" value="">
    <label for="id longitude">Longitude : </label><input id="id_longitude" type="text" name="longitude" value="">
    <input type="button" value="Calculer" onClick="if(navigator.geolocation)
    navigator.geolocation.getCurrentPosition(maPosition);">
    <input type="submit" value="Envoyer">
    </form>
     
     
    <p> Qui êtes-vous ?  </p>
    <form method="post" action="ecrire_horloge.php">
    <label> Ron Weasley
    <input type="radio" name="identite" value="<b>Ron Weasley</b>"/>
    </label><br />
    <label> Harry Potter
    <input type="radio" name="identite" value="<b>Harry Potter</b>"/>
    </label><br />
    <label> Ginny Weasley
    <input type="radio" name="identite" value="<b>Ginny Weasley</b>"/>
    </label><br />
    <label> Voldemort
    <input type="radio" name="identite" value="<b>Voldemort</b>"/>
    </label><br />
    <label> Olivier Dubois
    <input type="radio" name="identite" value="<b>Olivier Dubois</b>"/>
    </label><br />
    <label> Hermione Granger
    <input type="radio" name="identite" value="<b>Hermione Granger</b>"/>
    </label><br />
    <label> Drago Malefoy
    <input type="radio" name="identite" value="<b>Drago Malefoy</b>"/>
    </label><br />
     
    <p> Où êtes vous ? </p>
    <label> Maison
    <input type=radio name="lieu" value="à la maison" />
    </label><br />
    <label> Poudlard
    <input type="radio" name="lieu" value="à Poudlard"/>
    </label><br />
    <label> Les Trois Balais
    <input type="radio" name="lieu" value="à la taverne Les Trois Balais" />
    </label><br />
    <label> Cabane hurlante
    <input type="radio" name="lieu" value="à la Cabane hurlante"/>
    </label><br />
    <label> Weasley, Farces pour sorciers facétieux
    <input type="radio" name="lieu" value="au magasin Weasley, Farces pour sorciers facétieux"/>
    </label><br />
    <label> Ollivander - Fabricants de baguettes magiques
    <input type="radio" name="lieu" value="chez Ollivander - Fabricants de baguettes magiques"/>
    </label><br />
    <label> Banque Gringotts
    <input type="radio" name="lieu" value="à la banque Banque Gringotts"/>
    </label><br />
    <br />
     <input type="submit" value="Envoyer mon lieu" />
     </form>
     
     
    </body>
    </html>
    Le problème étant que je souhaite avoir qu'un seul formulaire avec l'obligation au moins de rentrer le prénom ($identite) = avoir qu'un seul bouton "envoyer".

    Voici mon code php relié à ma page html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html>
    <html>
    <head>
    <title>ecrire le lieu </title>
    <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
    </head>
    <body>
     
    <?php
    $identite=$_POST["identite"];
    $lieu=$_POST["lieu"];
    $monFichier = fopen("gps.txt","w");
    fwrite($monFichier,$identite);
    fwrite($monFichier,' est ');
    fwrite($monFichier, $lieu); 
    fclose($monFichier);
    echo "Bonjour Molly, <br/>
    ".$identite." est ".$lieu.".";
     
    if($lieu == "à la maison") { 
    	echo '<img src="https://crm.villadim.fr/media/house_roof/0001/32/31a469d8eb6620c9100bc770c9227b479306fda4.jpeg">'; }
     
    if($lieu == "à Poudlard") {
    	echo '<img class="imagehp" src="https://static.lpnt.fr/images/2016/06/29/4504468lpw-4504543-article-jpg_3637658_980x426.jpg">'; }
     
    $latitude=$_POST["latitude"]; 
    $longitude=$_POST["longitude"];
    $monFichier = fopen("gps.xml", "r");
    fwrite($monFichier,$latitude."\n");
    fwrite($monFichier,$longitude);
    fclose($monFichier);
    echo "GPS : ".$latitude." | ".$longitude;
    ?>
     
    </body>
    </html>
    Vu que j'ai 2 formulaires, je n'arrive pas à avoir les coordonnées saisies avec mon personnage et mon lieu.
    Avec ce même code je n'arrive même pas à avoir mes coordonnées GPS qui s'affiche. J'ai l'impression d'avoir un problème de variable, que mon fichier ne les reconnait pas.
    De plus j'aimerais que les coordonnées restent pour pouvoir les utiliser dans une map ou dans un autre fichier php, mais les seules coordonnées que j'arrive à avoir sont celles que j'inscris en dure dans mon fichier xml. (gps.xml)

    Mon fichier xml : J'aimerais que les coordonnées (page html) se mettent dans les emplacements prévues.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?xml version="1.0" encoding="utf-8"?>
    <utilisateurs>
     <identite id="1">
       <nom>Weasley</nom>
       <prenom>Ron</prenom>
       <latitude/>
       <longitude/>
       <date/>
     </identite>
     <identite id="2">
       <nom>Potter</nom>
       <prenom>Harry</prenom>
       <latitude/>
       <longitude/>
       <date/>
     </identite>
    </utilisateurs>
    Bref, excusez moi si je n'ai pas les bons termes.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 589
    Par défaut
    la 1re modification à faire est de garder qu'une seule balise "<form>...</form>" qui englobe toutes les informations.
    ensuite dans le fichier "ecrire_horloge.php" affichez le contenu de $_POST pour bien voir toutes les données que vous recevez.

    Pour cette affichage, vous pouvez essayer cette fonction qui affichera n'importe quelle variable composée d'objets, tableaux, code XML ou autres valeurs PHP spéciales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function aff($var) {
    	echo "<pre>";
    	echo htmlspecialchars(var_export($var, TRUE));
    	echo "</pre>";
    }

  3. #3
    Membre averti Avatar de laureencrv
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 17
    Par défaut
    Merci beaucoup pour la réponse

    Du coup, j'ai bien modifié mon form j'en ai laissé qu'un seul, tout fonctionne bien je vois désormais mes coordonnées.

    Par contre dans ma page gps.xml les données n'ont pas été enregistrées et je ne comprends pas pourquoi.. Puisque ce code est censé envoyer les données à mon fichier xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $latitude=$_POST["latitude"]; 
    $longitude=$_POST["longitude"];
    $monFichier = fopen("gps.xml", "r");
    fwrite($monFichier,$latitude."\n");
    fwrite($monFichier,$longitude);
    fclose($monFichier);
    echo "GPS : ".$latitude." | ".$longitude;
    ?>
    Je dois bien mettre ce code dans mon fichier php ? Même en le mettant il n'y a aucun changement, rien ne s'écrit sur mon fichier xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function aff($var) {
    	echo "<pre>";
    	echo htmlspecialchars(var_export($var, TRUE));
    	echo "</pre>";
    }

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 589
    Par défaut
    mon code définit uniquement la fonction. il faut donc l'ajouter dans ce fichier et ensuite vous pouvez l'utiliser en mettant aff($_POST);

  5. #5
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 983
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 983
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $monFichier = fopen("gps.xml", "r");
    Tu ne risques pas d'écrire grand chose dans un fichier ouvert en lecture seule. Mais de toutes manières pour pouvoir modifier un fichier xml correctement tu ne dois pas utiliser fopen mais plutôt les méthodes de la classe DOMDocument (et autres DOMMachinChose). Si tu n'es pas familière avec ces classes, je te conseille de passer par un tutoriel pour en connaître les bases.

  6. #6
    Membre averti Avatar de laureencrv
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 17
    Par défaut
    Alors en effet je ne suis pas initiée au DOMDocument, je vais essayer d'approfondir ce sujet, merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/03/2017, 22h10
  2. [CGI] Formulaire qui génére un fichier XML
    Par henri_kuy dans le forum Web
    Réponses: 14
    Dernier message: 25/07/2006, 11h40
  3. [HTML] Formulaire HTML vers un fichier XML
    Par Badaboumpanpan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/05/2006, 23h26
  4. [XML] Faire du php dans un fichier XML
    Par Oberown dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2006, 14h17
  5. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo