Autor | Zpráva | ||
---|---|---|---|
Peter45 Profil |
#1 · Zasláno: 3. 6. 2010, 11:34:41 · Upravil/a: Peter45
Mám funkčný formulár,funguje mi na všetkych weboch...Teraz mám však iný hosting a tam už nefunguje...Na danom hostingu je však domena smerovana nie do root ale do adresára wwwroot a tam sú vlastne všetky súbory...Môže to mat stým dačo spoločne?
Pripajam kod neviem ci je to najlepsie riesenie ale vsade mi funguje...len na danom hostingu nie. <?php include "mailer.php"; include "xss.php"; function chyba($aka) { echo "<h4>$aka</h4>"; echo "\n"; } echo "process = ".$process."<br>"; if ($process): if (!$meno) { chyba("Nevyplnili ste položku Meno"); $process=false; } if (!$telefon) { chyba("Nevyplnili ste položku Telefon"); $process=false; } if (!$mail) { chyba("Nevyplnili ste položku E-mail"); $process=false; } if (!$adresa) { chyba("Nevyplnili ste položku Adresa"); $process=false; } endif; echo "meno = ".$meno."<br>"; if ($process): $meno=$_POST["meno"]; $telefon=$_POST["telefon"]; $mail=$_POST["mail"]; $adresa=$_POST["adresa"]; $ip=$REMOTE_ADDR; //mailos $meno=strip_tags($meno); $telefon=strip_tags($telefon); $mail=strip_tags($mail); $adresa=strip_tags($adresa); $poznamka=strip_tags($poznamka); if (preg_match ("/url.*/", $obsah)) die(); if (preg_match ("/http.*/", $obsah)) die(); if (preg_match ("/www.*/", $obsah)) die(); // new mailer $text = " <h1>Formulár</h1> <b>Meno:</b> $meno<br> <b>Telefon: </b>$telefon<br> <b>E-mail: </b>$mail <br> <b>Adresa: </b>$adresa <br><br> <b>Poznámka: </b> $poznamka <br>"; $ok=mailer ("email.sk", $text, "Formulár"); if (!$ok) echo "<p>Správa nebola odoslaná. </p>"; else echo "<h1>Ďakujeme.</h1><p>e-mail bol odoslaný.</p>"; else: ?> <form id="formular" action="" method="post"> <table style="text-align: left; height: 90px; width: 460px; color: #c6b297;" cellpadding="0" cellspacing="0" border="0"> <tbody> <tr> <td style="text-align: left; width: 76px;" valign="top">Meno:*</td> <td style="height: 25px; width: 146px;"><input name="meno" value="<? echo $meno ?>" type="text" style="border: 1px solid #fff; background: #fff; color: #222; width:250px;"></td> </tr> <tr> <td style="text-align: left; width: 76px;" valign="top">Telefón:*</td> <td style="height: 25px; width: 146px;"><input name="telefon" value="<? echo $telefon ?>" type="text" style="border: 1px solid #fff; background: #fff; color: #222; width:250px;"></td> </tr> <tr> <td style="text-align: left; width: 76px;" valign="top">E-mail:*</td> <td style="height: 25px; width: 146px;"><input name="mail" value="<? echo $mail ?>" type="text" style="border: 1px solid #fff; background: #fff; color: #222; width:250px;"></td> </tr> <tr> <td style="text-align: left; width: 76px;" valign="top">Adresa:*</td> <td style="height: 25px; width: 146px;"><input name="adresa" value="<? echo $adresa ?>" type="text" style="border: 1px solid #fff; background: #fff; color: #222; width:250px;"></td> </tr> <tr> <td style="text-align: left; width: 76px;" valign="top">Poznámka:</td> <td style="width: 146px; height: 25;"> <textarea name="poznamka" id="poznamka" rows="250" cols="80" style="width:250px; height: 80px; border: 1px solid #fff; background: #fff; color: #222; margin-top: 4px;"><? echo $poznamka ?></textarea></td> </tr> <tr><td>* povinné údaje</td><td><div style="margin-left: 0px;"> <input value="Odoslať" id="submit" type="submit" style="font-family: Georgia; margin-top: 10px; font-size: 9pt; color: #c6b297; font-weight: normal; border: solid 0px #ffffff; background-color: transparent; width:80px;" class="button"> <input value="Zmazať" id="del" type="reset" style="font-family: Georgia; margin-top: 10px; font-size: 9pt; color: #c6b297; font-weight: normal; border: solid 0px #ffffff; background-color: transparent;" class="button"> <input name="process" type="hidden" id="process" value="1" > </div> </td></tr> </tbody> </table></form> <?php endif; ?> |
||
AM_ Profil |
#2 · Zasláno: 3. 6. 2010, 11:42:19
je to silně závislé na register_globals. Všechny proměnné předávané z formuláře by se měly získávat přes $_POST['nazev'] a ne $nazev. Zrovnatak $REMOTE_ADDR má být $_SERVER['REMOTE_ADDR'].
Doporučuji přepsat, register_globals sice lze vypnout, ale je to značně zastaralá direktiva s potenciálními bezpečnostními problémy. |
||
Peter45 Profil |
#3 · Zasláno: 3. 6. 2010, 12:07:06
Skušal som poprepisovať ale najeko to nešlape...Nejaka ukážka?
|
||
nightfish Profil |
#4 · Zasláno: 3. 6. 2010, 12:11:56
Doporučuji zaměřit se na dvojice řádků:
14 a 23 15 a 24 16 a 25 Konkrétně na pozici těchto řádků vůči sobě. |
||
Peter45 Profil |
#5 · Zasláno: 3. 6. 2010, 12:25:20
Pozícia je ok no funkčnosť to nerieši
|
||
nightfish Profil |
#6 · Zasláno: 3. 6. 2010, 12:28:00
Peter45:
„Pozícia je ok no funkčnosť to nerieši“ Kdyby byla OK, tak ti to nepíšu. Tak jinak: před řádek 20 si dej: echo "meno = ".$meno."<br>"; A na řádek 12 si dej: echo "process = ".$process."<br>"; |
||
Peter45 Profil |
#7 · Zasláno: 3. 6. 2010, 12:37:31
Dal som ale nerozumiem tomu,teraz mi formular zobrazuje:
process = meno = |
||
Laman Profil |
#8 · Zasláno: 3. 6. 2010, 13:09:22
tou pozicí řádků 14-16 a 23-25 nejspíš nightfish myslel, že bys měl nejdřív POSTem ty proměnné získat a až pak je kontrolovat. pracovat s nimi hned na základě jména ve formuláři nemusí fungovat, jak psal AM_
|
||
nightfish Profil |
#9 · Zasláno: 3. 6. 2010, 18:23:02
Peter45:
„Dal som ale nerozumiem tomu,teraz mi formular zobrazuje:“ Což znamená, že ty proměnné jsou v okamžiku, kdy je používáš, prázdné. Řešení ti napsal v [#2] AM. |
||
Časová prodleva: 14 let
|
0