Loading:


Rozbudowana funkcja dodająca zdjęcia do portalu np. społecznościowego

Skrypt dodaje zdjęcie z opisem dla danego użytkownika.

Funckaj dodatkowo pobiera $smarty ale jeśli ich nie używacie wywalcie to.




// Table SQL z konfiguracją obrazków

grupa - to grupa użytkowniak który dodaje fotke

img_count - to limit ilości zdjęć dla tej grupy

img_size - to maksymalny rozmiar jednego zdjęcia dla tej gupy


CREATE TABLE `img_conf` (
  `grupa` varchar(20) NOT NULL,
  `img_count` int(11) NOT NULL,
  `img_size` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `img_conf` VALUES ('user', 4, 2000);


//Tablea SQL z użytkownikami

To przykładowa tabela użytkoników

CREATE TABLE `users` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `ip` varchar(20) NOT NULL,
  `data` varchar(20) NOT NULL,
  `act` tinyint(1) NOT NULL,
  `login` varchar(30) NOT NULL,
  `mail` varchar(80) NOT NULL,
  `haslo` varchar(255) NOT NULL,
  `grupa` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;



//Tabela SQL przechowująca obrazki użytkowników

username - to login użytkownika który dodał obrazek

main - to wartość oznaczająca czy zdjęcie jest zdjęciem głownym użytkownika

CREATE TABLE `img` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `username` varchar(100) NOT NULL,
  `url` varchar(250) NOT NULL,
  `opis` text NOT NULL,
  `main` tinyint(1) NOT NULL,
  `data` varchar(30) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;

 

 

//Kod HTML do dodawania plików

<form action="dodaj_zdjecie.php" enctype="multipart/form-data" method="post">
<table border="0" >
<tbody>
<tr>
<td><input name="plik" type="file">
</td>
</tr>
<tr>
<td><b>Opis zdjęcia</b><br>
<input name="opis" type="text">
</td>
</tr>
<tr>
<td>
<input  value="dodaj zdjęcie" type="submit">
</td>
</tr>
</tbody></table>
</form>



Napisz Artyku³

Listing


function lacz_bd()
{  
  $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');    
    if (! $db)
      return false;
   $db->autocommit(TRUE);
   return $db;
}



function dodaj_zdjecie($smarty){

if($_SESSION['user']){

//pobieramy nazwę użytkownika
$user = $_SESSION['user'];

$db = lacz_bd();

$zapytanie = "Select b.img_count, b.img_size from users AS a  LEFT JOIN img_conf AS b on a.grupa=b.grupa where a.login='$user' ";

$wynik = $db->query($zapytanie);

$wiersz = $wynik->fetch_assoc();

$img_count =  stripslashes($wiersz['img_count']);

$img_size =  stripslashes($wiersz['img_size']);

$zapytanie = "Select id from img where username='$user' ";

$wynik = $db->query($zapytanie);

$ilosc  = $wynik->num_rows;

if($_FILES['plik']['name']&&$_REQUEST['opis']){  

if($ilosc<$img_count){

$opis = $_REQUEST['opis'];

$wielkoscPliku = $_FILES['plik']['size']/1000;

if($wielkoscPliku<=$img_size){ 

$rand = rand(10000,99999);

$plik= pathinfo($_FILES['plik']['name']);

$rozszerzenie = strtolower($plik["extension"]);

if (($rozszerzenie == 'jpg')||($rozszerzenie == 'jpeg')||($rozszerzenie == 'gif')||($rozszerzenie == 'png')){

if(!file_exists('users_gallery/'.$user)) mkdir('users_gallery/'.$user, 0755);

if (is_uploaded_file($_FILES['plik']['tmp_name'])){
                                                               
if(move_uploaded_file($_FILES['plik']['tmp_name'],'users_gallery/'.$user.'/'.$rand.$_FILES['plik']['name'])){

$nazwa_pliku = $rand.$_FILES['plik']['name'];

$zapytanie = "Select id from img where username='$user' ";

$wynik = $db->query($zapytanie);

$ilosc  = $wynik->num_rows;

if($ilosc==0)$main='1'; else $main='0';//sprawdza czy zdjęcie ma być główną fotką

$zapytanie = "INSERT INTO img ( id , username , url , opis , main , data )VALUES (NULL , '$user', '$nazwa_pliku', '$opis', '$main', NOW( ))";

$wynik = $db->query($zapytanie);

$smarty->assign("dodaj_zdjecie", "1");

}else{

$smarty->assign("dodaj_zdjecie", "2");

//echo '6';
}
}else{

$smarty->assign("dodaj_zdjecie", "3");

//echo '5';

}              
               
}else{

$smarty->assign("dodaj_zdjecie", "4");

//echo '4';

}
}else{

$smarty->assign("dodaj_zdjecie", "5");

//echo '3';

}

}else{

//echo '2.1';

$smarty->assign("dodaj_zdjecie", "7");

}

}else{

//echo '2';

$smarty->assign("dodaj_zdjecie", "6");

}

}else{

//echo '1';

$smarty->assign("dodaj_zdjecie", "8");

}

}


//Jeśli wysłano plik to odpalamy funkcje dodającą
if($_FILES['plik']['name']) dodaj_zdjecie($smarty);
?>




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors