Autor Zpráva
Šejn
Profil
http://www.linuxsoft.cz/php/examples/40_select.php?celkem=1217&od=1

Nemohli byste mi prosím poradit, jak udělat toto? Nebo alespoň něco obdobného.
Podle toho návodu tam mi to nefunguje. Děkuji.
Šejn
Profil
Mě to udělá toto: http://ou.wz.cz/40_select.php
stribny
Profil
Problém je v tom, že nejste správně připojen k databázi: buď není vytvořená, používáte špatné heslo/jméno nebo něco takového..
Šejn
Profil
Poradíte mi prosím vlákno nebo jinou stránku, kde se řeší podobná funkce? Tohle je na mě moc složité.
Pošlete mi prosím odkaz. Díky.
Hooonza
Profil *
Co zkusit už hotovou aplikaci - návštěvní knihu? (např. http://interval.cz/clanky/navstevni-kniha-v-php-bez-pouziti-databaze-z aklad-aplikace/)
Anonymní
Profil *
> Hooonza
Díky
minimal
Profil *

<?php
ob_start("ob_gzhandler");
$data_file="board.txt";
$date_format="d.m.Y H:i:s";
echo'<form enctype="multipart/form-data" method="post" action="'.$_SERVER["PHP_SELF"].'" >'."\n";
echo' <textarea name="textarea" cols="64" rows="4"></textarea><br />'."\n";
echo' <input name="submit" type="submit" value="submit" />'."\n";
echo' <input name="reset" type="reset" value="reset" />'."\n";
echo'</form>'."\n";
if(isset($_POST['textarea'])&&!empty($_POST['textarea']))
{
$write='<pre><strong>'.date($date_format)."</strong>\n".stripslashes( htmlentities($_POST['textarea'],ENT_QUOTES,'utf-8'))."\n</pre>\n".@fil e_get_contents($data_file);
if(($fp=@fopen($data_file,'wb'))==false){echo'Creation failed. No space left on the device or insufficient privileges?'."\n";}
else
{
if(flock($fp,LOCK_EX))
{
fwrite($fp,$write);
flock($fp,LOCK_UN);
}
fclose($fp);
}
}
if(file_exists($data_file))
{
@chmod($data_file,0777);
echo(@file_get_contents($data_file));
}
else{echo'File "'.$data_file.'" doesn\'t exist'."\n";}
ob_end_flush();
?>
Šejn
Profil
minimal
Píše mi to chybu na řádku 23:

Parse error: parse error in c:\program files\easyphp1-8\www\navstevnik.php on line 23

?
minimal
Profil *
mne to facha, nevidim tam chybu...
minimal
Profil *
uz som ju nasiel - vznikla asi pri kopirovani cez toto forum
v riadku 12 je medzera vo : @fil e_get_contents($data_file)
ma byt: @file_get_contents($data_file)
Šejn
Profil
diky! zkusim to opravit!
Šejn
Profil
minimal
Funguje to! Diky! Moc si mi pomohl. Snad se mi podaří, ještě připojit tabulku jméno... :)
minimal
Profil *
a este by bolo dobre nahradit riadok 26 riadkom:

if(substr(sprintf('%o',fileperms($data_file)),-4)!='0777'){@chmod($dat a_file,0777);}

aby skript nenastavoval zbytocne "fileperms" aj ked netreba.
minimal
Profil *
a zase je tam medzera:
{@chmod($dat a_file,0777);}
ma byt:
{@chmod($data_file,0777);}
pavel prochazka.zde.cz
Profil *
A nebo se podivejte na moje www stranky, tam je k dispozici kniha navstev zdarma :)
Šejn
Profil
minimal
A jak zabráním zaslání stejné zprávy, když se stránka aktualizuje?
minimal
Profil *
No napadlo ma take riesenie: pridat do form hidden input

echo'<input type="hidden" name="last_texarea" value="'.$_POST['textarea'].'" />'."\n";

a potom doplnit prvu podmienku (riadok 11) na:

if(isset($_POST['textarea'])&&!empty($_POST['textarea'])&&$_POST['text area']!=$_POST['last_texarea'])
Joker
Profil
Šejn
Na to jsou různé metody, například jde využít session:
- do formuláře přidáte skrytý prvek třeba uid, který bude mít hodnotu třeba výsledek funkce microtime()
- Při odeslání formuláře uděláte něco jako if($_SESSION["lastpost_id"] == $_POST["uid"]) a pokud to platí, vypíšete chybovou zprávu. Pokud to neplatí, uložíte příspěvek a nastavíte $_SESSION["lastpost_id"] = $_POST["uid"]
Joker
Profil
minimal
To by taky šlo, ale zdá se mi výhodnější to udělat takhle:
echo'<input type="hidden" name="last_texarea" value="'.md5($_POST['textarea']).'" />'."\n";
a
if(isset($_POST['textarea']) && isset($_POST['last_textarea']) && (md5($_POST['text area'])!=$_POST['last_texarea']))

Pak místo celého textu posíláte sem a tam jenom 32 bajtů.
pavel prochazka.zde.cz
Profil *
pro: Honza Feřtek poslal jsi email ktery prej neexistuje..... Prosim zkontroluj svuj email a napis me jeste jednou....
minimal
Profil *
Joker
Dobry napad, akurat mne to z neviem akych dovodov nefungovalo a typol som si ze to bude kvoli netlacitelnym znakom, tak som urobil taku malu upravu s trim():

if(isset($_POST['textarea']) && isset($_POST['last_textarea']) && (md5($_POST['text area'])!=trim($_POST['last_texarea'])))
minimal
Profil *
:-) update

<?php
ob_start("ob_gzhandler");//Need For Speed
$data_file="./data/board.dat";//directory ./data/ chmod 0777
$date_format="d.m.Y H:i:s";
echo'<form enctype="multipart/form-data" method="post" action="'.$_SERVER["PHP_SELF"].'" >'."\n";
echo' <input type="hidden" name="last_texarea" value="'.md5($_POST['textarea']).'" />'."\n";//porovnavaci hash
echo' <textarea name="textarea" cols="64" rows="4"></textarea><br />'."\n";
echo' <input type="submit" name="submit" value="submit" />'."\n";
echo' <input type="reset" name="reset" value="reset" />'."\n";
echo'</form>'."\n";
if(isset($_POST['textarea'])&&!empty($_POST['textarea'])&&(md5($_POST[ 'textarea'])!=trim($_POST['last_texarea'])))
{
$write='<pre><strong>'.date($date_format)."</strong><br />".stripslashes(str_replace("\n","<br />",htmlentities($_POST['textarea'],ENT_QUOTES,'utf-8')))."</pre>\n".@ file_get_contents($data_file);
/*
Soubor otevreme v módu a. 'a' - Otevrít pouze pro zápis; nastaví ukazatel na konec souboru, Pokud soubor neexistuje, pokusí se ho vytvorit.
Mode muže obsahovat písmeno 'b'.
To je užitecné pouze na systémech které rozlišují mezi binárními a textovými soubory (nikoli napr. na Unixu).
Pokud není zapotrebí, je ignorován.
*/
if(@filesize($data_file)!="0"){@copy($data_file,$data_file.'.bak');@c hmod($data_file.'.bak',0777);}// vytvori zaloznu kopiu souboru
if(($fp=@fopen($data_file,'ab'))==false){echo'Creation failed. No space left on the device or insufficient privileges?'."\n";}
else
{
if(@flock($fp,LOCK_EX))//Získáme zámek pro zápis (neboli exclusive lock, LOCK_EX).
{
ftruncate($fp,0);//skrati subor na dlzku '0' bytu
fwrite($fp,$write);//a pak mužeme do souboru volne psát
flock($fp,LOCK_UN);//uvolnení zámku.
}
fclose($fp);//uzavrení souboru
}
}
if(@file_exists($data_file))
{
if(substr(sprintf('%o',fileperms($data_file)),-4)!='0777'){@chmod($da ta_file,0777);}
echo(@file_get_contents($data_file));
}
else{echo'File "'.$data_file.'" doesn\'t exist. If you submit any message, make it.'."\n";}
ob_end_flush();
?>
nb
Profil *
hcvhfggfhfghfghpavel prochazka.zde.cz
pavel prochazka.zde.cz
pavel prochazka.zde.cz
Toto téma je uzamčeno. Odpověď nelze zaslat.