neporadi mi niekto ako mozem do prispevku pridat odkaz? tak ako je to spravene tu...hlavne potrebujem vediet ked napriklad niekto odstrai [/URL] aby mi to nespravilo bordel potom dikes
Fórum › PHP
Odkaz
define('BASE_URL', "http://mojestranky.cz");
$text_prispevku = "Blah [url(vynechat)]seznam.cz[/url] blah [url(vynechat)]www.programujte.cz[/url].";
echo preg_replace(array("/((http|ftp|buhvi_co_jeste)://.*)/imU", "/(.*)/imU"),
array("<a href="".BASE_URL."/redir.php?url=1">1</a>", "<a href="".BASE_URL."/redir.php?url=http://1">http://1</a>"),
$text_prispevku);
//Soubor redir.php v korenoven adresari:
/*
Header("Location: ".$_GET["url"]);
*/
Edit: Heh ten smejd mi to zformatoval
no vyskusal som ten script a vyhodilo mi to chybu kvoli header(header already used...)moj script vyzera asi takto:?
<form method="post" name="form" enctype="multipart/form-data">
<table align="center">
<tr><td align="left" class="small_intab_orange">Message:</td></tr>
<tr><td><textarea name="message" cols="60" rows="4" class="koment" wrap="hard">
Soubor, ktery zpracova data:
//Korenovy url ke skriptum
define('BASE_URL', "http://mojestranky.cz");
//Mysql server
define('DB_SERVER', 'localhost');
//MySQl user
define('DB_USER', 'root');
//MySQl password
define('DB_PASSWORD', 'password');
//MySQl database name
define('DB_NAME', 'my_db');
$conn = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die("Nepodarilo se spojit s databazi");
//...
function escape($str) {
if(get_magic_quotes_gpc())
$str = stripslashes($str);
if(function_exists("mysql_real_escape_string"))
$str = mysql_real_escape_string($str, $GLOBALS["conn"]);
else
$str = addslashes($str);
return $str;
}
if(isset($_POST["odeslano"])) {
//oriznuti o zbytecne netisknutelne znaky
$_POST = array_map("trim", $_POST);
//proti SQL injesction
$_POST = array_map("escape", $_POST);
//Prevest html tagy na entity
$_POST = array_map("htmlspecialchars", $_POST);
if(!empty($_POST["message"])) {
echo "<h3>Napsal a odeslal jste:</h3>";
$_POST["message"] = preg_replace(array("/((http|ftp|buhvi_co_jeste)://.*)/imU", "/(.*)/imU"),
array("<a href="".BASE_URL."/redir.php?url=1">1</a>", "<a href="".BASE_URL."/redir.php?url=http://1">http://1</a>"),
$_POST["message"]);
echo $_POST["message"];
//neco jeste udelat
}
else {
echo "<font color="red">Zadejte text prispevku!</font>";
}
}
?>
<form method="post" name="form" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
<table align="center">
<tr><td align="left" class="small_intab_orange">Message:</td></tr>
<tr><td><textarea name="message" cols="60" rows="4" class="koment" wrap="hard"></td></tr>
<td><tr><input type="submit" value="Odoslať"/></td></tr>
Soubor "redir.php" v korenovem adresari aplikace, ktery !jen presmerovava Header("Location: ".$_GET["url"]);
som to dalej upravit a len by som chcel vediet ci to je dobre.. robi to sice co to ma ale aj tak sa chcem uistit:)
takze tu to je:
$_POST["message"] = preg_replace(array("/((http|ftp|buhvi_co_jeste)://.*)/imU", "/(.*)/imU", "/[email](.*)[/email]/imU", "/[i](.*)[/i]/imU", "/[B](.*)[/B]/imU"),
array("<a class="smallhyp_o" target="_blank" href="".BASE_URL."/redir.php?url=1">1</a>", "<a class="smallhyp_o" target="_blank" href="".BASE_URL."/redir.php?url=http://1">http://1</a>", "<a class="smallhyp_o" href="mailto:1">1</a>", "<em>1</em>", "<strong style="font-size:11px;">1</strong>"),
$_POST["message"]);
dikes
Tenhle kód mi funguje, takže je to asi správně ??:ok:?
define('BASE_URL', 'http://mojestranky.cz');
$_POST["message"] = "
Blah [url(vynechat)]seznam.cz[/url] kvak [url(vynechat)]ftp://seznam.cz[/url]
[email(vynechat)]jp@seznam.cz[/email] yeah [email(vynechat)]kt.jp@seznam.cz[/email]
blah [i(vynechat)]kurziva[/i] [i(vynechat)]dalsi kurziva[/i] [b(vynechat)]tucne jej
[b(vynechat)]dalsi tucne. Blah.";
$_POST["message"] = preg_replace(array("/((http|ftp|buhvi_co_jeste)://.*)/imU", "/(.*)/imU", "/[email](.*)[/email]/imU", "/[i](.*)[/i]/imU", "/[B](.*)[/B]/imU"),
array("<a class="smallhyp_o" target="_blank" href="".BASE_URL."/redir.php?url=1">1</a>", "<a class="smallhyp_o" target="_blank" href="".BASE_URL."/redir.php?url=http://1">http://1</a>", "<a class="smallhyp_o" href="mailto:1">1</a>", "<em>1</em>", "<strong style="font-size:11px;">1</strong>"),
$_POST["message"]);
echo $_POST["message"];
Edit: Zas jsem zapomněl, že mi to fórum zformátuje.
az teraz som si vsimol ze mi tam nejde str_replace ak uzivatel pri pisani prispevku stlaci enter tak sa vlozi <br>
mam to takto...
?
....
$_POST["prispevok"] = preg_replace(array("/((http|ftp|buhvi_co_jeste)://.*)/imU", "/(.*)/imU", "/[email](.*)[/email]/imU", "/[i](.*)[/i]/imU", "/[B](.*)[/B]/imU"),
array("<a class="hypforum_o" target="_blank" href="".BASE_URL."/redir.php?url=1">1</a>", "<a class="hypforum_o" target="_blank" href="".BASE_URL."/redir.php?url=http://1">http://1</a>", "<a class="hypforum_o" href="mailto:1">1</a>", "<em>1</em>", "<strong style="font-size:12px;">1</strong>"),
$_POST["prispevok"]);
$_POST["prispevok"] = Str_Replace($najst, $nahradit, $_POST["prispevok"]);//smajlici...funguju
$_POST["prispevok"] = Str_Replace("n","",$_POST["prispevok"]);// <br> nefunguje
//neco jeste udelat
MySQL_Query("INSERT INTO prispevok_forum VALUES(
?Nan nahrazovani enteru BeeRkem staci funkce nl2br() ;)
no tak uz som to vyriesil cez fciu nl2br() ale aj tak by som bol rad keby mi niekto vysvetlil preco v tomto scripte nefunguje funkcia Str_Replace("n","",$_POST["prispevok"]) lebo ja tam ziadnu chybu nevidim...a bolo by to pre mna vhodnejšie vzladom na zarovnanie textu... dikes
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
Odkaz — založil Rocky Marchiano
Odkaz — založil BoBy
Odkaz na enum — založil TomBar
Dvojity odkaz — založil kironet
Moderátoři diskuze