You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							132 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
	
	
							132 lines
						
					
					
						
							4.9 KiB
						
					
					
				<!DOCTYPE html>
 | 
						|
<html lang="fr">
 | 
						|
<head>
 | 
						|
    <title>Mon Blog</title>
 | 
						|
    <style>
 | 
						|
        body { font-family:sans-serif; font-size:10px; }
 | 
						|
        .comments { margin-top : 2rem; }
 | 
						|
    </style>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <h1>Mon Blog</h1>
 | 
						|
    <!-- article -->
 | 
						|
    <article>
 | 
						|
        <?php 
 | 
						|
            // utliser mysqli pour se connecter à la base de donnée
 | 
						|
            // pour mémoire  https://www.php.net/manual/fr/book.mysqli.php
 | 
						|
 | 
						|
            // se connecter
 | 
						|
            // à savoir par défait sur une installation xampp
 | 
						|
            // l'utilisateur "root" est définit avec un mot de passe vide
 | 
						|
            // https://www.php.net/manual/fr/mysqli.quickstart.connections.php
 | 
						|
            $mysqli = new mysqli("localhost", "root", "", "b1bak");
 | 
						|
            // si une erreur se produit alors un numero d'erreur est intialisé
 | 
						|
            if ($mysqli->connect_errno) {
 | 
						|
                echo "Échec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
 | 
						|
            }
 | 
						|
            //sinon on est connecté
 | 
						|
            else {
 | 
						|
                echo "connecté à ";
 | 
						|
            }
 | 
						|
            echo $mysqli->host_info . "\n";
 | 
						|
 | 
						|
            // aller chercher le premier article dans la table article
 | 
						|
            // SELECT * FROM `article` 
 | 
						|
            // appeler la méthode query de mysqli
 | 
						|
            // https://www.php.net/manual/fr/mysqli.quickstart.statements.php
 | 
						|
            $resultat = $mysqli->query('SELECT * FROM `article`');
 | 
						|
            // récupérer le premier l'article.
 | 
						|
            $ligne_de_resultat = $resultat->fetch_array(MYSQLI_ASSOC);
 | 
						|
            // afficher en deboguage mon resultat
 | 
						|
            /*
 | 
						|
            echo "<pre>";
 | 
						|
            print_r($ligne_de_resultat);
 | 
						|
            echo "</pre>";
 | 
						|
            */
 | 
						|
            // afficher l'article
 | 
						|
        ?>
 | 
						|
        <h2><?php echo $ligne_de_resultat['titre']; ?></h2>
 | 
						|
        <p><?php echo $ligne_de_resultat['contenu']; ?></p>
 | 
						|
        <footer class="date">publié le <?php echo $ligne_de_resultat['date']; ?></footer>
 | 
						|
    </article>
 | 
						|
    <pre>
 | 
						|
        <?php 
 | 
						|
            //print_r($_POST);
 | 
						|
            // si le pseudo n'est pas déifnit l'intialiser à vide
 | 
						|
            $pseudo = "";
 | 
						|
            $erreur_pseudo = false;
 | 
						|
            // sinon récupérer le pseudo
 | 
						|
            if(!empty($_POST['pseudo']))
 | 
						|
            { 
 | 
						|
                $pseudo = $_POST['pseudo']; 
 | 
						|
            }
 | 
						|
            //si le champs est vide mais initialisé alors c'est une erreur
 | 
						|
            elseif(isset($_POST['pseudo'])) 
 | 
						|
            {
 | 
						|
                $erreur_pseudo = true;
 | 
						|
            }
 | 
						|
            // si l'email n'est pas déifnit l'intialiser à vide
 | 
						|
            $email = "";
 | 
						|
            $erreur_email = false;
 | 
						|
            // sinon récupérer l'email
 | 
						|
            if(!empty($_POST['courriel']))
 | 
						|
            { 
 | 
						|
                $email = $_POST['courriel']; 
 | 
						|
                //vérrifier avec une expression rationnelle que c'est bine un email
 | 
						|
                // version compliquée :^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$
 | 
						|
                if(!preg_match('/^[a-zA-Z0-9]+@[a-zA-Z0-9-_]+\.[a-zA-Z0-9]+$/',$email)) {
 | 
						|
                    $erreur_email = true;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            // si le commentaire n'est pas déifnit l'intialiser à vide
 | 
						|
            $commentaire = "";
 | 
						|
            // sinon récupérer le commentaire
 | 
						|
            if(!empty($_POST['commentaire']))
 | 
						|
            { 
 | 
						|
                $commentaire = $_POST['commentaire']; 
 | 
						|
                // s'assurer qu'il n y'a pas de script ou d'attaque dedans
 | 
						|
                //$commentaire = htmlentities($commentaire);
 | 
						|
                $commentaire = strip_tags($commentaire);
 | 
						|
                //print_r($commentaire);
 | 
						|
            }
 | 
						|
        ?>
 | 
						|
    </pre>
 | 
						|
    <div class="comments">
 | 
						|
        <form action="" method="post">
 | 
						|
            <label for="pseudo">votre pseudo</label>
 | 
						|
            <br/>
 | 
						|
            <?php 
 | 
						|
                if($erreur_pseudo) 
 | 
						|
                {
 | 
						|
                    echo "<div class='error'>Vous devez saisir un pseudo</div>";
 | 
						|
                }
 | 
						|
            ?>
 | 
						|
            <input type="text" required 
 | 
						|
                id="pseudo" 
 | 
						|
                name="pseudo"
 | 
						|
                value="<?php echo $pseudo; ?>" />
 | 
						|
            <br/>
 | 
						|
            <label for="courriel">votre courriel</label>
 | 
						|
            <br/>
 | 
						|
            <?php 
 | 
						|
                if($erreur_email) 
 | 
						|
                {
 | 
						|
                    echo "<div class='error'>Vous devez saisir un email valide</div>";
 | 
						|
                }
 | 
						|
            ?>
 | 
						|
            <input type="email" id="courriel"
 | 
						|
                 name="courriel"
 | 
						|
                 value="<?php echo $email; ?>" />
 | 
						|
            <br/>
 | 
						|
            <label for="commentaire">votre commentaire</label>
 | 
						|
            <br/>
 | 
						|
            <textarea required 
 | 
						|
              id="commentaire" name="commentaire"><?php 
 | 
						|
              echo $commentaire; 
 | 
						|
              ?></textarea>
 | 
						|
            <br/>
 | 
						|
            <button type="submit">envoyer</button>        
 | 
						|
        </form>
 | 
						|
    </div>
 | 
						|
</body>
 | 
						|
</html>  
 |