Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.81 KB | None | 0 0
  1. <?php
  2.  
  3. $error = '';
  4.  
  5. /* chemin du fichier: dossier courant + nom arbitraire */
  6. $chemin = dirname(__FILE__).'/sauvegarde.json';
  7.  
  8. function majJSON($json_utilisateur)
  9. {
  10.     /* important pour acceder a une variable globale dans une fonction */
  11.     global $error;
  12.     global $chemin;
  13.  
  14.      /* verifie que le JSON est utilisable ! */
  15.     $contenu = json_decode($json_utilisateur, true);
  16.  
  17.     /* le JSON n'est pas lisible, rejette */
  18.     if (! $contenu) {
  19.         $error = 'JSON incorrect !';
  20.         return false;
  21.     }
  22.  
  23.     /* a ce stade on a un JSON valide, on peut modifier le contenu
  24.        selon nos propres regles, par exemple rajouter un champ */
  25.     $contenu['plop'] = 'gruik';
  26.  
  27.     /* on reformate proprement le contenu du json qu'on a interprete */
  28.     $json_propre = json_encode($contenu);
  29.  
  30.     /* le parametre LOCK_EX evite que les utilisateurs ecrivent en meme temps */
  31.     if (file_put_contents($chemin, $json_propre, LOCK_EX) === FALSE) {
  32.         $error = 'Impossible d\'ecrire dans le fichier '.$chemin.' !';
  33.         return false;
  34.     }
  35.  
  36.     return true;
  37. }
  38.  
  39. /* gere le POST */
  40. if (isset($_POST['json'])) {
  41.     if (! majJSON($_POST['json'])) {
  42.         /* erreur */
  43.     }
  44. }
  45.  
  46. /* dans tous les cas : */
  47.  
  48. /* lis le fichier json actuel pour l'afficher (possiblement vide au depart) */
  49. $json_actuel = file_get_contents($chemin);
  50.  
  51. ?>
  52. <!DOCTYPE html>
  53. <html lang="fr">
  54.   <head>
  55.     <meta charset="UTF-8" />
  56.     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  57.     <title>Connexion</title>
  58.     <link rel="stylesheet" href="/style.css" />
  59.     </head>
  60.   <body>
  61.     <main>
  62.       <div class="logo"></div>
  63.  
  64.       <?php
  65.       /* affiche un message d'erreur s'il y en a un */
  66.       if ($error) { ?>
  67.       <span class="erreur"><?php echo htmlspecialchars($error); /* toujours se proteger avec htmlspecialchars pour eviter de casser le HTML */ ?></span>
  68.       <?php
  69.       }
  70.       ?>
  71.  
  72.       <?php
  73.       if ($json_actuel) {
  74.       ?>
  75.       <span class="fichier"><pre><?php echo print_r(json_decode($json_actuel, true), true); /* affiche le contenu interprete du JSON */ ?></pre></span>
  76.       <?php } else { ?>
  77.       <span class="fichier">FICHIER VIDE</span>
  78.       <?php } ?>
  79.       <section class="logIn">
  80.         <form action="/tuto.php" class="logIn__form" method="post">
  81.           <label class="logIn__form__label email">
  82.             JSON
  83.             <input
  84.               id="login"
  85.               name="json"
  86.               type="text"
  87.               placeholder="JSON ici"
  88.               aria-label="Tapez votre email"
  89.               class="logIn__form__input"
  90.               required
  91.             />
  92.           </label>
  93.           <input id="btn_Login" type="submit" value="Uploader JSON" class="btn red" />
  94.         </form>
  95.         </section>
  96.     </main>
  97.   </body>
  98. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement