Izmantojam šo class.upload un Maadinsh veidoto class.auth.

1. Uzstādam Maadinsh auth klasi pēc viņa veidotās pamācības, lejupielādējam class.upload, un vienkārši require'ojam (include arī derēs) to lapā.

2. Pievienojam lietotāju tabulā kolonnu `avatar`. Tajā glabāsim avataru nosaukumus.

3. Pats kods.

if ($_GET['id'] == $auth->id && $auth->id) {
// Pārbauda, vai padotais lietotāja id aiz ?id= atbilst ielogotā lietotāja ID.
// Protams, varam dot arī tiesības adminiem mainīt, tikai tad jāatrod veids, kā noteikt, vai lietotājs ir admins
// Piemēram, pievienot aili `admin` datubāzē, un pierakstīt or ($auth->admin == '1' && isset($_GET['id']))
$print = $db->query("SELECT * FROM users WHERE id = '$id'");
// Kverijs, kas izvelk visus norādītā lietotāja datus no datubāzes (pietiktu arī ar avataru tho
$new = $print->fetch_object();
echo '
<p>Tagadējais avatars:
<img style="max-height:200px; max-width:200px; width: 200px; height: 200px;" src="/internal/img/avatars/' . $new->avatar . '" alt="' . $new->avatar . '" />
</p>
<form enctype="multipart/form-data" method="post" action="#">
<input type="file" size="32" name="avatar" value=""><br />
<input type="submit" name="change" value="Mainīt">
</form>
 ';
//Parāda šībrīža avataru un maiņas formu.

if (isset($_POST['change'])) {
// Pārbauda, vai ir padots $_POST['change']. Manā gadijumā tā ir "Mainīt" poga.
  $handle = new upload($_FILES['avatar']);
  if ($handle->uploaded) {
//Te norāda, kur, un ar kādu nosaukumu fails tiek augšupielādēts. Vienīgais ierobežojums - iztēle.
//Piemēram, es failus augšupielādēju iekš /home/svens/public_html/internal/img/avatars
//Un katram lietotājam ./avatars mapē izveidojas sava mape, kur glabājas visi iepriekšējie viņa avarati
//Un jaunie tiek pārveidoti uz png formātu un saglabāti formā avatar_(lietotāja id te)_(timestamp, kad avatars uzlikts te).png
      $handle->file_new_name_body = $auth->id;
      $handle->file_name_body_pre = 'avatar_';
      $handle->file_name_body_add = '_' . time() . '';
      $handle->image_convert = 'png';
      $handle->file_new_name_ext = 'png';
      $handle->file_max_size = '262144';
//Neļauj augšupielādēt lielākus avatarus par 256kB
      $handle->allowed = array('image/*');
      $handle->image_resize         = true;
      $handle->image_x              = 200;
//Samazina avataru līdz 200x200
      $handle->image_ratio_y        = true;
      $handle->process('/home/svens/public_html/internal/img/avatars/'.$id.'/');
      if ($handle->processed) {
      $filename = $handle->file_dst_name;
      $db->query("UPDATE `users` SET `avatar` = '/".$id."/$filename' WHERE `id` = '$id'");
      //Ieraksta datubāzē tikko augšupielādētā avatara nosaukumu un ceļu pēc ./avatars mapes,
      //Jeb šajā gadijumā /(lietotāja id)/(faila nosaukums).png
          $handle->clean();
          echo '<p>Avatars nomainīts! Pārlādē lapu. ;)</p>';
      } else {
          echo 'Kļūda : ' . $handle->error;
      }
}
}
}
else {
echo '<p>Tev nav tiesību mainīt šī lietotāja avataru!</p>';
}

Cerams, ka kādam noder. ;)

Laboja S J, labots 4x