Php-Хранение имени и адреса электронной почты в CSV для отказа от ответственности перед перенаправлением на любую страницу - PullRequest
0 голосов
/ 01 ноября 2019

Я новичок в кодировании. Чего я хочу добиться, так это:

  1. Когда пользователь открывает мой веб-сайт, ему нужно показать отказ от ответственности (причина: соблюдение закона).
  2. Он должен ввести свои данные. имя и адрес электронной почты для продолжения (причина: меры безопасности, обеспечивающие согласие).
  3. После проверки и отправки то же самое должно быть сохранено в CSV (или любых других рекомендациях?). Я думал о SQL, но кажется, что нужно предпринять множество мер безопасности.
  4. При каждой загрузке страницы я хочу убедиться, что у пользователя активен сеанс.
  5. ПослеПри следующем посещении я надеялся что-то сделать, чтобы пользователю не пришлось проходить этот процесс снова. Но, похоже, мне придется хранить печенье. И я хочу избежать чего-либо со стороны клиента.

Код выглядит так:

Отказ от ответственности:


        <?php include(xxx_process.php) ?>
        <!DOCTYPE html>
        <html lang="en">
        <head>
        <link rel="stylesheet" type="text/css" href="global template.css">
        <title>Disclaimer </title>
        </head>
        <body>
        <link rel="stylesheet" type="text/css" href="global template.css">
        <main>
        <h1>Disclaimer </h1>
        <p>
    Disclaimer content....
        </p>
        <form method="post">
        <?php include("xxx_throwerror.php"); ?>
        <p><label>Name</label>
    <input type="text" name="name" value="<?php echo $name; ?>"></p>
        <p><label>Email</label>
    <input type="email" name="email" value="<?php echo $email; ?>"></p>
        <p><input type="checkbox" required name="checkbox" value="check" id="agree" /> I have read and agree to the <a href="policies.php">Disclaimer and Policies </a></p>
        <p><button type="submit" style="float:center" name="agree_continue">Agree and Continue</button></p>
        </form>
        </main>
        </body>
        </html>

Сценарий обработки


        <?php
        session_start();
        $name = "";
        $email = "";
        $errors = array();
        function clean_text($string)
    {
     $string = trim($string);
     $string = stripslashes($string);
     $string = htmlspecialchars($string);
     return $string;
    }
    if (isset($_post["agree_continue"])) {
    if (empty($name)) { array_push($errors, "Name is required"); }
    if (empty($email)) { array_push($errors, "Email is required"); }
    }
    $name = clean_text($_post["name"]);
    if(!preg_match("/^[a-zA-Z ]*$/",$name))
    { array_push($errors, "Only letters and white spaces are allowed"); }
    $email = clean_text($_post["email"]);
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
    { array_push($errors, "Invalid email format"); }
    if (count($errors) == 0) {
    $file_open = fopen("something.csv", "a");
    $no_rows = count(file("something.csv"));
    if($no_rows > 1)
    { $no_rows = ($no_rows - 1) + 1; }
    $form_data = array(
    "sr_no"  => $no_rows, "name"  => $name, "email"  => $email,
    );
    fputcsv($file_open, $form_data);
    $name = "";
    $email = "";
    $_session["name"] = $name;
    $_SESSION["success"] ;
    header("location: go.php");
    }
    ?>

Код страницы ошибок:


        <?php 
    if (count($errors) > 0) : ?>
        <?php foreach ($errors as $error) : ?>
        <p><?php echo $error ?></p>
    <?php endforeach ?>
        <?php  endif ?>

Пожалуйста, не публикуйте скриншоты без описания, так как я не вижу глазами и использую программу для чтения с экрана, которая считывает то, что поставляетсяDOM.

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

Отдельно, если кто-то готов помочьс какой-то визуальной версткой в ​​CSS, пожалуйста, дайте мне знать.

Наконец, я видел другие подобные вопросы, но, кажется, ничто не помогает мне в том, чего я пытаюсь достичь.

Спасибо.

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