php, измените db: из MySQL в текстовый файл - PullRequest
0 голосов
/ 08 февраля 2011

Я новичок в программировании, я нахожу этот скрипт и хотел бы адаптировать его к своим потребностям, этот скрипт сохраняет почтовый адрес на MySQL db, но я хотел бы сохранить его в файле txt, возможно, повторноиспользовать этот код?

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();
    }
}

, где connect.php -

<?php

error_reporting(E_ALL ^ E_NOTICE);

$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

@$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);

if (mysqli_connect_errno()) {
die('<h1>Could not connect to the database</h1><h2>Please try again after a few moments.</h2>');
}

$mysqli->set_charset("utf8");


?>

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Вы можете повторно использовать его части; строка, которая фактически сохраняет данные в базу данных, - это строка, начинающаяся с $mysqli->query, а строка после - проверка на успешность. Удалите их и замените их собственными функциями сохранения текстовых файлов (и поместите их в включаемый файл, а не в тот, который определяет соединитель mysqli).

0 голосов
/ 08 февраля 2011

Этот файл очень специфичен для использования базы данных.Тем не менее, использование файла не сложно.Я бы посоветовал вместо использования простого файла рассмотреть возможность использования базы данных, такой как sqlite, которая использует файлы, а не полноценную базу данных.

Если вы настроены на использование файлов, вы можете очень легко управлять файлами в php.Ниже приведены некоторые примеры:

    $file = fopen('path/to/file', 'r+');

    fputs($file, 'email@domain.com'); 
    // fputs() is an alias for fwrite, they are interchangable

На этой странице подробно описаны различные режимы открытия файла с помощью fopen().Вы захотите обратить особое внимание на то, открывает ли режим указатель файла в начале или конце файла.Если вы написали несколько писем в файл, а затем снова открыли файл с указателем файла в начале, чтобы написать больше писем, вы перезаписали бы существующие данные.Это хорошая причина для использования базы данных, так как для удаления существующих данных требуется большая ошибка.

fputs() используется для записи строк в ваш файл.Очевидно, что вы можете передать переменную, а не строку, которую я жестко закодировал в примере, просто убедитесь, что переменная является какой-то значимой строкой.Вы не можете, например, передать массив писем.Вам придется перебрать массив и вызывать fputs() для каждого письма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...