-2

HTML または PHP で HTML フォームを検証したいと考えています。検証とは、2 つのテキスト ボックスのそれぞれに少なくとも 1 文字のテキストが入力されていることを確認することです。また、英数字のみを入力するか、句読点の前に「/」が付かないようにする必要があります。

現在、私のフォームは 2 つの php ページ (以下にコピー) で構成されており、txt ファイルに投稿されています。

私は、それを行う方法に関するいくつかの(非常に基本的な)指示、または以下のスクリプトに関する提案のいずれかを行っています。

//HTML
<form style="" method="post" action="addtopic2.php">
Topic:<input name="topic" id="topicbox" maxlength="100" type="text"><br>
Outline: <textarea input wrap="nowrap" rows="10" cols="120" 
name="outline"></textarea>    
<br><input name="submit" value="Submit" type="submit">
</form>
//HTML

<?php
$t = "Topic:";
$o = "Outline:";

$topic = $_POST['topic'];
$outline = $_POST['outline'];

$data = "$t $topic | $o $outline |\n";

$fh = fopen("users.txt", "a");
fwrite($fh, $data); 
fclose($fh); 
?>

//以下を使用しようとしましたが、どちらのページに挿入しても機能しないようです。

<?php
if($_POST['Submit'] == "submit")
{
  $errorMessage = "";
  if(empty($_POST['topic']))
  {
$errorMessage .= "<li>A topic needs to be entered</li>";
  }
  if(empty($_POST['outline']))
  {
    $errorMessage .= "<li>An outline needs to be entered</li>";
  }
  $vartopic = $_POST['formtopic'];
  $varoutline = $_POST['formoutline'];
  if(!empty($errorMessage))
  {
    echo("<p>There was an error with your form:</p>\n");
        echo("<ul>" . $errorMessage . "</ul>\n");
  }
}
?>


<?php
if (isset($_POST['topic']) && isset($_POST['outline'])) {
     $topic = trim($_POST['topic']);
    $outline = trim($_POST['outline']);
}
else {
  echo '<p>Fill the form</p>';
}
?>
4

2 に答える 2

0

この(単一ファイル)ソリューションを試してください:

<form style="" method="post">

    Topic:<input name="topic" id="topicbox" maxlength="100" type="text" value='<?= $_REQUEST['topic'] ?>><br>
    Outline: <textarea input wrap="nowrap" rows="10" cols="120" name="outline"><?= $_REQUEST['outline'] ?></textarea>
    <p/>
    <input name="submit" value="Submit" type="submit">

</form>

<?php

    if ($_REQUEST['submit'] !== 'submit')
    {
        exit;
    }

    if ($_REQUEST['topic'] == '')
    {
        echo "<p>Missing Topic.</p>\n";
        exit;
    }

    if ($_REQUEST['outline'] == '')
    {
        echo "<p>Missing Outline.</p>\n";
        exit;
    }

    $t = "Topic:";
    $o = "Outline:";

    $topic = $_POST['topic'];
    $outline = $_POST['outline'];

    $data = "$t $topic | $o $outline |\n";

    $fh = fopen("users.txt", "a");
    fwrite($fh, $data); 
    fclose($fh); 
?>
于 2016-04-07T04:48:27.507 に答える
0

試す

$file = "users.txt";
$errorMessage = array ();

if ($_POST ['Submit'] == "submit") {
    if (empty ( $_POST ['topic'] )) {
        $errorMessage [] = "A topic needs to be entered<";
    }
    if (empty ( $_POST ['outline'] )) {
        $errorMessage [] = "An outline needs to be entered";
    }

    if (count ( $errorMessage ) == 0) {
        $data = $_POST ['topic'] . "|" . $_POST ['outline'] . "\n";
        $fh = fopen ( $file, "a" );
        fwrite ( $fh, $data );
        fclose ( $fh );
    } else {
        print ("<p>There was an error with your form:</p>\n") ;
        print ("<ul>") ;
        foreach ( $errorMessage as $error ) {
            print "<li>" . $error . "<li>";
        }
        print ("</ul>") ;
    }
}

// To Read Your File

$content = file ( $file );
print ("<p>File Details</p>\n") ;
foreach ( $content as $info ) {
    list ( $topic, $outline ) = explode ( "|", $info );
    print ("<ul>") ;
    print "<li>Topic: " . $topic . "<li>";
    print "<li>Outline:" . $outline . "<li>";
    print ("</ul>") ;

}
于 2012-04-10T23:22:50.797 に答える