2016-09-11 1 views
-1

Ich versuche, eine Profilseite für meine Mitglieder zu erstellen, die ihnen erlaubt, ihren Avatar zu ändern, aber ich habe einige Probleme mit dem Upload-Teil.Ich kann keine Datei auf den Server in PHP hochladen

if ($_POST['avatar']) { 
    $avatar = $_POST['avatar']; 
    $avatype = $_FILES['avatar']['type']; 
    $avasize = $_FILES['avatar']['size']; 
    $avatemp = $_FILES['avatar']['tmp_name']; //edited, removed the e in tmp 
    $avaname = $_SESSION['login']; 
    if ($avasize > 512000) { 
     echo 'too big'; 
    } else { 
     $avapath = 'images/avatar/'.$avaname; 
     if (is_uploaded_file($avatemp)) { 
      if (move_uploaded_file($avatemp, $avapath)) { 
       $avaIsSet = $db->query('UPDATE `users` SET `hasavatar`="1" WHERE `id`="'.$_SESSION['id'].'"'); 
       $avaIsSet->execute(); 
     } else { 
       echo 'not moved'; 
      } 
     } else { 
      echo 'not uploaded'; 
     } 
    } 
} 

Tatsache ist, dass, wenn ich es zu bekommen bin versucht zu arbeiten, ich habe immer den gleichen Fehlercode: not uploaded

ich wirklich hoffe, ichduersiees die Lage, mir zu helfen,
Dank

EDIT:

Hier ist der hTML-Code, die pHP-Datei führt, die die Änderungen gelten:

<?php if ($selfmodify) { ?> 
<form action="updateprofile.php" method="post"> 
       <div class="form-group"> 
      <? } ?> 
     <div class="col-md-2 col-sm-2"></div> 
     <div class="col-md-3 col-sm-3" id="avatar"> 
      <br/> 
      <img src="images/avatar/<?php if ($pdata[hasavatar] == 1) { echo $pdata[id]; } else { echo "default"; } ?>" style="width: 100%" class="img-rcor"> 
      <?php if ($selfmodify) { ?> 
      <input type="file" name="avatar" accept="image/*"> 
      <? } ?> 
     </div> 
     <div class="col-md-1 col-sm-1"></div> 
     <div class="col-md-4 col-sm-4"> 
      <h3><?php echo $pdata[login]; ?></h3> 
      <br/> 
      <p align="left">Prénom: <?php if ($selfmodify) echo '<input type="text" class="form-control" name="firstname" value="'; ?><?php echo $pdata[fname]; ?><?php if ($selfmodify) echo '">'; ?><br/><br/> 
      Nom: <?php if ($selfmodify) echo '<input type="text" class="form-control" name="lastname" value="'; ?><?php echo $pdata[famname]; ?><?php if ($selfmodify) echo '">'; ?><br/><br/> 
      <?php if (($pdata[showmail] == 1) || ($selfmodify)) echo 'E-mail: '.$pdata[email]. '<br/>'; if ((!$selfmodify) && ($pdata[showmail] == 1)) echo '<br/>'; ?> 
      <?php if ($selfmodify) { ?> 
      <input type="checkbox" name="showmail" value="showmail" <?php if ($pdata[showmail] == 1) echo 'checked'; ?>> Rendre mon e-mail visible 
      <br/><br/> 
      <? } ?> 
      Dernière connexion: <?php if ($pdata[isonline] == 1) { echo 'Actuellement en ligne'; } else { echo $pldate.' à '.substr($pdata[lasttime], 0, -3).' (GMT)'; } ?></p> 
      <br/> 
      <?php if ($selfmodify) { ?> 
        <br/><br/> 
        <input type="submit" class="btn btn-info" name="confirm" value="Confirmer"> 
       </div> 
      </form> 

Ich weiß, dass mein Code ein echtes Chaos ist, aber ich konzentriere mich auf das Ergebnis, das es gibt, nicht die Art, wie mein Code strukturiert ist. Ich bin unerfahren, ich schätze, es wird später kommen, aber im Moment versuche ich mein Bestes.

+0

zu Hinzufügen was @DominiqueLorre sagte unten, sind Sie sicher, dass dies richtig ist, '$ avaname = $ _SESSION [ 'login'] ; '? Glaubst du nicht, dass es '$ avaname = $ _FILES ['avatar'] ['name'];'? –

+0

Ich möchte, dass $ avaname der endgültige Name der Datei ist (eine benutzerdefinierte, die mit meiner Profilseite Methoden kompatibel ist), also denke ich, dass ich nicht falsch bin –

Antwort

1

Versuchen mit diesem:

$avatemp = $_FILES['avatar']['tmp_name']; 

NB: Antwort in den Kommentaren

+0

Ich habe überprüft und erneut überprüft, ich bekomme immer noch der Fehler. Ich habe auch die PHP-Berechtigungen geprüft, die ich von meinem Host erhalten habe, und upload_file ist "On" und selbst wenn ich einen anderen Browser oder Computer anwende, ist der Fehler immer noch derselbe. –

+0

versuchen Sie diese: 'var_dump ($ _ POST); var_dump ($ _ FILES); var_dump ($ _ SESSION); 'um zu sehen, was Sie bekommen. –

+0

Hier ist, was ich bekomme, wenn ich 'var_dump()' für diese Ausdrücke: 'array (5) {[" avatar "] => string (11)" images.jpeg "[" firstname "] => string (6) "Déven" ["nachname"] => string (6) "Esteve" ["showmail"] => string (8) "showmail" ["bestätigen"] => string (9) "Confirm"} array (0) {} array (3) {["verbunden"] => int (1) ["login"] => string (9) "Aurgelmir" ["id"] => string (1) "0"} ' Wenn ich recht habe, gibt $ _FILES nichts zurück. –

Verwandte Themen