Ahoj jsem začátečník s PHP a mám dotaz. Jak byste řešili, kdyby jste chtěli mít na stránkách např. aktuality? Samotný text těch aktualit, vložíte do databáze? Pokud ano, dá se takto vložený text formátovat (podtržení, odstavce...)? Popřípadě jak byste to udělali? A ještě jedna otázka, dají se do databáze vkládat i obrázky? Nebo to se musí dělat už jinak?
Fórum › PHP
PHP - skládání stránek a vkládání článků
Klient (prohlížeč) požádá server o data na nějaké adrese. Server vidí, že na té adrese je skript, tak ho spustí a výstup skriptu pošle klientovi.
V databázi můžeš mít, co chceš a dělat si s tím, co chceš. Nikoho nezajímá, jak ten skript ta data vypotí.
V php to muzes resit i pomoci souboru i pomoci db. Ale pomoci souboru to budes mit tezsi, protoze budes muset programovat cely system ukladani, slozkovani a pod.
Z db se pracuje lepe. Sql prikazy vykonaji, co potrebujes. Az na prilohy, soubory (doc, xls, pdf), obrazky a pod. Jo, daji se ukladat i do db, ale opet na to musis naprogramovat mechanizmus. Tusim, ze je mozne to tam ulozit jako binarni data. Pripadne je mozne pouzit base64 format. Pokud mas nejaky wys-cosi editor, tak Tak treba firefox je z toho schopen dostat htm + obrazek jako jeden string. Obrazek je v base64, tag. Coz vetsina modernich prohlizecu umi rozkodovat. Nevyhoda toho reseni je, ze musis zapnout nejakou funkci odmazavani tagu, cisteni a pod. Navic, obecne to base64 nemusi byt obrazkova data, ale binarni soubor, virus.exe. Jiny uzivatel jen zobrazi stranku a uz mu to zkusi zavirovat pocitac.
Jestli chce neco jednoducheho, rekneme zatim bez obrazku, zkus hledat
google = php sql guestbook simple example
Pri trose stesti narazis na funkcni priklad.
Mohlo by to vypadat nejak takhle
<?php
function fileWrite($file_name, $data) //$file_pos_line=0,
{
$fn = 'classCsvEdit.fileWrite'.': ';
$opt = array(
'end_time' => 5000, // ms
'type' => 'r+', // !!! ZMENIT na w nebo w+
'dir_chmod' => 0777,
'file_chmod' => 0755
);
$old = umask(0);
// @chmod($dir,$opt['dir_chmod']); // !!! UPRAVIT kod, pokud budes ctit pouzit | nastav prava adresare na 0777
$fp = fopen($file_name, $opt['type']);
if ($fp === false)
{
umask($old);
fce_notice($fn.'Error, file not opened. '.$file_name,'error');
return false;
}
// cekej na locknuti 5000 ms, zkousej to kazdych 0 - 100 ms
$i = microtime();
$i_end = $i + $opt['end_time'];
do {
$can_write = flock($fp, LOCK_EX); // lock
if (!$can_write)
{
usleep(round(rand(0,100)*1000)); // micro-second
}
}
while (!$can_write && microtime()<$i_end);
if ($can_write === false)
{
umask($old);
fclose($fp);
fce_notice($fn.'Error, file not unlocked. '.$file_name,'error');
return false;
}
//fseek($fp, $file_pos_line); // !!! zakomentovat
fwrite($fp, $data);
flock($fp, LOCK_UN); // unlock
fclose($fp);
@chmod($file_name,$opt['file_chmod']); // !nastavit prava k zapisu souboru, 0755 (rwx r.x r.x) nebo 644 (rw. r.. r..) (owner-vlastnik, group-skupina, other-ostatni, r-read, w-write, x-execute; umask, mkdir)
umask($old);
return true;
}
$new = isset($_POST['clanek']) ? $_POST['clanek'] : '';
if ($new!=='')
{
$bool = fileWrite('clanky.txt', $new); //zapis
if ($bool)
{
$new = '';
}
else {echo 'zapis se nezdaril';}
}
$all = file_get_contents('clanky.txt');
echo $all;
echo '<form method=post><input name=clanek><input type=submit></form>';
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Přenos proměnných z PHP stránky do dvou jiných PHP stránek současně — založil remmidemmi
Vkládání php do php jde to — založil lubošx
Pomoc s PHP/DATABAZE - vkladani — založil Jakub Hencl
Složení stránek z PHP — založil Ká
Php prekladac stranek — založil tribalcz
Moderátoři diskuze