Autor Zpráva
Peter45
Profil
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
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
Skušal som poprepisovať ale najeko to nešlape...Nejaka ukážka?
nightfish
Profil
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
Pozícia je ok no funkčnosť to nerieši
nightfish
Profil
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
Dal som ale nerozumiem tomu,teraz mi formular zobrazuje:

process =
meno =
Laman
Profil
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0