Call to undefined method.. – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Call to undefined method.. – PHP – Fórum – Programujte.comCall to undefined method.. – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
14. 2. 2016   #1
-
0
-

dobry vecer. Jde o to ze mam jednoduchou administracni stranku,kde muzu editovat stranky pomoci simple wysiwyg editoru od tiny.mce - jako je tento na foru. v menu je polozka "pridat stranku",kde by se mel po refreshi nacist seznam stranek a wysiwyg editor, ale po kliknuti hlasi error - Call to undefined method Stranka::createPage() on line 33

Připojen obrázek.

Připojen obrázek.

vedel by nekdo pomoct? Nevim si rady. Dekuji

Nahlásit jako SPAM
IP: 78.45.49.–
14. 2. 2016   #2
-
+1
-
Zajímavé

facepalm...

Nahlásit jako SPAM
IP: 78.45.49.–
ondrej39+1
Věrný člen
14. 2. 2016   #3
-
0
-

#2 majkeeone
Jo, překlepy jsou potvory. Od toho jsou dobré IDE, díky nim se můžeš takovým překlepům vyvarovat.

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
Kit+15
Guru
14. 2. 2016   #4
-
0
-

#2 majkeeone
Také je dobré sem dávat zdrojáky. Z obrázků se to blbě luští.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
14. 2. 2016   #5
-
0
-

Parodn za tu blbost. No kdyz uz jsem to zalozil, tak se stejne musim na neco zeptat jeste :-D.
jak docilim toho aby mi ten wysivyg editor ukladal ten obsah co jsem tam zadal? Pri zmacknuti na ulozit to proste zmizi, neulozi se do databaze. mam tohle -
 

  function getObsah()
    {
        $sql = "SELECT content FROM page WHERE id = ".toSql($this->id);
        $rows = doSql($sql);
        return $rows[0]["content"];
    }
    
    function setObsah($obsah)
    {
        $sql = "UPDATE page SET content = ".toSql($obsah)." WHERE 
id = ".toSql($this->id);
        doSql($sql);
    }
Nahlásit jako SPAM
IP: 78.45.49.–
Kit+15
Guru
14. 2. 2016   #6
-
0
-

#5 majkeeone
Netuším, co dělají funkce toSQL() a doSQL(). Nic takového nepoužívám.

Edit: Nevidím nikde ukládání dat. To se dělá příkazem INSERT.

Edit2: S tou databází zacházíš hodně podivně. Nechceš si nejprve projít nějaký tutoriál? Tímto způsobem ji totiž brutálně přetěžuješ.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15. 2. 2016   #7
-
0
-

proc je tohle zachazeni s databazi spatny? Pouzivam jen jednoduchy dotazy mi prijde...

Tady je insert
 

public static function createPage()
    {
        //zde si vytvorim nahodne nove ID stranky
        $newPageId = time();
        
        //vytvortim v databazi novou stranku
        $sql = sprintf(
            "INSERT INTO page SET id = %s, name = %s, title = %s, page_order = %s",
        toSql($newPageId), toSql("[name]"), toSql("[title]"), toSql(time()) 
        );
        
        doSql($sql);
        
        return $newPageId;
    }

p.s. diky za rychle odpovedi (y)

//edit - tady sou ty fce 
 

function doSql($sql)
{
    global $conn;

    // funkce provede sql dotaz a zkontroluje zdali dopadl dobre
    $res = mysqli_query($conn, $sql);
    if (!$res)
    {
        echo mysqli_error($conn);
        var_dump($sql);
        exit;
    }
    
    // rovnou nacteme vsechny radky do pole a vratime
    $data = array();
    if (!is_bool($res))
    {
        while ($row = mysqli_fetch_assoc($res))
        {
            $data[] = $row;
        }
    }
    
    return $data;
}


function toSql($value)
{
    // funkce automaticky prevede hodnotu do sql, tedy pro texty obali hodnotu uvozovkami
    // a automaticky escapuje
    global $conn;
    
    if (is_string($value))
    {
        return '"'.mysqli_real_escape_string($conn, $value).'"';
    }
    elseif (is_null($value))
    {
        return 'NULL';
    }
    else
    {
        // pokud to bude napr cislo, tak to vratime tak jak to je
        return $value;
    }
}
Nahlásit jako SPAM
IP: 78.45.49.–
Kit+15
Guru
15. 2. 2016   #8
-
0
-

#7 majkeeone
Právě jednoduché dotazy obvykle způsobují příliš časté volání databáze. Nejhorší je volání DB dotazů v cyklu.

Koukám, že ty dvě funkce doSQL() a toSQL jsou zcela zbytečné. Ovladač MySQLi to umí i bez těchto funkcí. Podívej se, jak se pracuje s tzv. prepared statements.

V PDO je to ještě jednodušší - stačí 3 řádky na zápis a 3 řádky na čtení, bez vlastních funkcí.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2016   #9
-
0
-

majkeeone

$newPageId = time(); - tohle samo o sobe uz je chyba. Preci nemuzes do databaze pouzit casove razitko jako id, ne? Na cas na serveru se nemuzes polehnout. Id se v db preci vytvari automaticky u AUTOINCREMENT sloupce. Cas muzes pouzit jen jako pomucku, jiny loupec, cas vytvoreni clanku.

Mas zapnute error_reporting? Jake to pise chyby? Co nefunguje? Neprida se radek do databaze? Si muzes zkouknout pres phpmyadmina; nezapomen obnovit stranku po zmene! Nebo se radek prida, ale text clanku je prazdny? Jestli je prazdny, pak tam nepredavas spravne promenne. Nejspis by to chtelo udelat jednochou stranku jako demo, ktera nepotrebuje dalsi php kod a na ni to testovat, poskytnout nam k testovani. Takze je to par uryvku kodu, kde treba chyba neni, ale v tom dalsim kodu, co tu neni, chyba treba je.

Kit - jemu na to stacili 2 radky.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2016   #10
-
0
-

Vypsat promenne se daji pres
var_dump($x); exit; nebo
print_r($x); exit;
ecoh "x = ". $x; exit;
a doporucuji za vypisem kod ukoncit, pokud nepotrebujes toho vypsat vic. U echa je dobre napsat i kratky text, abys videl, ze i prazdnem obsahu se vypise aspon "x = ".

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
Kit+15
Guru
15. 2. 2016   #11
-
0
-

#9 peter

Kit - jemu na to stacili 2 radky.

A ty dvě zbytečné funkce, které tam jen zdržují a zamlžují kód, jsou zelenina?

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15. 2. 2016   #12
-
0
-

Muzu se zeptat proc ty fce doSql,toSql sou zbytecny? Me bylo receno ze takhle se ma komunikovat s databazi a pak ze pres selecty uz si tam jen saham pro co chci.

No konkretne v browseru mi to zadny error nevyhodi. Jen proste pridam novou stranku (prida se i v databazi), napisu do nejaky obsah(cokoliv), ale po kliknuti na tlacitko uloz se obsah do databaze proste neulozi... Sem fakt zacatecnik,jedu tak nejak podle tucha a co si zrovna prectu, tak to asi mam fakt kostrbate... Je to jen takova verze na zkousku,takze to $newPageId = time(), mi tam nejak nevadi... Muze to byt tim ze jsem tam spatne vlozil jQuery,da se tovubec vlozit spatne? Ja vzal proste skript te cdn a bum ho tam... 

Nahlásit jako SPAM
IP: 78.45.49.–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2016   #13
-
0
-

Kit - Vim o tom, prehlizim, neresim. Ma to slozite, ale funkcni.

majkeeone - udelej jednoduchou jedno-stranku a dej sem kod (vcetne prihlaseni do db, udaje tam zmen treba na abd / def). Idealne pripoj i strukturu tabulky. Proste, kdyz to budeme chtit testovat, aby jsme s tim meli co nejmene prace na dopisovani.
Odhadem hadam, ze bud v $obsah neni nic. A pak je to selhani na tve strane v php a nebo na tve strane v javascriptu. U tinyMCE je treba js nastaveni rici, na ktere policko se to propojuje. Treba jsi to nastaveni nemenil. Tiny si vytvori tedy vlastni policko a do obsah nic neda.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
15. 2. 2016   #14
-
0
-

///edit nejsem si vedomej toho, ze bych menil nejaky nastaveni u tinyMCE nebo js...bude to tim?

nejsem dnes ani tak sikovnej od otho abyhc ty stranky nahral na net nejakej freehosting, bo k tomu neumim pripojit tu databazi vubec...cely jsem to zarchivoval a uploadnul kdyby se na to nekdo chtel,nebo mel cas se podivat...  http://ulozto.cz/x97PBE6k/projektciri-rar 
pro fungovani s databazi staci jednoduse - 
 

CREATE TABLE `page` ( 
`id` varchar(255) COLLATE utf8_czech_ci NOT NULL, 
`name` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`title` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`content` text COLLATE utf8_czech_ci,
`page_order` tinyint(4) DEFAULT '0',
PRIMARY KEY (`id`)
)
Nahlásit jako SPAM
IP: 78.45.49.–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2016   #15
-
0
-

Tak. Mohl bych ti vasnive rozepsat, kolik prablemu jsem tam nasel. Zkusim to strucne.
1. Nemas tam error_reporting
2. Kdyz mam prazdnou databazi, tak to zobrazi server-error chybu.
3. Nemas tam sloupec id s unikatni hodnotou. Ten "id" si prejmenuj na  "date" a pridej novy sloupec "id" a nastav mu AUTOINCREMENT.
4. Do tabulky se vklada prikazem INSERT. Kdyz jsem prohledal vsechny soubory a hledal INSERT, tak je
v ciridata.php
"INSERT INTO page SET id = %s, name = %s, title = %s, page_order = %s",
- prvni vec, co si vsimne i oko nezkuseneho badatele je, ze si stezujes, ze ti neuklada content a pritom ten prikaz zadny sloupec content neobsahuje, ze?
- druha vec, co si vsimne i oko zkuseneho badatele, kde vsude se vyskytuje $_POST? ciri_admin.php
Kde vsude bude $_POST['obsah']?
            $aktualniStranka->setTitulek($_POST["titulek"]);
Takze data, ktera se maji zapsat, jsou, mozna v $aktualniStranka. Jenze hned potom provedes presmerovani header(), celou tu promennou zahodis :)

Mno, cele je to dive :) Takze se vrat k uplnym zacatkum.
1.
ALTER TABLE page DROP PRIMARY KEY;
ALTER TABLE `page` CHANGE `id` `date` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL;
ALTER TABLE `page` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
2. Jaky je prikaz pro vlozeni do db?
INSERT INTO page SET name = '%s', title = '%s', page_order = '%s', content = '%s', date = '%s'
Tohle, kdyz spustis v phpmyadminovi, tak ti to tam vlozi same %s. A jsou tam, az na order, ktery je cislo 0. To je zaklad, sql prikaz je ok. ty apostrofy si pro sprintf zrusis. (id se tam neuvadi, protoze je AUTOINCREMENT)
INSERT INTO page SET name = %s, title = %s, page_order = %s, content = %s, date = %s
3. Jaka data tam ukladas? Z $_POST? Jak je do toho sql prikazu davas? sprintf? ja bych ocekaval neco jako

<?php
$notice = array();

if (isset($_POST['sql']) && $_POST['sql']=='insert')
{
$keys = array('aaa','bbb');
$row  = array();
$bool = true;
foreach($keys as $key)
	{
	if ((!isset($_POST[$key])) || $_POST[$key]=='') {$bool = false; break;}
	$row[$key] = $_POST[$key];
	}
if ($bool)
	{
	$sql = sprintf(
	    "INSERT INTO page SET aaa = %s, bbb = %s, ccc = %s, ddd = %s"
	    , toSql($row['aaa'])
	    , toSql($row['bbb'])
	    , toSql(0)
	    , toSql(time())
	    );
        doSql($sql);
	$notice[] = "ulozeno";
	}
}

echo implode('<br>',$notice);
?>

<form method="post">
<input type=hidden name="sql" value="insert">
<input name=aaa>
<input name=bbb>
<input type=submit>
</form>
Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
peter
~ Anonymní uživatel
4016 příspěvků
15. 2. 2016   #16
-
0
-

Muzes zkusit rozchodit tohle
 

<?php
@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on"); 
error_reporting(E_ALL);

$CFG = array(
	'debug' => true,
	'host'  => 'localhost',
	'user'  => 'root',
	'psw'   => '',
	'db'    => 'test'
	);

function getRequest ($name, $default='')
	{
	return isset($_POST[$name]) ? $_POST[$name] : (isset($_GET[$name]) ? $_GET[$name] : $default);
	}

function sql($query)
	{
	global $CFG;
	global $conn;
	$result = mysql_query($query,$conn);
	if (!$result && $CFG['debug'])
		{echo die('Chyba mysql_query. ' . mysql_error());}
	return $result;
	}




$conn = mysql_connect($CFG['host'],$CFG['user'],$CFG['psw'])  or die ('Chyba mysql_connect. '   . mysql_error());
$db   = mysql_select_db($CFG['db']) or die ('Chyba mysql_select_db. ' . mysql_error());
sql("SET NAMES utf8");

$data  = array();
$where = array();
$do    = getRequest('do');
switch ($do)
	{
	case 1:	// insert uzivatele
		$data['name'] = getRequest('name');				//  - nacist data
		foreach ($data as $key=>$value)					//  - upravit data pro query
			{$data[$key] = mysql_real_escape_string($value);}
		$query  = "INSERT INTO `x_users` (`%s`) VALUES ('%s')";
		$query  = sprintf($query,implode("`,`",array_keys($data)),implode("','",$data));
		echo "<br/>".$query;
		$result = sql($query);
		break;
	case 2:	// insert do mesice
		$data['iduser'] = getRequest('iduser');				//  - nacist data
		$data['month']  = getRequest('month');				//  - nacist data
		foreach ($data as $key=>$value)					//  - upravit data pro query
			{$data[$key] = mysql_real_escape_string($value);}
		$query  = "INSERT INTO `x_months` (`%s`) VALUES ('%s')";
		$query  = sprintf($query,implode("`,`",array_keys($data)),implode("','",$data));
		echo "<br/>".$query;
		$result = sql($query);
		break;
	case 3:	// delete uzivatele z mesice
		$where['iduser'] = getRequest('iduser');			//  - nacist where
		$where['month']  = getRequest('month');				//  - nacist where
		foreach ($where as $key=>$value)				//  - upravit where pro query
			{$where[$key] = "`".$key."`='".mysql_real_escape_string($value)."'";}
		$query  = "DELETE FROM `x_months` WHERE %s";
		$query  = sprintf($query,implode(" AND ",$where));
		echo "<br/>".$query;
		$result = sql($query);
		break;
	case 4: // select uzivatelu
		$query  = "SELECT CONCAT(`name`,' (id=',`iduser`,')') AS `name` FROM `x_users`";
		echo "<br/>".$query;
		$result = sql($query);
		$list   = '';
		if ($result)
			{
			$list = array();
			while (($row = mysql_fetch_assoc($result))!==false)
				{
				$list[] = $row['name'];
				}
			}
		$list = "\n<p>Seznam uzivatelu</p>\n<p>".implode("<br/>",$list)."</p><hr/>";
		echo $list;
		break;
	case 5: // select uzivatelu z mesice
		$where['month'] = getRequest('month');				//  - nacist where
		$month  = $where['month'];
		foreach ($where as $key=>$value)				//  - upravit where pro query
			{$where[$key] = "`".$key."`='".mysql_real_escape_string($value)."'";}
		$query  = "SELECT CONCAT(`b`.`name`,' (id=',`b`.`iduser`,')') AS `name` FROM `x_months` `a` LEFT JOIN `x_users` `b` ON `b`.`iduser`=`a`.`iduser` WHERE %s";
		$query  = sprintf($query,implode(" AND ",$where));
		echo "<br/>".$query;
		$result = sql($query);
		$list   = '';
		if ($result)
			{
			$list = array();
			while (($row = mysql_fetch_assoc($result))!==false)
				{
				$list[] = $row['name'];
				}
			}
		$list = "\n<p>Seznam zapsanych v mesici \"".$month."\"</p>\n<p>".implode("<br/>",$list)."</p><hr/>";
		echo $list;
		break;
	case 6:	// update uzivatele
		$data['name']    = getRequest('name');				//  - nacist data
		foreach ($data as $key=>$value)					//  - upravit data pro query
			{$data[$key] = "`".$key."`='".mysql_real_escape_string($value)."'";}
		$where['iduser'] = getRequest('iduser');			//  - nacist where
		foreach ($where as $key=>$value)				//  - upravit where pro query
			{$where[$key] = "`".$key."`='".mysql_real_escape_string($value)."'";}
		$query  = "UPDATE `x_users` SET %s WHERE %s";
		$query  = sprintf($query,implode("','",$data),implode("','",$where));
		echo "<br/>".$query;
		$result = sql($query);
		break;
	case 7: // select mesicu uzivatele
		$where['iduser'] = getRequest('iduser');				//  - nacist where
		$iduser = $where['iduser'];
		foreach ($where as $key=>$value)					//  - upravit where pro query
			{$where[$key] = "`".$key."`='".mysql_real_escape_string($value)."'";}
		$query  = "SELECT `month` FROM `x_months` WHERE %s";
		$query  = sprintf($query,implode(" AND ",$where));
		echo "<br/>".$query;
		$result = sql($query);
		$list   = '';
		if ($result)
			{
			$list = array();
			while (($row = mysql_fetch_assoc($result))!==false)
				{
				$list[] = $row['month'];
				}
			}
		$list = "\n<p>Seznam mesicu zapsanych uzivatelem s id = \"".$iduser."\"</p>\n<p>".implode("<br/>",$list)."</p><hr/>";
		echo $list;
		break;
	case 8: // vypis celou tabulku
		$name   = getRequest('table');				//  - nacist where
		$query  = "SELECT * FROM `".$name."`";
		$result = sql($query);
		if ($result)
			{
			$tbody  = '';
			$thead  = '';
			while (($row = mysql_fetch_assoc($result))!==false)
				{
				$tr = '';
				foreach ($row as $key=>$value)
					{
					$tr .= sprintf("\n<td>%s</td>",$value);
					}
				$tbody .= sprintf("\n<tr>%s</tr>",$tr);
				if ($thead=='')
					{
					$tr = '';
					foreach ($row as $key=>$value)
						{
						$tr .= sprintf("\n<th>%s</th>",$key);
						}
					$thead .= sprintf("\n<tr>%s</tr>",$tr);
					}
				}
			if ($tbody!=='')
				{
				echo sprintf("\n<table border=\"1\">\n<thead>%s</thead>\n<tbody>%s</tbody></table>",$thead,$tbody);
				}
			else	{
				echo "<p>Nula zaznamu</p>";
				}

			}
		break;
	default: break;
	}
/*
--- mysql_priklad.sql ---
CREATE TABLE `x_users` (
  `iduser`  int(10) unsigned NOT NULL auto_increment,
  `name`    varchar(40) default NULL,
  PRIMARY KEY  (`iduser`),
  INDEX `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

CREATE TABLE `x_months` (
  `idmonth` int(10) unsigned NOT NULL auto_increment,
  `month`   int(10) unsigned default NULL,
  `iduser`  int(10) unsigned default NULL,
  PRIMARY KEY  (`idmonth`),
  INDEX `iduser` (`iduser`),
  INDEX `month` (`month`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
*/

?>
<p>Prikazy</p>
<ul>
<li><a href="?do=1&name=Lojza">Pridej noveho Lojzu do tabulky uzivatele</a> (INSERT)</li>
<li><a href="?do=6&iduser=4&name=Tomas">Zmen uzivateli s id = 4 jmeno na Tomas</a> (UPDATE)</li>
<li><a href="?do=2&iduser=1&month=5">Pridej uzivatele s id = 1 do tabulky mesice pod mesic = 5</a> (INSERT)</li>
<li><a href="?do=2&iduser=2&month=5">Pridej uzivatele s id = 2 do tabulky mesice pod mesic = 5</a> (INSERT)</li>
<li><a href="?do=2&iduser=3&month=5">Pridej uzivatele s id = 3 do tabulky mesice pod mesic = 5</a> (INSERT)</li>
<li><a href="?do=2&iduser=1&month=7">Pridej uzivatele s id = 1 do tabulky mesice pod mesic = 7</a> (INSERT)</li>
<li><a href="?do=2&iduser=2&month=7">Pridej uzivatele s id = 2 do tabulky mesice pod mesic = 7</a> (INSERT)</li>
<li><a href="?do=3&iduser=2&month=5">Smaz uzivatele s id = 2 z tabulky mesice pod mesice = 5</a> (DELETE)</li>
<li><a href="?do=5&month=5">Zobraz seznam lidi v mesici = 5</a> (SELECT)</li>
<li><a href="?do=5&month=7">Zobraz seznam lidi v mesici = 7</a> (SELECT)</li>
<li><a href="?do=7&iduser=2">Zobraz seznam zapsanych mesicu uzivatele s id = 2</a> (SELECT)</li>
<li><a href="?do=4&month=7">Zobraz seznam lidi</a> (SELECT)</li>
<li><a href="?do=8&table=x_users">Zobraz tabulku uzivatele</a> (SELECT)</li>
<li><a href="?do=8&table=x_months">Zobraz tabulku lide v mesici</a> (SELECT)</li>

</ul>
Nahlásit jako SPAM
IP: 2001:718:2601:26c:88a3:dc...–
Kit+15
Guru
15. 2. 2016   #17
-
0
-

#12 majkeeone
INSERT by v podání PDO vypadal takto: 

$sql = "INSERT INTO page SET name=?, title=?";
$insert = $pdo->prepare($sql);
$insert->execute(array($_POST['name'], $_POST['title']));

a SELECT zase takto: 

$sql = "SELECT name, title FROM page WHERE id=?";
$select = $pdo->prepare($sql);
$select->execute(array($id));
$data = $select->fetch(PDO::FETCH_ASSOC);

Žádné další funkce už nejsou potřebné. Schválně jsem tam vrazil $_POST, aby bylo vidět, že není potřebné ani escapování.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
16. 2. 2016   #18
-
0
-

Mno, ale stejne bys tam mel mit kontrolu udaju. Minimalne, aby delka nebyla treba nekolik MB :) To by bylo idealni na odstaveni takoeho programu :)

Nahlásit jako SPAM
IP: 2001:718:2601:26c:f868:5a...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 39 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý