Chyba v str_replace – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba v str_replace – PHP – Fórum – Programujte.comChyba v str_replace – PHP – Fórum – Programujte.com

 

Anonym
~ Anonymní uživatel
454 příspěvků
4. 7. 2007   #1
-
0
-

Mohl by mi někdo prosím říct, v čem je chyba? Tenhleten kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Dokonalejší a bezpečnější diskuse</title>
</head>
<body>
<?
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$web = $_POST['web'];
$zprava = $_POST['zprava'];

$jmeno=HTMLSpecialChars($jmeno); //převede některé znaky na entity
$email=HTMLSpecialChars($email);
$web=HTMLSpecialChars($web);
$zprava=HTMLSpecialChars($zprava);

$jmeno=stripslashes($jmeno); //odstraní lomítka
$email=stripslashes($email);
$web=stripslashes($web);
$zprava=stripslashes($zprava);

$zprava = str_replace("\n"," <br> ", $zprava); //nové řádky nahradí <br>
$zprava = substr($zprava, 0, 10000);//zpráva bude mít maximálně 10000 znaků pomocí substr

$email_celek=" | <a href='mailto:$email'>$email</a>";
$web_celek=" | <a href='$web'>$web</a>";

if ($web=="http://"){$web_celek="";} //pokud se nevyplní nic se nevypíše
if ($email==""){$email_celek="";} // -||-

if ($zprava!="" and $jmeno!=""){ //provede se pokud není prázdná zpráva a jméno
$celek="<p>Zprávu poslal <strong>$jmeno</strong>$email_celek $web_celek</p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','a'); //otevře soubor pro doplňování
fwrite ($soubor, $celek); //zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
<h1>Dokonalejší a bezpečnější diskuse</h1>
<? include "data-2.inc"; ?>
<h2>Přidání zprávy</h2>
<form action="diskuse-2.php" method="post"></p>
<table>
<tr><th>*Jméno: </th><td><input type="text" name="jmeno" maxlength="25"></td></tr>
<tr><th>E-mail: </th><td><input type="text" name="email" maxlength="25"> [nepovinné]</td></tr>
<tr><th>Web: </th><td><input type="text" name="web" value="http://" maxlength="30"> [nepovinné]</td></tr>
<tr><th>*Zpráva: </th><td><textarea cols="60" rows="5" name="zprava"></textarea></td></tr>
<tr><th></th><td><input type="submit" value="odeslat"></td></tr>
</table>
</form>
</body>
</html>


Místo aby se vypsalo všechno jak má,vypíše se toto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Dokonalejší a bezpečnější diskuse</title>
</head>
<body>
<?
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$web = $_POST['web'];
$zprava = $_POST['zprava'];

$jmeno=HTMLSpecialChars($jmeno); //převede některé znaky na entity
$email=HTMLSpecialChars($email);
$web=HTMLSpecialChars($web);
$zprava=HTMLSpecialChars($zprava);

$jmeno=stripslashes($jmeno); //odstraní lomítka
$email=stripslashes($email);
$web=stripslashes($web);
$zprava=stripslashes($zprava);

$zprava = str_replace("\n", "<br>" , $zprava); //nové řádky nahradí <br>
$zprava = substr($zprava, 0, 10000);//zpráva bude mít maximálně 10000 znaků pomocí substr

$email_celek=" | <a href='mailto:$email'>$email</a>";
$web_celek=" | <a href='$web'>$web</a>";

if ($web=="http://"){$web_celek="";} //pokud se nevyplní nic se nevypíše
if ($email==""){$email_celek="";} // -||-

if ($zprava!="" and $jmeno!=""){ //provede se pokud není prázdná zpráva a jméno
$celek="<p>Zprávu poslal <strong>$jmeno</strong>$email_celek $web_celek</p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','a'); //otevře soubor pro doplňování
fwrite ($soubor, $celek); //zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
<h1>Dokonalejší a bezpečnější diskuse</h1>
<? include "data-2.inc"; ?>
<h2>Přidání zprávy</h2>
<form action="diskuse-2.php" method="post"></p>
<table>
<tr><th>*Jméno: </th><td><input type="text" name="jmeno" maxlength="25"></td></tr>
<tr><th>E-mail: </th><td><input type="text" name="email" maxlength="25"> [nepovinné]</td></tr>
<tr><th>Web: </th><td><input type="text" name="web" value="http://" maxlength="30"> [nepovinné]</td></tr>
<tr><th>*Zpráva: </th><td><textarea cols="60" rows="5" name="zprava"></textarea></td></tr>
<tr><th></th><td><input type="submit" value="odeslat"></td></tr>
</table>
</form>
</body>
</html>
a já absolutně nevím proč, díky předem.

Nahlásit jako SPAM
IP: ...–
dalaman0
Věrný člen
4. 7. 2007   #2
-
0
-

uloz subor s koncovkou .php

Nahlásit jako SPAM
IP: ...–
Lepšie je mať psa na saláme ako salámu pod psom !!!
anonym
~ Anonymní uživatel
454 příspěvků
4. 7. 2007   #3
-
0
-

To měl být vtip? Jestli jo tak blbý, jisté že to mám uložené s koncovkou php.

Nahlásit jako SPAM
IP: ...–
Ondrej Juríček
~ Moderátor
0
Stálý člen
4. 7. 2007   #4
-
0
-

príčin môže byť viacej.... ak berem k úvahe, že to spúšťaš na osvedčenom "funkčnom" webhostingu (nie na localhoste s mizerne nastaveným Apachom a PHP), tak by som tipoval, že na stroji je nastavené PHP s short_open_tag = Off. To znamená, že musíš použiť otvárací tág <?php, nie skrátený zápis <?.

Nahlásit jako SPAM
IP: ...–
dalaman0
Věrný člen
4. 7. 2007   #5
-
0
-

Sorry ze som sa ti snazil pomoct... toto je forum pre vsetkych tak si mohol byt uplny zaciatocnik... a ked ti stranka vypise aj samotny PHP kod tak ma nic ine nenapadlo

Nahlásit jako SPAM
IP: ...–
Lepšie je mať psa na saláme ako salámu pod psom !!!
Anonym
~ Anonymní uživatel
454 příspěvků
4. 7. 2007   #6
-
0
-

Diky onderj, bylo to ono a dekuji i dalamanovi :)

Nahlásit jako SPAM
IP: ...–
insider0
Věrný člen
6. 7. 2007   #7
-
0
-

nebylo by lepsi pouzivat misto toho str_replace funkci nl2br? :)

jo a jeste mozna trochu zprehledneni kodu:



$web = str_replace("http://","",$web); // odstraneni http:// - vysvetlim za kodem

if (!empty($web)) $web_celek = " | <a href='http://".$web."'>".$web."</a>"; // pokud neni $web prazdny, tak se ulozi co potrebujes
else $web_celek = ""; // jinak je promenna prazdna
if (!empty($email)) $email_celek = " | <a href='mailto:".$email."'>".$email."</a>";
else $email_celek = "";

tak ted k tomu odstraneni http://, pokud je to odkaz na jinou stranku a to http:// nekdo nevyplni, tak se odkaz otevre ve tvaru


http://www.tvojestranka.cz/www.dalsistranka.cz

coz hodi chybu, kdyz to http:// odstranis a vlozis ho tam natvrdo, tak se vyvarujes kontroly, jeslti to http:// vsichni zadali

Nahlásit jako SPAM
IP: ...–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
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, 7 hostů

Podobná vlákna

Str_replace? — založil x-flyer

Str_Replace() — založil Milan

Str_Replace — založil Michal115

Obmedzeny str_replace — založil dalaman

Str_replace problem — založil Anonym

 

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