11 changed files with 194 additions and 18 deletions
@ -0,0 +1,5 @@
|
||||
<?php |
||||
$lang = array( |
||||
'homeMenu' => 'Home menu' |
||||
); |
||||
?> |
@ -0,0 +1,5 @@
|
||||
<?php |
||||
$lang = array( |
||||
'homeMenu' => 'Menu principal' |
||||
); |
||||
?> |
@ -0,0 +1,9 @@
|
||||
<?php |
||||
$config = array( |
||||
'title' => 'My blog', |
||||
'description' => 'Welcome on my wonderful blog', |
||||
'dbHost' => 'localhost', |
||||
'dbUser' => 'usr', |
||||
'dbPasswd' => 'JFZZxF+^}U:SZ<7EE=n!_(gQs', |
||||
'dbName' => 'blog' |
||||
); |
@ -1,27 +1,44 @@
|
||||
<?php |
||||
include('config/main.php'); |
||||
|
||||
if(isset($_GET['lang'])){ |
||||
if(!empty($_GET['lang'])){ |
||||
if(file_exists('assets/lang/'.$_GET['lang'].'.php')){ |
||||
include('assets/lang/'.$_GET['lang'].'.php'); |
||||
} |
||||
} |
||||
} |
||||
|
||||
if(isset($_GET['page'])){ |
||||
if(!empty($_GET['page'])){ |
||||
if(file_exists('views/'.$_GET['page'].'.php')){ |
||||
include('views/'.$_GET['page'].'.php'); |
||||
}else{ |
||||
$title = "Page not found"; |
||||
$content = "Sorry, the page you asked for doesn't exist"; |
||||
} |
||||
}else{ |
||||
$title = "Page empty"; |
||||
$content = "Sorry, we are not able to show you a content because the page to show is empty"; |
||||
header("location:?page=index"); |
||||
} |
||||
}else{ |
||||
$title = "Page not set"; |
||||
$content = "Sorry, we are not able to show you a content because the page to show is not defined"; |
||||
header("location:?page=index"); |
||||
} |
||||
?> |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title>L'étudiant auto-hébergé</title> |
||||
<title><?php echo $config["title"]; ?></title>
|
||||
<meta charset="utf-8" /> |
||||
</head> |
||||
<body> |
||||
<h1>L'étudiant auto-hébergé - Blog</h1> |
||||
<p>Vous pouvez trouver ici mes billets de blog sur mon quotidien en tant qu'étudiant auto-hébergé.</p> |
||||
<hr /> |
||||
<article> |
||||
<h1><a href="#lien-vers-l-article">Nom de l'article</a></h1> |
||||
<p>Description</p> |
||||
</article> |
||||
<hr /> |
||||
<article> |
||||
<h1><a href="#lien-vers-l-article">Nom de l'article</a></h1> |
||||
<p>Description</p> |
||||
</article> |
||||
<hr /> |
||||
<article> |
||||
<h1><a href="#lien-vers-l-article">Nom de l'article</a></h1> |
||||
<p>Description</p> |
||||
</article> |
||||
<h1><?php echo $config["title"]; ?></h1>
|
||||
<p><?php echo $config["description"] ?></p>
|
||||
<a href="?page=index"><?php echo isset($lang["homeMenu"])?$lang["homeMenu"]:"Return to home"; ?></a>
|
||||
<hr /> |
||||
<?php echo isset($content)?$content:'Content not found'; ?> |
||||
</body> |
||||
</html> |
||||
|
@ -0,0 +1,41 @@
|
||||
<?php |
||||
function getArticles(){ |
||||
require("lib/db.php"); |
||||
|
||||
$req = $db->prepare("SELECT * FROM articles"); |
||||
|
||||
if($req->execute(array())){ |
||||
$list = array(); |
||||
|
||||
while($data = $req->fetch()) |
||||
$list[] = $data; |
||||
}else |
||||
$list = NULL; |
||||
|
||||
return $list; |
||||
} |
||||
|
||||
function newArticle($title, $description, $author, $content){ |
||||
require("lib/db.php"); |
||||
|
||||
$req = $db->prepare("INSERT INTO articles (title, description, author, date, content) VALUES (?, ?, ?, NOW(), ?)"); |
||||
|
||||
if($req->execute(array($title, $description, $author, $content))){ |
||||
return true; |
||||
} |
||||
|
||||
return false; |
||||
} |
||||
|
||||
function getArticle($ID){ |
||||
require("lib/db.php"); |
||||
|
||||
$req = $db->prepare("SELECT * FROM articles WHERE ID = ?"); |
||||
|
||||
if($req->execute(array($ID))){ |
||||
if($data = $req->fetch()) |
||||
return $data; |
||||
} |
||||
|
||||
return false; |
||||
} |
@ -0,0 +1,10 @@
|
||||
<?php |
||||
include('config/main.php'); |
||||
|
||||
try{ |
||||
$db = new PDO('mysql:host='.$config['dbHost'].';dbname='.$config['dbName'].';charset=utf8', $config['dbUser'], $config['dbPasswd']); |
||||
}catch(PDOException $e){ |
||||
print "Erreur !: " . $e->getMessage() . "<br/>"; |
||||
die(); |
||||
} |
||||
?> |
@ -0,0 +1,30 @@
|
||||
<?php |
||||
function isValid($login, $password){ |
||||
require('lib/db.php'); |
||||
|
||||
$req = $db->prepare("SELECT ID, password FROM users WHERE name = ?"); |
||||
if($req->execute(array($login))){ |
||||
$data = $req->fetch(); |
||||
|
||||
if(password_verify($password, $data['password'])){ |
||||
return $data['ID']; |
||||
}else{ |
||||
return NULL; |
||||
} |
||||
}else{ |
||||
return NULL; |
||||
} |
||||
} |
||||
|
||||
function getUserName($id){ |
||||
require('lib/db.php'); |
||||
|
||||
$req = $db->prepare("SELECT name FROM users WHERE ID = ?"); |
||||
if($req->execute(array($id))){ |
||||
$data = $req->fetch(); |
||||
|
||||
return $data["name"]; |
||||
}else{ |
||||
return NULL; |
||||
} |
||||
} |
@ -0,0 +1,17 @@
|
||||
<?php |
||||
if(isset($_GET["ID"])){ |
||||
if(!empty($_GET["ID"])){ |
||||
include_once("lib/articles.php"); |
||||
include_once("lib/users.php"); |
||||
|
||||
$article = getArticle($_GET["ID"]); |
||||
|
||||
$authorName = getUserName($article["author"]); |
||||
|
||||
$content = "<h1>".$article["title"]."</h1><article>".$article["content"]."</article><span>written by ".$authorName." on ".$article["date"]."</span>"; |
||||
}else{ |
||||
$content = "Article ID is empty"; |
||||
} |
||||
}else{ |
||||
$content = "No article ID set"; |
||||
} |
@ -0,0 +1,10 @@
|
||||
<?php |
||||
include_once("lib/articles.php"); |
||||
|
||||
$articles = getArticles(); |
||||
$content = ""; |
||||
|
||||
foreach($articles as $article){ |
||||
$content .= "<article><h1><a href=\"?page=article&ID=".$article["ID"]."\">".$article["title"]."</a></h1><p>".$article["description"]."</p></article><hr/>"; |
||||
} |
||||
?> |
@ -0,0 +1,30 @@
|
||||
<?php |
||||
if(isset($_POST["writeSubmit"])){ |
||||
include_once("lib/users.php"); |
||||
|
||||
$user = isValid($_POST['login'], $_POST['password']); |
||||
|
||||
if($user){ |
||||
include_once("lib/articles.php"); |
||||
|
||||
if(newArticle($_POST["title"], $_POST["description"], $user, $_POST["content"])) |
||||
$content = "Article successfuly sent !"; |
||||
else |
||||
$content = "We are unable to send your article !"; |
||||
}else{ |
||||
$content = "Not a valid user !"; |
||||
} |
||||
}else |
||||
$content = "<form action=\"\" method=\"POST\"> |
||||
<label for=\"title\">Title</label> |
||||
<input type=\"text\" name=\"title\" id=\"title\" /><br /> |
||||
<label for=\"description\">Description</label> |
||||
<textarea name=\"description\" id=\"description\"></textarea><br /> |
||||
<label for=\"content\">Content</label> |
||||
<textarea name=\"content\" id=\"content\"></textarea><br /> |
||||
<label for=\"login\">Login</label> |
||||
<input type=\"text\" name=\"login\" id=\"login\" /><br /> |
||||
<label for=\"password\">Password</label> |
||||
<input type=\"password\" name=\"password\" id=\"password\" /><br /> |
||||
<input type=\"submit\" name=\"writeSubmit\" /> |
||||
</form>"; |
Reference in new issue