Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $error = '';
- /* chemin du fichier: dossier courant + nom arbitraire */
- $chemin = dirname(__FILE__).'/sauvegarde.json';
- function majJSON($json_utilisateur)
- {
- /* important pour acceder a une variable globale dans une fonction */
- global $error;
- global $chemin;
- /* verifie que le JSON est utilisable ! */
- $contenu = json_decode($json_utilisateur, true);
- /* le JSON n'est pas lisible, rejette */
- if (! $contenu) {
- $error = 'JSON incorrect !';
- return false;
- }
- /* a ce stade on a un JSON valide, on peut modifier le contenu
- selon nos propres regles, par exemple rajouter un champ */
- $contenu['plop'] = 'gruik';
- /* on reformate proprement le contenu du json qu'on a interprete */
- $json_propre = json_encode($contenu);
- /* le parametre LOCK_EX evite que les utilisateurs ecrivent en meme temps */
- if (file_put_contents($chemin, $json_propre, LOCK_EX) === FALSE) {
- $error = 'Impossible d\'ecrire dans le fichier '.$chemin.' !';
- return false;
- }
- return true;
- }
- /* gere le POST */
- if (isset($_POST['json'])) {
- if (! majJSON($_POST['json'])) {
- /* erreur */
- }
- }
- /* dans tous les cas : */
- /* lis le fichier json actuel pour l'afficher (possiblement vide au depart) */
- $json_actuel = file_get_contents($chemin);
- ?>
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Connexion</title>
- <link rel="stylesheet" href="/style.css" />
- </head>
- <body>
- <main>
- <div class="logo"></div>
- <?php
- /* affiche un message d'erreur s'il y en a un */
- if ($error) { ?>
- <span class="erreur"><?php echo htmlspecialchars($error); /* toujours se proteger avec htmlspecialchars pour eviter de casser le HTML */ ?></span>
- <?php
- }
- ?>
- <?php
- if ($json_actuel) {
- ?>
- <span class="fichier"><pre><?php echo print_r(json_decode($json_actuel, true), true); /* affiche le contenu interprete du JSON */ ?></pre></span>
- <?php } else { ?>
- <span class="fichier">FICHIER VIDE</span>
- <?php } ?>
- <section class="logIn">
- <form action="/tuto.php" class="logIn__form" method="post">
- <label class="logIn__form__label email">
- JSON
- <input
- id="login"
- name="json"
- type="text"
- placeholder="JSON ici"
- aria-label="Tapez votre email"
- class="logIn__form__input"
- required
- />
- </label>
- <input id="btn_Login" type="submit" value="Uploader JSON" class="btn red" />
- </form>
- </section>
- </main>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement