I
I
ID1410066282018-05-28 19:19:24
PHP
ID141006628, 2018-05-28 19:19:24

Adding an avatar when registering PHP + Mysqli?

The problem with registration, when registering a user, from the form I pass the values: password, phone number and hollow name, the script processes and writes to the database, this is understandable, but how can I add an avatar? I am attaching a screenshot of the script, the problem is that it adds an avatar by id, but how will I get it if the registration has not yet passed and the record is not even in the database yet and, accordingly, the id too.
In short, how do I get the user ID that I create in real time?
Mb stupid question but this is my first site, sorry.
5b0c2bb29722c723478940.png

if(isset($_POST["submit_add_profile"])){
    
    $id = $_SESSION['id'];
  
    if (isset($_FILES['fupload']['name'])) //отправлялась ли переменная
      {
      if (empty($_FILES['fupload']['name']))
      {
      $avatar = "uploads/images/avatars/no-avatar.png";
      $result7 = mysqli_query($mysqli,"SELECT src_avatar FROM users WHERE id='$id'");//извлекаем текущий аватар
      $myrow7 = mysqli_fetch_array($result7);
      if ($myrow7['avatar'] == $ava) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
      $ava = 1;
      }
      else {unlink ($myrow7['avatar']);}//если аватар был свой, то удаляем его, затем поставим стандарт
      }
      else
      {
      $path_to_90_directory = 'uploads/images/avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
    
    if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
      { 
         
      $filename = $_FILES['fupload']['name'];
      $source = $_FILES['fupload']['tmp_name'];  
      $target = $path_to_90_directory . $filename;
      move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
   
    if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
      $im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
      }
      if(preg_match('/[.](PNG)|(png)$/', $filename)) {
      $im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
      }
     
    if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
      $im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
    }

    $w = 100;  // ширина картинки
    $h = 100; //высота картинки

    $w_src = imagesx($im);
    $h_src = imagesy($im);
   
       $dest = imagecreatetruecolor($w,$h);
   
       if ($w_src>$h_src)
       imagecopyresampled($dest, $im, 0, 0,
                round((max($w_src,$h_src)-min($w_src,$h_src))/2),
                0, $w, $h, min($w_src,$h_src), min($w_src,$h_src));
   
       if ($w_src<$h_src)
       imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $h,
                min($w_src,$h_src), min($w_src,$h_src));
   
       if ($w_src==$h_src)
       imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $h, $w_src, $w_src);
       
   
    $date=time();
    imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
     
    $avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.
     
    $delfull = $path_to_90_directory.$filename;
    unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
     
    $result7 = mysqli_query($mysqli,"SELECT src_avatar FROM users WHERE id='$id'");//извлекаем текущий аватар пользователя
    $myrow7 = mysqli_fetch_array($result7);
     
    if ($myrow7['avatar'] == $ava) {//если он стандартный, то не удаляем его, ведь у нас одна картинка на всех.
    $ava = 1;
    }
    else {unlink ($myrow7['avatar']);}//если аватар был свой, то удаляем его
  }
  else
    {
    //в случае несоответствия формата, выдаем соответствующее сообщение
    exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
    }
  }
   
    $result4 = mysqli_query($mysqli,"SELECT src_avatar FROM users WHERE id='$id'");//обновляем аватар в базе
    if ($result4=='TRUE') {//если верно, то отправляем на личную страничку
    echo "<html><head><meta http-equiv='Refresh' content='5; URL=page.php?id=".$_SESSION['id']."'></head><body>Ваша аватарка изменена! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$_SESSION['id']."'>нажмите сюда.</a></body></html>";}
  }  
    
    mysqli_query($mysqli,"INSERT INTO users SET full_name='".mysqli_real_escape_string($mysqli,$_POST['FullName'])."', password='".mysqli_real_escape_string($mysqli,$_POST['Password'])."', telephone='".mysqli_real_escape_string($mysqli,$_POST['Telephone'])."', access_level='".mysqli_real_escape_string($mysqli,$_POST['Access_level'])."'");
    
    header("Location: ");
    }

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Mysterion, 2018-05-28
@ID141006628

$last_insert_id = mysql_insert_id();
After an INSERT INTO query.

V
Vitaly, 2018-05-28
@rim89

- Add an avatar after creating a user
- Make adding an avatar the second step of registration

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question