Problem z przekazaniem wyników w skrypcie

0

Cześć!

Mam pewien problem z moim skryptem. Chciałbym zaznaczyć,że programista ze mnie jak z koziej d**y trąba :P Dlatego proszę nie krzyczeć.
Zrobiłem sobie taki skrypt który najpierw wybiera obraz później na ten obraz nakłada tekst i na samym końcu wysyła go do bazy danych.
No i w zasadzie po mimo patologi tego kodu,skrypt działa w 99%. I właśnie ten jeden procent...

Próbowałem już naprawdę wielu możliwości (być może mało skutecznie) przekazywanie wyniku jako sesję, tworzenie globalnych, nadawanie zmiennej $wynik wyniku z zapytania i koniec końców dostaje w pysk :/

Kod do wglądu.

<?php 

require_once("class2.php");
e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE);

require_once(HEADERF);


?>


<?php

if (!isset($pref['subnews_class']))
{
	$pref['subnews_class'] = e_UC_MEMBER;
}


if (!check_class($pref['subnews_class']))
{
	e107::getRender()->tablerender(NWSLAN_12, NWSLAN_11);
	require_once(FOOTERF);
	exit;
}
/////////////////////////////
?>

<ul class="nav nav-tabs">
  <li><a href="submitnews.php?category=janusz">Janusz</a></li>
  <li><a href="submitnews.php?category=krowa">krowa</a></li>
  <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>


 
 
 
<?php 

if(isset($_REQUEST['category']) and $_REQUEST['category']!=''){

//wczytujemy pliki z folderu 	
if(isset($_REQUEST['category']) and $_REQUEST['category']=='janusz') {

	
define('dir', 'Generator/janusz/');				
if ( !$katalog = opendir(dir) ) {
  die('<center>Podany katalog nie istnieje!</center>');
}

while ( $plik=readdir($katalog) ) {
   if(eregi('[.]jpg|[.]bmp|[.]gif|[.]png|[.]jpeg', $plik)) {
	    echo '
		
		 <div class="col-md-3">
            <a><a href="submitnews.php?big_image='.dir.$plik.'"><img src="'.dir.$plik.'" alt="'.dir.$plik.'" class="img-responsive"/></a></a>
          </div>';
		
   }
}
}

if(isset($_REQUEST['category']) and $_REQUEST['category']=='krowa') {
	
	
define('dir', 'Generator/');				
if ( !$katalog = opendir(dir) ) {
  die('<center>Podany katalog nie istnieje!</center>');
}

while ( $plik=readdir($katalog) ) {
   if(eregi('[.]jpg|[.]bmp|[.]gif|[.]png|[.]jpeg', $plik)) {
	    echo '
		
		 <div class="col-md-3">
            <a><a href="submitnews.php?big_image='.dir.$plik.'"><img src="'.dir.$plik.'" alt="'.dir.$plik.'" class="img-responsive"/></a></a>
          </div>';
		
   }
}
}
}
 ?>
 
<?php if(isset($error)){
	
	foreach($error as $errors){
		
		echo '<li>'.$errors.'</li>';
			
	}
	
	
}?>
 
 
 <?php 

if(isset($_REQUEST['big_image']) and $_REQUEST['big_image'] !=''){

///tytul obrazka i inne gowniane pierdoly
$image_title = strtolower($_REQUEST['big_image']);
$image_title = str_replace('_','',$image_title);
$image_title = str_replace('.jpg','',$image_title);


$fontname = 'font/Capriola-Regular.ttf';
// controls the spacing between text
$i=30;
//JPG image quality 0-100
$quality = 90;
$user = strtolower($_REQUEST['big_image']);
function create_image($user){

		global $fontname;	
		global $quality;
		global $file;
		$file = "covers/".md5($user[0]['name'].$user[1]['name'].$user[2]['name']).".jpg";	
	
	// if the file already exists dont create it again just serve up the original	
	//if (!file_exists($file)) {	
			

			// define the base image that we lay our text on
			$szablon =strtolower($_REQUEST['big_image']);
			$im = imagecreatefromjpeg($szablon);
			
			// setup the text colours
			$color['grey'] = imagecolorallocate($im, 255,255,255);
			$color['green'] = imagecolorallocate($im, 0, 0, 0);
			
			// this defines the starting height for the text block
			$y = imagesy($im) - $height - 625;
			$y2 = imagesy($im) - $height - 135;
			 
		// loop through the array and write the text	
		foreach ($user as $value){
			// center the text in our image - returns the x value
			$x = center_text($value['name'], $value['font-size']);	
			$x2 = center_text($value['name2'], $value['font-size']);
			$x3 = center_text($value['name3'], $value['font-size']);
			$x4 = center_text($value['name4'], $value['font-size']);
			imagettftext($im, $value['font-size'], 0, $x, $y+$i, $color[$value['color']], $fontname,$value['name']);
			imagettftext($im, $value['font-size'], 0, $x2, $y+$i, $color[$value['color']], $fontname,$value['name2']);
			imagettftext($im, $value['font-size'], 0, $x3, $y2+$i, $color[$value['color']], $fontname,$value['name3']);
			imagettftext($im, $value['font-size'], 0, $x4, $y2+$i, $color[$value['color']], $fontname,$value['name4']);
			// add 32px to the line height for the next text block
			$i = $i+40;	
			
		}
		
			// create the image
			imagejpeg($im, $file, $quality);
			
	//}
						
		return $file;	
}

function center_text($string, $font_size){



			global $fontname;

			$image_width = 900;
			$dimensions = imagettfbbox($font_size, 0, $fontname, $string);
			
			
			return ceil(($image_width - $dimensions[4]) / 2);				
}



	$user = array(
	
		array(
			'name'=> 'To jest pierwsza linijka twojego tekstu', 
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name2'=> 'To jest twoja druga linijak twojego tekst',
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name3'=> 'To jest trzecia linijka tekstu',
			'font-size'=>'28',
			'color'=>'grey'
			),
			
		array(
			'name4'=> '@lololo',
			'font-size'=>'28',
			'color'=>'grey'
			)
			
	);
	
	
	
	
	if(isset($_POST['submit'])){
	
	//$error = array();
	
		//if(strlen($_POST['name'])==0){
		//	$error[] = 'Please enter a name';
		//}
		
	//	if(strlen($_POST['job'])==0){
		//	$error[] = 'Please enter a job title';
	//	}		

	//	if(strlen($_POST['email'])==0){
		//	$error[] = 'Please enter an email address';
	//	}
		
	if(count($error)==0){
		
	$user = array(
	
		array(
			'name'=> $_POST['name'], 
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name2'=> $_POST['job'],
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name3'=> $_POST['email'],
			'font-size'=>'28',
			'color'=>'grey'
			),
			
			array(
			'name4'=> $_POST['www'],
			'font-size'=>'28',
			'color'=>'grey'
			)
			
	);	




}





}









	
		
	}
	
	
	
$filename = create_image($user);

$filename
?>

<div class="col-md-9">
            <img src="<?=$filename;?>" alt="'.dir.$plik.'" class="img-responsive"/>
          </div>


<?php 
if(isset($error)){
	
	
	foreach($error as $errors){
		
		echo '<li>'.$errors.'</li>';
			
	}
	
	
}
?>
</ul>

<p>Wpisz swój tekst w wybranym polu.</p>

<div class="dynamic-form">
<form action="" method="post">
<label>Text 1:</label>
<input type="text" value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>" name="name" maxlength="40" placeholder="Pierwsza linia"><br/>
<label>Text 2:</label>
<input type="text" value="<?php if(isset($_POST['job'])){echo $_POST['job'];}?>" name="job" maxlength="40" placeholder="Druga linia"><br/>
<label>Text 3:</label>
<input type="text" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" name="email" maxlength="40" placeholder="Trzecia linia"><br/>
<label>Text 4:</label>
<input type="text" value="<?php if(isset($_POST['www'])){echo $_POST['www'];}?>" name="www" maxlength="40" placeholder="Czwarta linia"><br/>

<input name="submit" type="submit" class="btn btn-primary btn-xs" value="Generuj" />
</div>





<a href="submitnews.php?big_image=send">Wyslij</a>




</body>
<?php

if(isset($_REQUEST['big_image']) and $_REQUEST['big_image'] === 'send'){

//global $filename;
			$insertQry = array(
				'submitnews_id'             => "",
				'submitnews_name'           => "Malpa",
				'submitnews_email'          => "test",
				'submitnews_user'           => USERID,
				'submitnews_title'          => "",
				'submitnews_category'       => "test",
				'submitnews_item'           => "test",
				'submitnews_datestamp'      => time(),
				'submitnews_ip'             => "test",
				'submitnews_auth'           => '0',
				'submitnews_file'           => $filename,
				'submitnews_keywords'       => "test",
                'submitnews_description'    => "test",
                'submitnews_summary'        => "test",
                'submitnews_media'          => "test"
			);

			if(!$sql->insert("submitnews", $insertQry))
			{
				$mes->addError(LAN_134);
				return false;
			}


			$sql->insert("submitnews", "0, '$submitnews_user', '$submitnews_email', '$submitnews_title', '".intval($_POST['cat_id'])."', '$submitnews_item', '".time()."', '$ip', '0', '".implode(',',$submitnews_filearray)."' ");

			$edata_sn = array("user" => $submitnews_user, "email" => $submitnews_email, "itemtitle" => $submitnews_title, "catid" => intval($_POST['cat_id']), "item" => $submitnews_item, "image" => $submitnews_file, "ip" => $ip);

			e107::getEvent()->trigger("subnews", $edata_sn); // bc
			e107::getEvent()->trigger("user_news_submit", $edata_sn);


		
}	
?>

<?php 
		
if(!vartrue($pref['subnews_htmlarea'])) // check after bbarea is called.
{
	e107::wysiwyg(false);
}

require_once(FOOTERF);



?>

Tak jak pisałem skrypt działa w 99%
Działa funkcja wyświetlająca obrazki z konkretnego katalogu.
Następnie tworzy wybrany wcześniej obrazek i nakłada na niego przykładowy tekst
Następne tworzy nam obrazek z naszym tekstem.
(I tutaj taka mała uwaga. Gdy podepnę funkcję odpowiedzialną za zapis obrazka w bazie danych pod funkcje nakładająca nasz tekst na obrazek,do bazy danych trafia właściwy obrazek z naszym napisem. Jednak nie satysfakcjonuje mnie takie rozwiązanie,bo każde klikniecie generuj będzie powodowało spam do bazy danych.)
I w końcu gdy wywołam funkcje odpowiedzialna za zapis obrazka,do bazy danych trafia obrazek z podglądowym tekstem.

Naprawdę spędziłem nad tym kodem wiele wiele godzin. Jestem świadom jego patologi,ale przyznaję bez bicia,że nie bardzo znam struktury silnika w którym chcę dodać mój skrypt dlatego kod wygląda jak wygląda. Planuje go rozwijać,ulepszać i dostosować do pełnej współpracy z silnikiem,ale to już przyszłość. Na razie potrzebuje,żeby to zaczęło działać :/

0

Jeżeli dobrze zrozumiałem to dodaj kolejny przycisk do formularza, np.:

<input name="save_image" type="submit" class="btn btn-primary btn-xs" value="Zapisz" />

i zapisz gdy

isset($_POST['save_image'])

Oczywiście wtedy powinno też generować obrazek więc dodaj do wcześniejszych warunków

if(isset($_POST['submit']) || isset($_POST['save_image']))
0

Dzięki za odpowiedź.

A więc:
dodałem

przycisk

<input name="save_image" type="submit" class="btn btn-primary btn-xs" value="Zapisz" />

i zastąpiłem

if(isset($_REQUEST['big_image']) and $_REQUEST['big_image'] === 'send'){

if(isset($_POST['submit']) || isset($_POST['save_image'])) {

Teraz gdy wywołam generuj do bazy danych zapisuje mi się obrazek z moim napisem,ale tak jak pisałem nie chcę takiego rozwiązania bo będzie to dla mnie zwykły spam. Kod nie zawiera JS ani innych sztuczek więc nie zobaczymy naszego obrazka jak wygląda przed wygenerowaniem go.

Gdy z kolei wywołam funkcję save_image do bazy trafia obrazek z przykładowym tekstem.
Może ja robię coś nie tak.

EDIT
Już wiem,że ja robiłem źle. Twój sposób zadziałał. Jesteś naprawdę wielki i bardzo mi pomogłeś. Prawdopodobnie za 40-80 godzin i przeczytaniu pierdyliarda wątków jakoś bym do tego doszedł.
Bardzo dziękuję!
Masz u mnie piwo :)

Teraz muszę tylko opracować pola dla pozostałych zapytań do bazy danych. Mam nadzieję że sobie z tym poradzę już sam.

EDIT 2
Takie jeszcze pytanie. Być może uda Ci się jeszcze trochę przyspieszyć mój proces który i tak już przyspieszyłeś.
Jakis pomysł jak to zakodować,żeby sam przycisk i ewentualne dodatkowe pola pojawiły sie dopiero gdy zostanie wywołana opcja generuj?
Bo mogę zrobić to tak że wszystkie pola będą widoczne Od razu i będą reagowały na kliknięcia. Ale albo generuj albo zapisz.
Ale chciał bym to tak zrobić żeby przycisk zapisz pokazał się nam dopiero gdy wygenerujemy obrazek.

EDIT 3
Problem z edit 2 rozwiązany. W zasadzie skrypt działa w 100% po mimo swojego patologicznego kodu.
Poniżej załączam kod. Oczywiście nie jest jeszcze w 100% zakodowany bo jeszcze wymagane jest nadanie kilku zmiennych. Ale jeśli ktoś będzie chciał wykorzystać kod to raczej sobie poradzi.

Kto jest mądrzejszy bez trudu domyśli się czym jest ten skrypt. Celowo nazwałem temat tak jak nazwałem ;) Bo o ile chętnie się podzielę kodem to jednak nie chcę podawać go na tacy w google ;)

Oczywiście wszelkie uwagi do co kodu będą dla mnie bardzo przydatne w jego udoskonalaniu i zabezpieczeniu. Bo o ile nie jestem orłem w programowaniu to domyślam się,że skrypt jest dziurawy i podatny na różnej maści ataki. Dlatego każda wasza uwaga jest dla mnie bardzo cenna.



<?php 

require_once("class2.php");
e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE);

require_once(HEADERF);



?>


<?php

if (!isset($pref['subnews_class']))
{
	$pref['subnews_class'] = e_UC_MEMBER;
}


if (!check_class($pref['subnews_class']))
{
	e107::getRender()->tablerender(NWSLAN_12, NWSLAN_11);
	require_once(FOOTERF);
	exit;
}
/////////////////////////////
?>

<ul class="nav nav-tabs">
  <li><a href="submitnews.php?category=janusz">Janusz</a></li>
  <li><a href="submitnews.php?category=krowa">krowa</a></li>
  <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>


 
 
 
<?php 

if(isset($_REQUEST['category']) and $_REQUEST['category']!=''){

	
if(isset($_REQUEST['category']) and $_REQUEST['category']=='janusz') {

	
define('dir', 'Generator/janusz/');				
if ( !$katalog = opendir(dir) ) {
  die('<center>Podany katalog nie istnieje!</center>');
}

while ( $plik=readdir($katalog) ) {
   if(eregi('[.]jpg|[.]bmp|[.]gif|[.]png|[.]jpeg', $plik)) {
	    echo '
		
		 <div class="col-md-3">
            <a><a href="submitnews.php?big_image='.dir.$plik.'"><img src="'.dir.$plik.'" alt="'.dir.$plik.'" class="img-responsive"/></a></a>
          </div>';
		
   }
}
}

if(isset($_REQUEST['category']) and $_REQUEST['category']=='krowa') {
	
	
define('dir', 'Generator/');				
if ( !$katalog = opendir(dir) ) {
  die('<center>Podany katalog nie istnieje!</center>');
}

while ( $plik=readdir($katalog) ) {
   if(eregi('[.]jpg|[.]bmp|[.]gif|[.]png|[.]jpeg', $plik)) {
	    echo '
		
		 <div class="col-md-3">
            <a><a href="submitnews.php?big_image='.dir.$plik.'"><img src="'.dir.$plik.'" alt="'.dir.$plik.'" class="img-responsive"/></a></a>
          </div>';
		
   }
}
}
}
 ?>
 
<?php if(isset($error)){
	
	foreach($error as $errors){
		
		echo '<li>'.$errors.'</li>';
			
	}
	
	
}?>
 
 
 <?php 

if(isset($_REQUEST['big_image']) and $_REQUEST['big_image'] !=''){


$image_title = strtolower($_REQUEST['big_image']);
$image_title = str_replace('_','',$image_title);
$image_title = str_replace('.jpg','',$image_title);


$fontname = 'font/Capriola-Regular.ttf';
// controls the spacing between text
$i=30;
//JPG image quality 0-100
$quality = 90;
$user = strtolower($_REQUEST['big_image']);
function create_image($user){

		global $fontname;	
		global $quality;
		global $file;
		$file = "covers/".md5($user[0]['name'].$user[1]['name'].$user[2]['name']).".jpg";	
	
	// if the file already exists dont create it again just serve up the original	
	//if (!file_exists($file)) {	
			

			// define the base image that we lay our text on
			$szablon =strtolower($_REQUEST['big_image']);
			$im = imagecreatefromjpeg($szablon);
			
			// setup the text colours
			$color['grey'] = imagecolorallocate($im, 255,255,255);
			$color['green'] = imagecolorallocate($im, 0, 0, 0);
			
			// this defines the starting height for the text block
			$y = imagesy($im) - $height - 625;
			$y2 = imagesy($im) - $height - 135;
			 
		// loop through the array and write the text	
		foreach ($user as $value){
			// center the text in our image - returns the x value
			$x = center_text($value['name'], $value['font-size']);	
			$x2 = center_text($value['name2'], $value['font-size']);
			$x3 = center_text($value['name3'], $value['font-size']);
			$x4 = center_text($value['name4'], $value['font-size']);
			imagettftext($im, $value['font-size'], 0, $x, $y+$i, $color[$value['color']], $fontname,$value['name']);
			imagettftext($im, $value['font-size'], 0, $x2, $y+$i, $color[$value['color']], $fontname,$value['name2']);
			imagettftext($im, $value['font-size'], 0, $x3, $y2+$i, $color[$value['color']], $fontname,$value['name3']);
			imagettftext($im, $value['font-size'], 0, $x4, $y2+$i, $color[$value['color']], $fontname,$value['name4']);
			// add 32px to the line height for the next text block
			$i = $i+40;	
			
		}
		
			// create the image
			imagejpeg($im, $file, $quality);
			
	//}
						
		return $file;	
}

function center_text($string, $font_size){



			global $fontname;

			$image_width = 900;
			$dimensions = imagettfbbox($font_size, 0, $fontname, $string);
			
			
			return ceil(($image_width - $dimensions[4]) / 2);				
}



	$user = array(
	
		array(
			'name'=> 'To jest pierwsza linijka twojego tekstu', 
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name2'=> 'To jest twoja druga linijak twojego tekst',
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name3'=> 'To jest trzecia linijka tekstu',
			'font-size'=>'28',
			'color'=>'grey'
			),
			
		array(
			'name4'=> '@lololo',
			'font-size'=>'28',
			'color'=>'grey'
			)
			
	);
	
	
	
	
	if(isset($_POST['submit']) || isset($_POST['save_image'])) {
	
	//$error = array();
	
		//if(strlen($_POST['name'])==0){
		//	$error[] = 'Please enter a name';
		//}
		
	//	if(strlen($_POST['job'])==0){
		//	$error[] = 'Please enter a job title';
	//	}		

	//	if(strlen($_POST['email'])==0){
		//	$error[] = 'Please enter an email address';
	//	}
		
	if(count($error)==0){
		
	$user = array(
	
		array(
			'name'=> $_POST['name'], 
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name2'=> $_POST['job'],
			'font-size'=>'28',
			'color'=>'grey'),
			
		array(
			'name3'=> $_POST['email'],
			'font-size'=>'28',
			'color'=>'grey'
			),
			
			array(
			'name4'=> $_POST['www'],
			'font-size'=>'28',
			'color'=>'grey'
			)
			
	);	




}





}









	
		
	}
	
	
	
$filename = create_image($user);

$filename
?>

<div class="col-md-9">
            <img src="<?=$filename;?>" alt="'.dir.$plik.'" class="img-responsive"/>
          </div>


<?php 
if(isset($error)){
	
	
	foreach($error as $errors){
		
		echo '<li>'.$errors.'</li>';
			
	}
	
	
}
?>
</ul>

<p>Wpisz swój tekst w wybranym polu.</p>

<div class="dynamic-form">
<form action="" method="post">
<label>Text 1:</label>
<input type="text" value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>" name="name" maxlength="40" placeholder="Pierwsza linia"><br/>
<label>Text 2:</label>
<input type="text" value="<?php if(isset($_POST['job'])){echo $_POST['job'];}?>" name="job" maxlength="40" placeholder="Druga linia"><br/>
<label>Text 3:</label>
<input type="text" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" name="email" maxlength="40" placeholder="Trzecia linia"><br/>
<label>Text 4:</label>
<input type="text" value="<?php if(isset($_POST['www'])){echo $_POST['www'];}?>" name="www" maxlength="40" placeholder="Czwarta linia"><br/>

<input name="submit" type="submit" class="btn btn-primary btn-xs" value="Generuj" />

</div>
<?php 

if(isset($_POST['submit'])) {
	
	echo '
<div class="dynamic-form">
<form action="submit" method="post">
<label>Text 1:</label>
<input type="text" value="" name="submitnews_title" maxlength="40" placeholder="Tytul obrazka"><br/>


<input name="save_image" type="submit" class="btn btn-primary btn-xs" value="Zapisz" />

</div>';

}
?>










</body>
<?php

 if (isset($_POST['save_image'])) {

//global $filename;
			$insertQry = array(
				'submitnews_id'             => "",
				'submitnews_name'           => "Malpa",
				'submitnews_email'          => "ememems",
				'submitnews_user'           => USERID,
				'submitnews_title'          => $_POST['submitnews_title'],
				'submitnews_category'       => "ememems",
				'submitnews_item'           => "ememems",
				'submitnews_datestamp'      => time(),
				'submitnews_ip'             => "ememems",
				'submitnews_auth'           => '0',
				'submitnews_file'           => $filename,
				'submitnews_keywords'       => "ememems",
                'submitnews_description'    => "ememems",
                'submitnews_summary'        => "ememems",
                'submitnews_media'          => "ememems"
			);

			if(!$sql->insert("submitnews", $insertQry))
			{
				$mes->addError(LAN_134);
				return false;
			}


			$sql->insert("submitnews", "0, '$submitnews_user', '$submitnews_email', '$submitnews_title', '".intval($_POST['cat_id'])."', '$submitnews_item', '".time()."', '$ip', '0', '".implode(',',$submitnews_filearray)."' ");

			$edata_sn = array("user" => $submitnews_user, "email" => $submitnews_email, "itemtitle" => $submitnews_title, "catid" => intval($_POST['cat_id']), "item" => $submitnews_item, "image" => $submitnews_file, "ip" => $ip);

			e107::getEvent()->trigger("subnews", $edata_sn); // bc
			e107::getEvent()->trigger("user_news_submit", $edata_sn);


		
}	
?>

<?php 
		
if(!vartrue($pref['subnews_htmlarea'])) // check after bbarea is called.
{
	e107::wysiwyg(false);
}

require_once(FOOTERF);



?>
0

Problem właściwego zapisu do bazy rozwiązałem.
Pojawił się jednak inny problem.

Skrypt działa na localhost (używam xampa)
Na serwerze www już jest problem ponieważ nie tworzy pliku we wskazanym folderze. Nadałem na folder uprawniane 777 ale nic to nie dało.
Ktoś ma pomysł jakiś?

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