Erreurs wamp

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
Profil introuvable

Profil introuvable Le 31 août 2016 à 14:49 (Édité le 25 janvier 2019 à 17:52)

Wamp m'affiche des erreurs lors de l'upload d'un fichier que je n'arrive pas à résoudre.
De l'aide !
Erreurs de wamp :
Warning: move_uploaded_file(docs/Z Fire?Tous(31/08/2016)gLYnGpuDonGfk0k.zip): failed to open stream: No
such file or directory in C:\wamp\www\transload\espaceMembres\upload.php
on line 26
Warning: move_uploaded_file(): Unable to move
'C:\wamp\tmp\php824B.tmp' to 'docs/Z Fire?Tous(31/08/2016)gLYnGpuDonGfk0k.zip' in
C:\wamp\www\transload\espaceMembres\upload.php on line 26
Fatal error: Call to undefined function prepare() in C:\wamp\www\transload\espaceMembres\upload.php on line 27
Code php :
<?php
    session_start();
    if (isset($_SESSION['connect'])) {
        $bdd = new PDO("mysql:host=127.0.0.1;dbname=mydbname;charset=utf8;", "username", "password");
        if (isset($_POST['submit'])) {
            if (!empty($_FILES['upload']['name']) AND !empty($_POST['title']) AND !empty($_POST['receveur'])) {
                $title = htmlspecialchars($_POST['title']);
                $receveur = $_POST['receveur'];
                if($receveur != "Choisir le receveur") {
                    if ($_FILES['upload']['error'] == 0) {
                        if ($_FILES['upload']['size'] <= 2097152) {
                            $extensionsValides = array('zip');
                            $extensionsUpload = strtolower(substr(strrchr($_FILES['upload']['name'], '.'), 1));
                            $characts = 'abcdefghijklmnopqrstuvwxyz';
                            $characts .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';    
                            $characts .= '1234567890'; 
                            $code_aleatoire = ''; 
                            for($i=0;$i < 15;$i++)
                            { 
                                $code_aleatoire .= substr($characts,rand()%(strlen($characts)),1); 
                            }
                            if (in_array($extensionsUpload, $extensionsValides)) {
                                $dateandtime = date('Y')."-".date('m')."-".date('d')." ".date('H').":".date('i').":".date('s');
                                $docname = $_SESSION['pseudo']."?".$receveur."(".date('d')."/".date('m')."/".date('Y').")".$code_aleatoire.".".$extensionsUpload;
                                $chemin = "docs/".$docname;
                                $résultat = move_uploaded_file($_FILES['upload']['tmp_name'], $chemin);
                                $req = prepare("INSERT INTO membres (envoyeur, receveur, titre, fichier, dateandtime) VALUES (:pseudo, :receveur, :title, :nomdoc, :dateandtime)");
                                $req->execute(array(
                                    'pseudo' => $_SESSION['pseudo'],
                                    'receveur' =>$receveur,
                                    'title' => $title,
                                    'nomdoc' => $docname,
                                    'dateandtime' => $dateandtime,
                                ));
                                $req->closeCursor();
                                $erreur = "Envoie du fichier réussi";
                            } else {
                                $erreur = "Vous devez placer vos fichiers dans<br />un dossier compréssé (zip)";
                            }
                        } else {
                            $erreur = "Votre document est trop lourd";
                        }
                    } else {
                        $erreur = "Une erreur est survenue. Veuillez réessayer";
                    }
                } else {
                    $erreur = "Vous devez choisir un receveur valide";
                }
            } else {
                $erreur = "Remplissez tous les champs avant de continuer";
            }
        }
?>
Code html :
<form method="POST" enctype="multipart/form-data">
                <input type="text" name="title" placeholder="Titre du fichier" title="Le titre sera le nom su fichier après téléchargement" /><br /><br />
                <select name="receveur">
                    <option disabled="disabled" selected="selected">Choisir le receveur</option>
                    <option value="Tous">Envoyer à tous</option>
                    <?php
                        $req = $bdd->prepare("SELECT pseudo, grade FROM membres WHERE pseudo != ?");
                        $req->execute(array($_SESSION['pseudo']));
                        while ($m = $req->fetch()) {
                            echo "<option value='".$m['pseudo']."'>".$m['pseudo']." (".$m['grade'].")</option>";
                        }
                    ?>
                </select><br /><br />
                <input type="file" name="upload" /><br /><br />
                <input type="submit" value="Envoyer le fichier" name="submit" />
            </form>
Arthel

Arthel Le 1 septembre 2016 à 09:56

Hey!

Peut tu me faire un schéma de ta base de données pour que je puis voir le problème sur mon local a moi stp?
Profil introuvable

Profil introuvable Le 1 septembre 2016 à 10:43

Salut Arthel. Désolé pour le dérangement mais tout est revenu à la normale. J'avais sauvegardée une ancienne version du code qui marche et je suis en train de la travailler. Je ne sais pas où est l'erreur.
Si cela t'intéresse, voici le code que j'utilise à présent :
PHP :
<?php
    session_start();
    if (isset($_SESSION['connect'])) {
        $bdd = new PDO("mysql:host=127.0.0.1;dbname=mydbname;charset=utf8;", "username", "password");
        if (isset($_POST['submit'])) {
            if (!empty($_FILES['upload']['name']) AND !empty($_POST['title']) AND !empty($_POST['receveur'])) {
                if ($_FILES['upload']['error'] == 0) {
                    if ($_FILES['upload']['size'] <= 2097152) {
                        $extensionsValides = array('zip');
                        $extensionsUpload = strtolower(substr(strrchr($_FILES['upload']['name'], '.'), 1));
                        $characts = 'abcdefghijklmnopqrstuvwxyz';
                        $characts .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';    
                        $characts .= '1234567890'; 
                        $code_aleatoire = ''; 
                        for($i=0;$i < 9;$i++)
                        { 
                            $code_aleatoire .= substr($characts,rand()%(strlen($characts)),1); 
                        }
                        if (in_array($extensionsUpload, $extensionsValides)) {
                            require('recaptcha/autoload.php');
                            if (isset($_POST['g-recaptcha-response'])) {    
                                $recaptcha = new \ReCaptcha\ReCaptcha('clé_secrète');
                                $resp = $recaptcha->verify($_POST['g-recaptcha-response']);
                                if ($resp->isSuccess()) {
                                    echo "Captcha valide";
                                    $titre = htmlspecialchars($_POST['title']);
                                    $receveur = htmlspecialchars($_POST['receveur']);
                                    $filename = $_SESSION['pseudo']." vers ".$receveur."_".$code_aleatoire."(".date('d').", ".date('m').", ".date('Y').")";
                                    $chemin = "docs/".$filename.".".$extensionsUpload;
                                    $résultat = move_uploaded_file($_FILES['upload']['tmp_name'], $chemin);
                                } else {
                                    $errors = $resp->getErrorCodes();
                                    $erreur = "Captcha invalide";
                                }
                            } else {
                                $erreur = "Remplissez le captcha avant de valider";
                            }
                        }
                    } else {
                        $erreur = "Votre document est trop lourd !<br />Taille max : 2Mo";
                    }
                }
            } else {
                $erreur = "Une erreur est survenue. Veuillez réessayer";
            }
        }
?>
HTML :
<!DOCTYPE html>
    <html>
        <head>
            <title><?php echo $_SESSION['pseudo']; ?> - Upload | Transload</title>
            <link rel="icon" type="image/png" href="logo.png" />
            <script src="https://www.google.com/recaptcha/api.js" async defer></script>
            <link rel="stylesheet" type="text/css" href="../styleGeneral.css" />
            <link rel="stylesheet" type="text/css" href="style-upload-download.css" />
            <meta charset="utf-8" />
        </head>
        <body>
            <header>
                <a name="hautDePage">
                    <ul class="menu">
                        <li><a href="download.php">Documents reçus</a></li>
                        <li><a href="#">Envoyer des docduments</a></li>
                    </ul>
                </a>
            </header>
            <h3><span class="entypo-upload"></span> Envoyez vos fichiers</h3>
            <form method="POST" enctype="multipart/form-data">
                <input type="text" name="title" placeholder="Titre du fichier" title="Le titre sera le nom su fichier aprés téléchargement" />
                <br /><br />
                <select name="receveur">
                    <option>Z Fire</option>
                </select>
                <br />
                <br />
                <input type="file" name="upload" />
                <br /><br />
                <div class="g-recaptcha" data-sitekey="clé_du_site"></div>
                <br/>
                <input type="submit" value="Valider" name="submit">
            </form>
            <?php
                if (isset($erreur)) {
                    echo "<font color='red'>".$erreur."<font>";
                }
                echo "<br />";
                if (isset($errors)) {
                    var_dump($errors);
                }
            ?>
        </body>
    </html>
Je travaille encore dessus et je n'ai pas fait la requête prepare("INSERT INTO") mais mes documents se téléversent bien sur mon site.
Merci de m'avoir répondu si vite.
Z Fire
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte