phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-01, 10:03

Zdravim, potreboval bych vlozit kod s formularem do stranky, ale vzdycky se mi to nejak rozhodi a rozepise mimo pole (resp pod okno kde se da zprava editovat a pak musim vse rucne z db vymazat) - je mi jasny ze chyba je v pouziti skriptu php a html pri vkladani do stranky - ale nevim jak jinak formular vlozit - ma nekdo napad?? dale prikladam skript:

<html>
<head>
<title>Napište nám!</title>
<meta HTTP-AQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
</head>
<body>
<?
function vypisForm($jmeno,$predmet,$text) {
echo "
<form method=post action=\"mail.php\">
Jméno:<br>
<input name=jmeno value=\"".$jmeno."\"><br>
Předmět:<br>
<input name=predmet value=\"".$predmet."\"><br>
Text zprávy<br>
<textarea style=\"width:200px; height:150px;\" name=text>".$text."</textarea><br><br>
<input type=submit value=Odeslat>
</form>
<br><br>
";
}

if (empty($_REQUEST)) vypisForm("","","");
/*
V tuto chvíli je uživatel na stránce poprvé. Vypíšeme formulář.
Protože uživatel ještě nic nenapsal, bude formulář prázdný.
*/
else
{
//uživatel odeslal data, zde následují kontroly
if ($_POST["jmeno"]=="" || ereg("^ +$",$_POST["jmeno"]))
{
echo "Zadejte prosím své jméno.";
vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
}
/*
První podmínka na kontrolu jména. Jsou zde použity regulérní výrazy, které jsme
zatím v našem seriálu neměli. Znamená to: pokud je jméno uplně prázdné nebo pokud
obsauje POUZE libovolný počet mezer, vypiš varovnou hlášku. Zároveň se zpátky
zobrazí formulář, který bude obsahovat veškerá data, která už uživatel napsal.
*/
elseif ($_POST["predmet"]=="" || ereg("^ +$",$_POST["predmet"]))
{
echo "Zadejte prosím předmět.";
vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
}
/*
Druhá podmínka na kontrolu předmětu. Funguje uplně stejně, jako ta předchozí.
*/
elseif ($_POST["text"]=="" || ereg("^ +$",$_POST["text"]) || strlen($_POST["text"]) > 500)
{
echo "Text e-mailu by měl být v rozmezí 1-500 znaků.";
vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
}
/*
Třetí podmínka na kontrolu textu. Funguje uplně stejně, jako ty předchozí, akorát
navíc také kontroluje délku vzkazu.
*/
else //nyní následuje samotné odesílání mailu
{
if ($_SERVER["SERVER_ADDR"]!="127.0.0.1") Mail ("[email]xx@xx.cz[/email]",$_POST["predmet"],$_POST["text"],"From:".$_POST["jmeno"]);
/*
Tato podmínka je tu kvůli localhostu. Pokud tento script budete testovat doma, PHP samotnou funkci
pro odesílání mailů přeskočí, jinak by vám to vyhodilo error a vy by jste neviděli krásnou větu...
*/
echo "E-mail byl úspěšně odeslán.";
/*
Na internetu to samozřejmě bude fungovat správně.
*/
}
}
?>
</body> </html>


Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-08-01, 10:34

Dle kódu předpokládám, že jde o zasílání mejlů z webového rozhraní autorům webu. Jednoduchá rada, proč objevovat již objevené, když je tu funkční plugin MailForm. Ke stažení zde. Nelekej se toho, že je tam psáno pro 265, funguje spolehlivě i pro 28x. ;)

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-01, 13:05

ok - diky - zkusim - hledal jsem, ale tohle sem nenasel - asi sem hledal spatne :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-01, 16:22

tak v zasade by to slo jenom nejak nevim jak tam mam dostat pozadi stranky...

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2008-08-01, 16:34

me by spis zajimalo tak do tohohle nacpat bezpecnostni otazku CAPTCHA, co mam nadefinovane v systemu. nejak si s tim hraju, ale asi jsem nouma a nejde mi to :(

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-01, 16:37

to bych resil az po tom co se mi podari tam dostat pozadi :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2008-08-01, 22:35

no, já teda soubor jen nahraju do ROOTu a po jeho zavolání se mi zobrazí správně, bez jakejchkoliv chyb v designu. Jenže do toho prostě nemůžu nacpat CAPTCHU jelikož nevim kam jí přesně vecpat. neporadil by někdo?

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-01, 22:39

pokud mas bily pozadi, tak to asi problem nebude, nebo pokud mas jednu barvu - ja mam ale na pozadi obrazek a to mi ve formulari nejede - ten ma pozadi bily...

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2008-08-02, 00:13

a nebude to treba definovany timhle:

radek 93 souboru mailform.php - <table width="250" border="0" class="text">
zkus umazat to class=text co ti to udela ;)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2008-08-02, 00:14

pls neporadi nekdo jak tam nacpat tu captchu co je primo v phpRS?

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 09:41

tak jsem to zkusil - nechal sem tam jen <table width="250" border="0"> a pozadi je porad bily :-(

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-08-02, 10:53

To denda: podívej se do css souboru, zda tam nemáš nadefinované vlastnosti pro form a nemáš tam uvedené bílé pozadí. Co jsem teď hodil okem, tak třeba v layoutu freestyle2006 je tam nadefinované pro formuláře bílé pozadí.

To mr3ska and all: implementací systémové captchy v 281 do dalších formů jsem se už kdysi zabýval. V souboru comment.php jsem si vybral funkce pro práci s captchou a přesunul jsem je do zvláštního souboru, který následně includuju přes soubor myweb.php. Jak to pak přidat do jednotlivých formů a jejich zpracování se můžeš inspirovat v souboru comment.php. Chtěl jsem to už kdysi uveřejnit, ale nějak jsem se k tomu nedostal. No, možná bych to mohl během dneška uveřejnit, když mi to vyjde. Ale nic neslibuju, je čas pomalu si chystat oběd;)
Každopádně podle uvedeného postupu se o to můžete pokusit sami;)

PS: Osobně si myslím, že je velká škoda, že funkce pro práci s captchou byly vloženy přímo do souboru comment.php a ne třeba do spefce.php, aby byly dostupné i pro přidání třeba do guestbooku apod.

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 10:59

super - to bylo ono - stacilo smazat z ccs:
form {
padding: 4px 0;
background: #fff url("modra-prechod.png") top left repeat-x;
}

a je to ok

diky prevelice

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 11:03

jeste by me zajimalo jak mam upravit mailform.php, aby se po odeslani formulare jako odesilaci adresa nastavila mnou zvolena neco@cokoliv.cz - ted se zobrazuje anonymous@cokoliv.cz

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-08-02, 11:36

Nejsem si jist, že chápu zcela přesně, co chceš, ale adresa, na jakou se posílá mejl, určuje tento řádek v mailformu:

$to = $GLOBALS['infoadr']; // platny e-mail v config.php

Lze to samozřejmě změnit.

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 11:47

jasne to chapu :-) - pokud ale ten mail dorazi mam tam jako odesilatele anonymous@neco.cz a ja bych potreboval abych mohl nekde nastavit misto toho anonymous neco jinyho

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-08-02, 13:49

Asi takhle. Správně odesílatele vyplňuje ten, co to píše, a bez správně vyplněné adresy by se to nemělo odeslat. Takže odesílatel je takový, jaký ho tam autor emailu vyplní. Plugin sám si to nijak neurčuje, co tam bude.

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 14:09

jasne - to se ale vyplnuje do formulare a pak je to v tele zpravy - me se jedna ale o odesilatele ktery je pak udan v radce odesilatel - jako posta od anonymous@neco.cz - pripada mi ze to anonymous tam generuje server a to neco.cz je nazev serveru (domeny) - rad bych to predefinoval na neco jineho

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: zdenekh (IP adresa zaznamenána)
Datum: 2008-08-02, 14:41

Už se dostáváme k jádru pudla. JSem si to musel vyzkoušet taky, abych to viděl. Dle všeho to doplňuje samotný server. Určitě to půjde nějak doplnit, koukám na to. Vyzkouším to a pak napíšu.

Edit:
Tak zjištěno a vyzkoušeno. Najdi si v mailform.php následující řádky a to tučné do nich doplň:

// headers windows-1250
  $headers .= "MIME-Version: 1.0\n".
              "Content-Type: text/plain; charset=\"windows-1250\"\n".
              "Content-Transfer-Encoding: base64\n"."From: ".$_POST['email']."\n";


Do hlavičky emailu tak doplníš email odesílatele. Další info php manuál.

T. O. Severka Děčín | New r.č. | Old Good Tom | Jinak už v tom nefrčím... :-)



Celkem upraveno 1×. Poslední úprava zdenekh v 02.08.2008 14:52.

Re: Vložení php/html formuláře do stránky
Zaslán uživatelem/kou: denda (IP adresa zaznamenána)
Datum: 2008-08-02, 15:42

ok - to uz by slo pouzit, ale ja bych potreboval dat tam ne email odesilatele, ale nejakej email co si sam nastavim - jedna se o to ze kdyz mi prijde email a bude tam odesilatel treba projekt@projekt.cz tak budu vedet ze to je prave z tohodle formulare a antispam v postovnim klientu mi to nesmaze

Jít na stránku:  12Další
Aktuální stránka:1 z 2


Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.