20

クライアント向けのサイトを開発しましたが、クライアントはバックエンド タイプのソリューションでメイン ページのごく一部を編集できるようにしたいと考えています。解決策として、非常に基本的なエディター (domain.com/backend/editor.php) を追加したいと思います。このエディターにアクセスすると、コードを含むテキスト フィールドと保存ボタンが表示されます。編集するコードは TXT ファイルに設定されます。

そのようなことはPHPで簡単にコーディングできると思いますが、今回はグーグルは私を助けてくれなかったので、ここに誰かが私を正しい方向に向けてくれることを願っています. 私は PHP プログラミングの経験がなく、HTML と基本的な JavaScript しか持っていないことに注意してください。

4

8 に答える 8

40

HTML フォームを作成して、テキスト ファイルのコンテンツを編集します。送信された場合は、テキスト ファイルを更新します (F5/更新の警告を防ぐために、フォームに再度リダイレクトします)。

<?php

// configuration
$url = 'http://example.com/backend/editor.php';
$file = '/path/to/txt/file';

// check if form has been submitted
if (isset($_POST['text']))
{
    // save the text contents
    file_put_contents($file, $_POST['text']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}

// read the textfile
$text = file_get_contents($file);

?>
<!-- HTML form -->
<form action="" method="post">
<textarea name="text"><?php echo htmlspecialchars($text) ?></textarea>
<input type="submit" />
<input type="reset" />
</form>
于 2011-11-22T12:45:29.593 に答える
5

ファイルを読み取るには:

<?php
    $file = "pages/file.txt";
    if(isset($_POST))
    {
        $postedHTML = $_POST['html']; // You want to make this more secure!
        file_put_contents($file, $postedHTML);
    }
?>
<form action="" method="post">
    <?php
    $content = file_get_contents($file);
    echo "<textarea name='html'>" . htmlspecialchars($content) . "</textarea>";
    ?>
    <input type="submit" value="Edit page" />
</form>
于 2011-11-22T12:43:59.350 に答える
1

基本的に、連絡先フォームなどと同様の概念を探しています。

このようなチュートリアルから同じ原則を適用し、メールで送信する代わりに、PHP.netのファイル関数mailをチェックアウトします。

于 2011-11-22T12:42:41.893 に答える
0

その時、あなたは何をグーグルで検索しましたか?php 書き込みファイルを実行すると、数百万のヒットが得られます。

マニュアルのようにfwrite()

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// the content of 'data.txt' is now 123 and not 23!
?>

しかし、正直に言うと、まず PHP の本を手に取って試してみるべきです。テキストフィールド(つまりテキストエリア?)をTXTファイルに投稿すること以外に、単一の要件を投稿していません。これは次のようになります。

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $handle = fopen("home.txt", 'w') or die("Can't open file for writing.");
    fwrite($fh, $_POST['textfield']);
    fclose($fh);
    echo "Content saved.";
}
else
{
    // Print the form
    ?>
    <form method="post">
        <textarea name="textfield"></textarea>
        <input type="submit" />
    </form>
    <?php
}

これはあなたの説明と正確に一致することに注意してください。フォームを印刷するときにファイルを読み取らず (したがって、テキストを編集するたびに最初からやり直す必要があります)、入力を何もチェックしません (ユーザーが HTML を投稿できるようにしますか? ?)、セキュリティ チェックがなく (誰もがアクセスしてファイルを変更できます)、目的のページに表示するためにファイルを読み取ることは決してありません。

于 2011-11-22T12:41:11.083 に答える
0

最初に行うことは、情報を取得することです。これを行う最も簡単な方法は、TEXTAREA を含む HTML フォームを使用することです。

<form method='post' action='save.php'>
  <textarea name='myTextArea'></textarea>
  <button type='submit'>Go</button>
</form>

「save.php」(またはどこでも) で、フォームから送信された情報を簡単に確認できます。

<?php
  echo $_POST['myTextArea']
?>

実際にファイルを作成するには、PHP の fopen/fwrite コマンドを見てください。もう 1 つの単純な例です。

<?php 
  $handle = fopen("myFile.txt","w");
  fwrite($handle,$_POST['myTextArea'];
  fclose($handle);
?>

警告: これは非常に単純化した回答です。フォームとファイルを保護したり、別のことをしたりしたいかもしれません....上記のすべてが行うことは、フォームに投稿されたものをファイルに正確に書き込むことだけです。別のファイル名を指定したり、上書きしたり、追加したり、不正なコンテンツやスパムをチェックしたりしたい場合は、さらに作業が必要になります。

一般にアクセス可能で、コンテンツを Web ページに公開するエディターをお持ちの場合、スパム対策は絶対的な要件です。そうしないと後悔することになります。

PHP の学習に興味がない場合は、プロの開発者にコーディング作業を任せることを検討してください。

于 2011-11-22T12:49:56.157 に答える
0

私も同様のニーズを持っていたので、stringmanager.com というクライアントフレンドリーなソリューションを作成し、CMS が効果的でないすべてのプロジェクトと場所で使用しています。

あなたの側からは、コード内の文字列にタグを付けるだけです。つまり、次のようになります。

echo "編集したいテキスト"; に:

echo _t("S_Texthewantstoedit");

stringmanager.com が残りの処理を行います。クライアントは、オンライン アプリケーションでその特定のテキスト領域を管理し、好きな場所で同期できます。言うのをほとんど忘れていましたが、完全に無料です。

于 2013-02-07T21:33:23.997 に答える