あるaddress.php
require "includes/connect.php";
$msg = '';
if($_POST['email']){
// Requested with AJAX:
$ajax = ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest');
try{
if(!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){
throw new Exception('Invalid Email!');
}
$mysqli->query("INSERT INTO coming_soon_emails
SET email='".$mysqli->real_escape_string($_POST['email'])."'");
if($mysqli->affected_rows != 1){
throw new Exception('This email already exists in the database.');
}
if($ajax){
die('{"status":1}');
}
$msg = "Thank you!";
}
catch (Exception $e){
if($ajax){
die(json_encode(array('error'=>$e->getMessage())));
}
$msg = $e->getMessage();
}
}
。ただし、ファイルを使用することは難しくありません。私は、単純なファイルを使用するのではなく、完全に本格的なデータベースではなくファイルを使用するsqliteのようなデータベースの使用を検討することをお勧めします。
ファイルを使用するように設定されている場合、PHPでファイルを非常に簡単に操作できます。いくつかの例は以下のとおりです。
$file = fopen('path/to/file', 'r+');
fputs($file, '[email protected]');
// fputs() is an alias for fwrite, they are interchangable
This pageはfopen()
でファイルを開くための異なるモードを詳述します。モードがファイルの先頭または最後にファイルポインタを開くかどうかに特別な注意を払う必要があります。あなたがファイルにいくつかの電子メールを書いた場合は、最初にファイルポインタを使ってファイルを開いて、さらに電子メールを書き込むと、既存のデータを上書きします。これは、既存のデータを削除するためにより大きなネジを必要とするため、データベースを使用する良い理由です。
fputs()
は、ファイルに行を書き込むために使用されます。明らかに、例ではコード化した文字列ではなく、変数を渡すことができます。変数が意味のある文字列であることを確認してください。たとえば、電子メールの配列を渡すことはできません。配列全体をループし、メールごとにfputs()
を呼び出す必要があります。
このコードの5%がデータベースに関連していない可能性があるため、これを「再利用」することはできません。 – Mchl
これは完全な書き換えのように聞こえる –