Autor Zpráva
soucekgns
Profil
Dobrý den, potřeboval bych vložit na stránku komentáře bez použití databáze a nevím jak na to...
Představoval bych si to asi takto:
Formulář: ve formuláři pro odeslání by bylo jen textové pole pro zprávu...
Zpracování: ale potřeboval bych, aby se to při zpracování uložilo do nějakého souboru i s proměnou $username
vypsání: něco jako <h1>$username</h1><br><div class="zprava">$zprava</div>

Díky moc za rady
__construct
Profil
soucekgns:
Ak nemôžeš použiť databázu (ani SQLite) odporúčam XML a zpracovávanie cez SimpleXML
kajaman
Profil
Proč bez databáze? Je to rozhodně nejjednodušší varianta.

A když do souboru, tak ano, jedna možnost je ukládat si každý komentář do jednoho soubouru,
další možnost je ukládat do jednoho souboru komentáře k jednomu tématu,

... a další možnost je využít nějakého hotového řešení, třeba na blueboard.cz
soucekgns
Profil
kajaman:
Prostě je potřebuji bez databáze, kvůli upravování atd...
Blueboard je fakt pěknej:-) ale já to mám spíš jako zeď a nemyslím si, že by to bylo až tak těžké abych musel použít bb...
__construct:
hm... ale já tam nenašel, jak vytvořit ty soubory... našel jsem jen jak je zobrazit...
xmark
Profil
soucekgns:
Prostě je potřebuji bez databáze, kvůli upravování atd...

Toto databáze umožňují.
Přes soubory to s dopomocí místních určitě nějak vyřešíš, ale bude to ztracený čas (a nemálo času), protože dřív nebo později databázi potřebovat budeš. A tahle slepá ulička, ze které vyplynou jen komplikace, bude čistá ztráta.
soucekgns
Profil
xmark:
děkuji za rady, ale ten web potřebuji udělat bez databáze...
__construct
Profil
soucekgns:
Pokiaľ hosting podporuje SQLite, alebo v lepšom prípade SQLite3 tak použi to.
Edit:
K tomu SimpleXML - metóda na zápis do súboru je $xml->asXML('menoSuboru.xml');
David1256
Profil
Můžeš například využít zapisování dat do souboru přes PHP. Kód by v tvém případě vypadal asi nějak takto.
<?php
file_put_contents("komentare.inc", date('<b>d.m. Y </b>').date('<b> H:i:s</b>')."<br><f>".$text."</f><br><hr>"."\n".file_get_contents("komentare.inc")); 
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.tvojestranka.cz"); //přesměrování na stránku, kde máš umístěné ty komentáře
header("Connection: close");
?>

$text si bude brát data z formuláře (name="text")
soucekgns
Profil
David1256:
Tak to mě píše Fatal error: Call to undefined function: file_put_contents() in /3w/czweb.org/t/tomas-soucek/k4a/kom.php on line 2
Darker
Profil
A simple xml si zkoušel?
Je to jednoduché, a přehledné i pro člověka.
soucekgns
Profil
To snad neni možné... kde mám chybu?
test.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

test.php:
<?php
$xml = simplexml_load_file("test.xml");

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br />";
}
?>

pořád to píše:
Fatal error: Call to undefined function: simplexml_load_file() in /3w/czweb.org/t/tomas-soucek/k4a/test.php on line 2
Lamicz
Profil
Není náhodou na serveru ještě PHP 4? Zkus phpinfo();
soucekgns
Profil
... hm má php 4.3.4
nevíte někdo, jak to udělat i na php 4, nebo neznáte nějaký free hosting s php 5?
Díky
__construct
Profil
soucekgns:
neznáte nějaký free hosting s php 5
Pozri ako na to.
↓ Netvrdím že si blbý. Skôr lenivý hľadať.
soucekgns
Profil
__construct:
Ha ha ha:-)
To umim taky :-)
Zas tak blbej nejsem...
soucekgns
Profil
Jak mám zařídit, aby se mi to odeslalo jen když jsou pole nick a jmeno vyplněná?
Díky

<form method="post" action="" > 
  <input type="text" name="nick" /><br /> 
  <input type="text" name="jmeno" /><br />
  <input type="submit" name="odeslano" value="Odeslat" /> 
</form>



 
<?php
if (isset($_POST['odeslano']) && $jmeno!="" && $nick!="") {
echo "Zpráva byla odeslána";
$nick = $_POST['nick'];
$jmeno = $_POST['jmeno'];}
elseif (isset($_POST['odeslano']) && $jmeno=="" && $nick=="") {echo "
Vyplňte všechna políčka";}

?>




<?php
$xmlzadani = ("<marker nick=\"$nick\" jmeno=\"$jmeno\" />");

$novyradek = "$xmlzadani";


$lines = file("new.xml");

$noveudaje = "";

foreach($lines as $line_num => $line) {
    if(rtrim($line) != "<koment>") {
        $noveudaje .= $line;
    }
    else {
        $noveudaje .= $line;
        $noveudaje .= $novyradek . "\n";
        
    }
}

$fd = fopen("new.xml", "w");
fwrite($fd, $noveudaje);
fclose($fd);

?>
soucekgns
Profil
Mám $username = $_POST['username'];
jak si to zapamatovat při prohlížení webu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: