0

そのため、フォームがユーザーが入力したテキストを送信しない理由については何も見つかりません。webformmailer.php を使用して空白のフィールドを送信するだけで、godaddy サイトでもヘルプが見つかりません。名前と電子メール フィールドに同じ ID を使用していることはわかっているので、それが本当に問題である場合は変更しますが、そうではないと思います。これが私のコードです。

        <form id="contact-form" action="/webformmailer.php" method="POST" >

            <textarea id="textarea" placeholder="Message Here"></textarea>
            <input type="text"  id="username" name="Firstname" placeholder="Full Name" />
            <input type="text"  id="username" name="email" placeholder="Email"  />
            <input type="submit" name ="submit" value="Submit" />

        </form>

ファイルはgoaddy.comから生成されますが、コードはheresです。また、正常に機能しているように見えるメッセージ用のテキストエリアのない単純なフォームもあります。

<?php

if ( !isset($_SERVER['SPI'])) {
    die();
}

if (!isset($_SERVER['DOCUMENT_ROOT'])) {
    echo("CRITICAL: we seem to be running outside of the norm.\n");
    header("Location: http://".$_SERVER["HTTP_HOST"]."/");
    die("CRITICAL: Document root unavailable.\n");
}

$request_method = $_SERVER["REQUEST_METHOD"];
if($request_method == "GET") {
    $query_vars = $_GET;
}
elseif ($request_method == "POST") {
    $query_vars = $_POST;
}

reset($query_vars);
function customsort($a,$b) {
    // $a is array for form vars, $b is comma seperated case sensitive field order
    // this is case sensitive -- good idea to hrc that.
    $data = array();
    if ( strstr($b,',') == FALSE )  {
            $b = $b.",";
    }
    $ordering = split(',',$b);
    foreach ($ordering as $orderitem) {
            if ( ($orderitem != null) && ($orderitem != "") ) {
                    if (isset($a[$orderitem])) {
                            $data[$orderitem] = $a[$orderitem];
                    }
            }
    }
    foreach ($a as $key=>$val) {
            $data[$key] = $a[$key];
    }
    return $data;
}

  function xmlentities($string) {
    return str_replace ( array('&', '"', "'", '<', '>'), array('&amp;', '&quot;',                    '&apos;', '&lt;', '&gt;'), $string);
    }

   $t = date("U");

  $formhomedir = preg_replace('/.*\/home\/content/','',$_SERVER['DOCUMENT_ROOT']);
  $formhomedir = explode('/',$formhomedir);
  if (count($formhomedir) <= 4) {
    $formhome="/home/content/".$formhomedir[1]."/".$formhomedir[2]."/data/";
  }
  else {
            $formhome="/home/content/".$formhomedir[1]."/".$formhomedir[2]."/".$formhomedir[3]."/".$form     homedir[4]."/data/";
}

 $file_order = ".default";
 $file_format = ".text";
 $file_interval = ".15m";
 $field_order = "";

if (isset($query_vars['form_order'])) {
    if ($query_vars['form_order'] != "alpha") {
            $field_order=$query_vars['form_order'];
            $file_order=".custom";
            $query_vars = customsort($query_vars,$field_order);
    }
    else {
            switch ($query_vars['form_order']) {
                    case "alpha":
                            uksort($query_vars,'strnatcasecmp');
                            $file_order=".alpha";
                    break;
                    default:
                            $file_order=".default";
                    break;
            }
    }
  }

if (isset($query_vars['form_format'])) {
    switch ($query_vars['form_format']) {
            case "csv":
                    $file_format = ".csv";
            break;
            case "html":
                    $file_format = ".html";
            break;
            case "xml":
                    $file_format = ".xml";
            break;
            case "text":
            case "default":
            default:
                    $file_format = ".text";
            break;
    }
}

if (isset($query_vars['form_delivery'])) {
    switch ($query_vars['form_delivery']) {
            case "hourly":
                    $file_interval = ".60m";
            break;
            case "hourly_digest":
                    $file_interval = ".60mc";
            break;
            case "daily":
                    $file_interval = ".24h";
            break;
            case "daily_digest":
                    $file_interval = ".24hc";
            break;
            case "digest":
                    $file_interval = ".15mc";
            break;
            case "default":
            default:
                    $file_interval = ".15m";
            break;
    }
}

$file = $formhome."form_".$t.$file_order.$file_format.$file_interval;
$fp = fopen($file,"w");

reset($query_vars);
switch ($file_format) {
    case ".csv":
            $csvkeys = "";
            $csvvals= "";
            $firsttime = "";
            while (list ($key, $val) = each ($query_vars)) {
                    if ( ($key == "form_order") ||
                            ($key == "form_format") ||
                            ($key == "form_delivery") ||
                            ($key == "redirect") ) {
                    }
                    else {
                            if ($csvkeys != "") {
                                    $firsttime=",";
                            }
                            $tmpkey=escapeshellcmd($key);
                            $csvkeys = $csvkeys.$firsttime."'".$tmpkey."'";
                            $tmpval=escapeshellcmd($val);
                            $csvvals = $csvvals.$firsttime."'".$tmpval."'";
                    }
            }
            fputs($fp,"$csvkeys\n");
            fputs($fp,"$csvvals\n");
    break;
    case ".html":
            fputs($fp,"<table border=\"1\" cellspacing=\"1\" cellpadding=\"2\">\n");
    break;
    case ".xml":
            fputs($fp,"<form>\n");
    break;
}

  reset($query_vars);
  while (list ($key, $val) = each ($query_vars)) {
    if ($key == "redirect") {
            $landing_page = $val;
    }
    if ( ($key == "form_order") ||
            ($key == "form_format") ||
            ($key == "form_delivery") ||
            ($key == "redirect") ) {

    }
    else {
            switch ($file_format) {
                    case ".html":
                            fputs($fp,"\t<tr>\n");
                            fputs($fp,"\t\t<td><b>$key</b></td>\n");
                            fputs($fp,"\t\t<td>$val</td>\n");
                            fputs($fp,"\t</tr>\n");

                    break;
                    case ".csv":
                            // content is already output
                    break;
                    case ".xml":
                       fputs($fp,"\t<field>\n");
                       fputs($fp,"\t\t<fieldname>".xmlentities($key)."
  </fieldname>\n");
                       fputs($fp,"\t\t<fieldvalue>".xmlentities($val)
  </fieldvalue>\n");
                            fputs($fp,"\t</field>\n");
                    break;
                    case ".text":
                    default:
                            fputs($fp,$key.": ".$val."\n");
                    break;
            }
    }
}

switch ($file_format) {
    case ".html":
            fputs($fp,"</table>\n");
    break;
    case ".xml":
            fputs($fp,"</form>\n");
    break;
}


fclose($fp);

if ($landing_page != "") {
    header("Location: http://".$_SERVER["HTTP_HOST"]."/$landing_page");
}
else {
    header("Location: http://".$_SERVER["HTTP_HOST"]."/");
}


?>
4

1 に答える 1

1
  • あなた<textarea>には名前がないので、成功したコントロールになることはできません。
  • アクセスしようとすることはありません$_POST['Firstname'](さらに言え$query_vars['Firstname]ば)
  • 同上$_POST['email']

また、HTML が無効であり (バリデーターを使用) 、 placeholder 属性を label として悪用しています

于 2013-07-11T15:18:25.863 に答える