Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Znowu upload plików - błąd
Misiur66
post
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 11
Dołączył: 2.03.2008
Skąd: Lublin

Ostrzeżenie: (10%)
X----


Może pokażę całość i to co chce uzyskać, bo po jednym błędzie to nie ma sensu. Moja rejestracja opiera się na krokach (3, 4 to potwierdzenie poprawności danych). W 3 kroku można zauploadować avatar. W bazie danych mam pole typu boolean, które sprawdza czy ktoś ma avatar. Jeśli ma, to ładuje obrazek z folderu 'pix/avatar'. W momencie rejestracji, przed przejściem z 3 do 4 kroku obrazek (po sprawdzeniu), jest przesyłany tymczasowo do folderu 'pix/avatar/temp'. Dane pomiędzy krokami przysałam w tablicy poprzez ciasteczko (serialize, unserialize). W ciasteczku chcę jeszcze przesłać tymczasową nazwę avatara, jego roszerzenie i to czy został zauploadowany (do bazy danych). Dam tutaj kawałek kodu:

Kod
$types_z = array("image/png", "image/jpeg", "image/gif");
                        $types_na = array(".png", ".jpg", ".gif");
                        $type = str_replace($types_z, $types_na, $avatar['type']);
                        $random = rand(1, 99999);
                        $dane['avatar_nazwa'] = $random.$avatar['type'];
                        $prznenies_avatar = move_uploaded_file($avatar['tmp_name'], 'pix/avatar/temp/'.$random.$avatar['type']);
                        $dane['avatar_nazwa'] = $random.$avatar['type'];
                        $dane['avatar_type'] = $avatar['type'];
                        $dane['avatar'] = true;


To było z kroku 3, teraz 4.
Kod
elseif($_GET['krok'] == 4)
    {
        $dane = unserialize($_COOKIE['dane']);
        if(isset($_POST['rejestruj']))
        {
            $rejestruj = mysql_query('INSERT INTO users VALUES (false, "'.$dane['nick'].'","'.md5($dane['haslo']).'","'.$dane['email'].'","'.$dane['gg'].'","'.$dane['tekst_profil'].'","'.$dane['zainteresowania'].'","'.$dane['skad'].'","'.$dane['staz_www'].'","'.$dane['staz_gry'].'","'.$dane['strona_www'].'","'.$dane['avatar'].'","'.$dane['podpis'].'")') or die(mysql_error());
$pobierz = mysql_query('SELECT id_user FROM users WHERE nick_user LIKE "'.$dane['nick'].'"') or die(mysql_error());
             $id = mysql_fetch_array($pobierz);
             echo($id[0]);
             echo($dane['avatar_nazwa']);
             $avatar_gotowy = copy('pix/avatar/temp/'.$dane['avatar_nazwa'], 'pix/avatar/avatar_'.$id[0].$dane['avatar_type']);
             unlink('/pix/avatar/temp'.$dane['avatar_nazwa']);
             echo($dane['avatar']);
            //Pobierz id dla avatarka
            if($rejestruj)
            {
                setcookie('dane', 'null', time() - 3600);
                setcookie('ukonczone', md5('tak'));
                unset($dane);
                header('location: index.php?rejestracja&krok=done');
            }
            else
            {
                echo('Napotkano błąd w trakcie przetwarzania zapytania SQL');    
            }
        }
    }


Jeśli chcecie zobaczyć tą wersje, wejdźcie na http://misiur.cal.pl i spróbujcie sięzarejestrować uploadując avatar o wielkości mniejszej niż 100x100 i 100kB. Od razu są błędy że nie może pobraż $dane['avatar_nazwa'], i $dane['avatar']. Najgorsze jest to że nie mogę wstawić do BD czy ktoś zauploadował avatar czy nie i mi zwraca coś o integerze, czy jakoś tak. Jeśli ktoś ma chęć się tym zająć udostępnie wszystkie pliki .php. Pozdr
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 15:08