Upload zdjęć z formularzem wysyłanym do bazy

0

Siema, wraz z rozwiazaniem mojego problemu w ktorym umozliwilem upload zdjec powstal nowy problem. Pojawil sie problem przy formularzu w ktorym mozemy zmienic zdjecie uzytkownika plus zmienic jego dane. A glowny problem polega na tym, ze obie te rzeczy nie chca zrobic sie rownoczesnie. A mianowicie: jesli zmienie swoje dane personalne (imie, nazwisko) plus do tego zmienie zdjecie, na stronie wyswietli mi sie tylko zmiana samego zdjecia. Zmiany UPDATE w bazie do danych personalnych nie uwzglednia. Jesli chce zmienic dane personalne musze to zrobic bez zmiany zdjecia. Innymi slowy, jesli chce zmienic w swoim profilu zdjecie a pozniej dane, musze to zrobic na dwa razy. Najpierw zdjecie lub dane, a pozniej znowu wejsc no i to samo, dane lub zdjecie. Oto kod ktory wykorzystuje do updatowania mojej bazy w zdjecie i dane. A oto kod:

<?php

if(isset($_POST['sumit'])){
   
   
   
   
   /*
   include("check.php");
   $UpdateQueryy=("UPDATE tbl_users SET name='$_POST[upname]', lname='$_POST[uplname]', country ='$_POST[country]', city ='$_POST[city]', adress ='$_POST[adress]' WHERE userID='$userData[userID]'");
   @mysql_query($UpdateQueryy,$con);
   header('Location: profile.php'); 
   */
   
   
   
   
   if(getimagesize($_FILES['image']['tmp_name']) == FALSE)
                {
                     header('Location: profile.php');
                }
                else
                {
                    $image= addslashes($_FILES['image']['tmp_name']);
                    $name= addslashes($_FILES['image']['name']);
                    $image= file_get_contents($image);
                    $image= base64_encode($image);
                    saveimage($name,$image);
                }
            
            
            
            if($_POST['upname']['uplname']['country']['adress']['city']== FALSE)
               {
                  header('Location: profile.php');
               }
               else{
                  $upname=$_POST['upname'];
                  $uplname=$_POST['uplname'];
                  $country=$_POST['country'];
                  $adress=$_POST['adress'];
                  $city=$_POST['city'];
                  savechange($upname,$uplname, $country, $adress,$city);
               }
            
         
   
}

      
         function savechange($upname,$uplname, $country, $adress,$city)
            {
            include("check.php");
               
                $UpdateQueryy=("UPDATE tbl_users SET name='$upname', lname='$uplname', country='$country', adress='$adress' , city='$city'  WHERE userID='$userData[userID]'");
                $resultt=@mysql_query($UpdateQueryy,$con);
            
                if($resultt)
                {
                   header('Location: profile.php');
                }
                else
                {
                  echo "blad";
                }
            }
         function saveimage($name,$image)
            {
            include("check.php");
               
                $UpdateQuery=("UPDATE tbl_users SET image='$image', imagename='$name'  WHERE userID='$userData[userID]'");
                $result=@mysql_query($UpdateQuery,$con);
            
               if($result)
                {
                   header('Location: profile.php');
                }
                else
                {
                   echo "blad";
                }
            }
         
   

?>
 

Czy w tym kodzie faktycznie spowoduje, to ze rownoczesnie obie rzeczy nie wysla sie do bazy? Ma ktos jakis pomysl?

0

Po udanej zmianie zdjęcia użytkownika następuje przekierowanie:

header('Location: profile.php');

Pozostała część kodu odpowiedzialna za zmianę danych nie jest wykonywana.

0

Czy da sie jakos zrobic to tak, zeby bylo mozna te dwie funkcje zrobic droga wyboru? Jesli jedna z opcji zostana zmienione, obojetnie czy to upload zdjecia czy upload formularza to jesli jedno z tych opcji zrobie i wcisne ten submit to mi sie wykona to co zmienilem, a jesli nic nie zmienie i od razu wcisne przycisk to wtedy przekierowanie gdzies, po to, zeby nie zaktualizowaly sie te dane na puste. Probowalem z operatorem lub ale cos mi nie wychodzilo. A teraz jak usunalem header dla funkcji zapisu to wyswietla takie komunikaty:

Warning: Illegal string offset 'uplname'
Warning: Illegal string offset 'country'
Warning: Illegal string offset 'adress'
Warning: Illegal string offset 'city' 
 Fatal error: Cannot redeclare getUserData() - include dalem wewnatrz funkcji ale widoczocznie cos jest nie tak.

Z gory dziekuje!

dodanie znacznika <code class="none"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1