Résolu [PHP] Un isset non fonctionnel ?

Statut
N'est pas ouverte pour d'autres réponses.

Neerfix

Développeur Web
Premium
Inscription
15 Décembre 2013
Messages
224
Réactions
49
Points
9 528
RGCoins
25
Salut,
J'ai un formulaire qui me permet d'envoyer un statut, comme un tweet ou un statut sur facebook. J'ai donc fait un formulaire avec un champ input text. Puis j'ai décidé de rajouter un champ input type file pour permettre d'ajouter des photos.

Voici donc le formulaire :
HTML:
<form action="index?tab=do" method="POST">
                                  <input type="text" class="activity_post" name="content" placeholder="Que voulez vous partager ?" autocomplete="off" style="border-radius: 5px 5px 0 0;">
                                  <div style="width: 100%; background-color: white; margin-bottom: 10px; border-left: 1px solid #dddddd; border-bottom: 1px solid #dddddd; border-right: 1px solid #dddddd;
    display: inline-flex; border-radius: 0 0 5px 5px;">
<div style="
    width: 50%;
">
<input type="file" name="picture" style="padding-left: 5px; margin-top: -20px;"/>

</div><div style="
    width: 50%;
" align="right">
<button type="submit" style="border-radius: 0 0 5px 0; margin: -2px 0px -2px 0px;">
                                    Poster
                                 </button></div></div>
                               </form>

Et voici donc la vérification en php :
PHP:
            $fichier = hash(****************);

    if(isset($_FILES['picture'])){
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
                                if (isset($_FILES['picture']) AND $_FILES['picture']['error'] == 0)
                                {
                                    // Testons si le fichier n'est pas trop gros
                                    if ($_FILES['picture']['size'] <= 2000000)
                                    {
                                        // Testons si l'extension est autorisée
                                        $infosfichier = pathinfo($_FILES['picture']['name']);
                                        $extension_upload = $infosfichier['extension'];
                                        $extensions_autorisees = array('jpg', 'jpeg', 'png');
                                        if (in_array($extension_upload, $extensions_autorisees))
                                        {
                                            // On peut valider le fichier et le stocker définitivement
                                            move_uploaded_file($_FILES['picture']['tmp_name'], '*****************' . basename($fichier));
                                        }
                                    }
                                }else{
                                    $_SESSION['flash']['danger'] = 'Une erreur est survenue';
                                    header('Location: '.$url.'');
                                    exit();
                                }

                                $picture_link = "".$url."/uploads/".$fichier."";
                                require 'inc/db.php';

                                $picture = "<br /><center><img src='".$picture_link."' /></center>";
                                $content_picture = "1";
        }else{
            $picture = "0";
            $content_picture = "0";
        }


include('/home/axenatcovd/www/assets/lib/emoji.php');

if(isset($_POST['content'])) {

    extract($_POST);
    $user_id = $_SESSION['auth']->id;
    $content = htmlspecialchars($_POST['content']);
    $content = emoji_docomo_to_unified($_POST['content']);   # DoCoMo devices
    $content = emoji_kddi_to_unified($_POST['content']);     # KDDI & Au devices
    $content = emoji_softbank_to_unified($_POST['content']); # Softbank & pre-iOS6 Apple devices
    $content = emoji_google_to_unified($_POST['content']);   # Google Android devices
    $content = emoji_unified_to_html($content);

    if($content != ""){


    $req700 = $pdo->prepare("INSERT INTO cms_activity SET  id_users = ?, content = ?, content_picture = ?, picture_link = ?, created_at = NOW(), statut = ?");
    $req700->execute([$user_id, $content, $content_picture, $picture, "a publié un nat"]);
    $pdo->query("UPDATE cms_users SET points = (points+3) WHERE id = ".$user_id."");
    $_SESSION['flash']['success'] = 'Ton message a bien été posté.';
        header('Location: ' . $_SERVER['HTTP_REFERER'] );
        exit();
}else{
    $_SESSION['flash']['danger'] = 'Tu dois écrire un message avant de le poster!';
    header('Location: ' . $_SERVER['HTTP_REFERER'] . '');
    exit();
}
}

Suite à ça, le statut est créé MAIS, le fichier n'est pas uploadé, ni détecter dans le formulaire.
Dans la base de donnée, j'ai bien le champ input text qui est enregistré, le nom de l'image est donc enregistré dans la colonne 'Picture_link' mais, le 'content_picture' reste à 0 comme si je n'avais pas envoyé d'image. Je ne vois pas pourquoi, mon formulaire ne détecte pas mon image. Mais enregistre bien le nom de l'image dans la base de donnée ...
 
Dernière édition:
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut