Bonjour,
je passe de php procedural vers une archi MVC et POO, en tant que debutant...
mon Modele :
public static function post($title,$content,$posted){
mon controleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 $db = getBdd(); $p = [ 'title' => $title, 'content' => $content, 'writer' => $_SESSION['admin'], 'posted' => $posted ]; $req = $db->prepare(" INSERT INTO posts(title,content,writer,date_post,posted) VALUES(:title,:content,:writer,NOW(),:posted)"); $req->execute($p); } public static function post_img($tmp_name, $extension){ $db = getBdd(); $id = $db->lastInsertId(); $i = [ 'id' => $id, 'image' => $id.$extension ]; $req = $db->prepare("UPDATE posts SET image = :image WHERE id = :id"); $req->execute($i); move_uploaded_file($tmp_name,"../img/posts/".$id.$extension); header("Location:index.php?page=post&id".$id); }
Et ma write.php sans passer par la VUE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 function write_admin(){ $db = getBdd(); /*if(admin()!=1){ header("Location:index.php?page=dashboard"); }*/ if(isset($_POST['post'])){ $title = htmlspecialchars(trim($_POST['title'])); $content = htmlspecialchars(trim($_POST['content'])); $posted = isset($_POST['public']) ? "1" : "0"; $errors = []; if(empty($title) || empty($content)){ $errors['empty'] = "Veuillez remplir tous les champs"; } if(!empty($_FILES['image']['name'])){ $file = $_FILES['image']['name']; $extensions = ['.png','.jpg','.jpeg','.gif','.PNG','.JPG','JPEG','.GIF']; $extension = strrchr($file,'.'); if(!in_array($extension, $extensions)){ $errors['image'] = "Cette image n'est pas valable"; } } if(!empty($errors)){ ?> <div class="card red"> <div class="card-content white-text"> <?php foreach ($errors as $error){ echo $error."<br/>"; } ?> </div> </div> <?php }else{ post($title,$content,$posted); if(!empty($_FILES['image']['name'])){ post_img($_FILES['image']['tmp_name'], $extension); }else{ $id = $db->lastInsertId(); header("Location:index.php?page=post&id=".$id); } } } }
Et j'ai une belle page blanche, alors que j'ai fait la meme chose cote front mais il n'y avait pas de param dans les functions...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39<h2>Poster un article</h2> <?= write_admin(); ?> <form method="post" enctype="multipart/form-data"> <div class="row"> <div class="input-field col s12"> <input type="text" name="title" id="title" /> <label for="title">Titre de l'article</label> </div> <div class="input-field col s12"> <label for="content">Contenu de l'article</label> <br><br> <textarea name="content" id="content"></textarea> </div> <div class="col s12"> <div class="input-field file-field"> <div class="btn col s3"> <input type="file" name="image" class="col btn s3" /> <span>Image de l'article</span> </div> <input type="text" class="file-path col s9" readonly /> </div> </div> <div class="col s6"> <p>Public</p> <div class="switch"> <label> Non <input type="checkbox" name="public"> <span class="lever"></span> Oui </label> </div> </div> <div class="col s6" right-align> <br /><br /> <button class="btn" type="submit" name="post">Publier</button> </div> </div> </form>
Merci de votre aide Bonne journee
Partager