parent
67ea12ce16
commit
80ed556a26
@ -0,0 +1,173 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<title>Mon Blog</title>
|
||||||
|
<style>
|
||||||
|
body { font-family:sans-serif; font-size:10px; }
|
||||||
|
.error { background-color:#FFCC99;}
|
||||||
|
.success { background-color:#99FF99;}
|
||||||
|
.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>
|
||||||
|
<?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 = "";
|
||||||
|
$erreur_commentaire = false;
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
//si une fois qu'on asupprimé les tags il ne reste rien c'est une erreur
|
||||||
|
if(empty($commentaire))
|
||||||
|
{
|
||||||
|
$erreur_commentaire = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(isset($_POST['commentaire']))
|
||||||
|
{
|
||||||
|
$erreur_commentaire = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// il n'y a pas d'erreur si aucun des champs est en erreur.
|
||||||
|
if(!($erreur_commentaire || $erreur_email || $erreur_pseudo)) {
|
||||||
|
// on prépare la requete sql, après insertion dans phpmyadmin on cette instruction exemple :
|
||||||
|
// INSERT INTO `commentaire` (`id_comentaire`, `article_id`, `pseudo`, `mail`, `commentaire`) VALUES (NULL, '<identifiant>', '<pseudo>', '<email>', '<commentaire>');
|
||||||
|
// ce qui nous donne la requête préparée :
|
||||||
|
$requete = $mysqli->prepare("INSERT INTO `commentaire` (`id_comentaire`, `article_id`, `pseudo`, `mail`, `commentaire`) VALUES (NULL, ?, ?, ?, ?)");
|
||||||
|
//ensuite on lie les paramètres approprié.
|
||||||
|
//l'identifiant de l'article on l'a avec la première requete pour afficher le blog, c'est $ligne_de_resultat['id_article']. C'est un entier
|
||||||
|
//les autre champs on les a vérifié ce sont des chaines.
|
||||||
|
//pour liés les paramètre on commence par décrire les types
|
||||||
|
//ce sera donc entier, chaine, chaine, chaine soit integerstringstringstring soit isss
|
||||||
|
//l'instruction de bin est donc :
|
||||||
|
$requete->bind_param('isss',$ligne_de_resultat['id_article'],$pseudo,$email,$commentaire);
|
||||||
|
$resultat = $requete->execute();
|
||||||
|
if($resultat) {
|
||||||
|
echo "<div class='success'>Commentaire enregistré !</div>";
|
||||||
|
$pseudo = $mail = $commentaire = "";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo "<div class='error'>Error description: ".$mysqli -> error."</div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<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/>
|
||||||
|
<?php
|
||||||
|
if($erreur_commentaire)
|
||||||
|
{
|
||||||
|
echo "<div class='error'>Vous devez saisir un commentaire (html non autorisé)</div>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<textarea required
|
||||||
|
id="commentaire" name="commentaire"><?php
|
||||||
|
echo $commentaire;
|
||||||
|
?></textarea>
|
||||||
|
<br/>
|
||||||
|
<button type="submit">envoyer</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Simple HTML document</title>
|
||||||
|
<style>
|
||||||
|
body { font-family:sans-serif; font-size:10px; }
|
||||||
|
.error { background-color:#FFCC99;}
|
||||||
|
.success { background-color:#99FF99;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- validateur -->
|
||||||
|
<h1>Connexion</h1>
|
||||||
|
<!-- faire un formulaire de connexion permettant à l'internaute de saisir un login et un mot de passe -->
|
||||||
|
<!-- le formulaire sera soumis en "POST" -->
|
||||||
|
<form action="" method="POST">
|
||||||
|
<label for="pseudo">Votre login :</label>
|
||||||
|
<input type="text" name="pseudo" id="pseudo"/>
|
||||||
|
<br/>
|
||||||
|
<label for="pass">Votre mot de passe :</label>
|
||||||
|
<input type="password" name="pass" id="pass"/>
|
||||||
|
<input type="submit" id='submit' value='LOGIN' >
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
// afficher le login saisit par l'utilisateur
|
||||||
|
echo "Bienvenue ".$_POST['pseudo'];
|
||||||
|
echo " et c'est le numero ".rand(1,19)." qui donne le code";
|
||||||
|
|
||||||
|
// 1 me connecter à ma base de donnée
|
||||||
|
|
||||||
|
|
||||||
|
// 2 exécuter une requete de recherche
|
||||||
|
// de la forme :
|
||||||
|
// SELECT * FROM `utilisateur`
|
||||||
|
// WHERE `login` LIKE 'jo'
|
||||||
|
// mais avec le login que l'utilisateur
|
||||||
|
// à saisi à la place de jo
|
||||||
|
|
||||||
|
// dire si on trouve ou pas le résultat
|
||||||
|
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in new issue