Регистрация

61 views
Skip to first unread message

Город Таланта

unread,
Feb 8, 2023, 1:33:57 PM2/8/23
to HEEG.HTML Бесплатная CMS интернет магазина
Здравствуйте! Страницы регистрации и входа на сайте создать возможно, чтобы зарегистрированным показывать иную информацию от незарегистрированных?

HEEG.HTML

unread,
Feb 9, 2023, 4:40:26 AM2/9/23
to HEEG.HTML Бесплатная CMS интернет магазина
К сожалению, так сделать не получится. Сайт не может различать людей. Тут невозможен личный кабинет и какой-либо "приватный" доступ.

среда, 8 февраля 2023 г. в 21:33:57 UTC+3, Город Таланта:

Город Таланта

unread,
Dec 13, 2025, 8:33:29 AM (13 days ago) Dec 13
to HEEG.HTML Бесплатная CMS интернет магазина
Здравствуйте, Дмитрий! Помогите мне пожалуйста с регистрацией на сайт. По сути нужно просто создать анкету, которая правильно бы распределялась в таблице, презентабельно выглядела бы  и всё. Вот задача к коду. Код я вывела с помощью ГПТ. У меня получилось создать форму регистрации, но она не отправляет вообще заполненные данные. Не могу понять почему.
Может на вашем сайте можно создать такую регистрацию с более простыми способами?

Надо, чтобы данные этой формы заносились в таблицу регистрации https://docs.google.com/spreadsheets/d/14B0gM46V-GWElrd-WK7SZOdvHqL8MG8K_w1B5H1oIwE/edit?gid=0#gid=0

Столбцы таблицы: " * " - Обязательно для заполнения. если без звездочки, то необязательно. словом "обязательно" не обозначаем, только в случае не заполнения.

A) id * - порядковый номер начиная от 001 (сотки, десятки, единицы) Заносится в таблицу автоматически. в анкету не показывается.
B) tags* - пропуск
C) ФОТО - вставляется фотография. Если не заполняется пользователем, то ставится стандартная фотография https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIUrAV14os2CIWAuPmgK5iHW2wYzpVasSutDhUfDa4yCvsrJvyBuMDY09VzFI0tXBg8DRRd_ry__4Y_7A_DUZYG9hva5dCgu06GR-OK1dNgpBwCruzjwPcmtnaMbzkx6pBY9a0ECRiy8403c1b3kHu4ODpM_CBl9fXQIm6KH_5TZcK-v-hklMMTIOcHQmq/s16000/2%20%D0%BC%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D1%8F-min.png фотография на гугл диске не сохраняется, а минуя гугл диск отправляется на страницу https://www.blogger.com/blog/page/edit/3861904685073664485/5780904911884061469?hl=ru а ссылка фото отправляется в таблицу в колонку "C".

Заполнение столбцов:

D) ФИО*
E) ID слово*
F) Пол*
G) Дата рождения*
H) Возраст* - (вставляется в анкету высчитывается из даты рождения. Обновляется в каждый день рождения.) В анкете не указывается.
I) Город проживания*
J) Телефон
K) Телеграм
L) Вотсап
M) Соцсеть (вк, ок, фейсбук)
N) E-mail*
D) Гражданство*
P) Национальность*
Q) О себе
R) Интересы
S) От кого пришел* - вносится id слово

Спасибо за регистрацию. Ваша анкета проверится ближайшее время.
_________________________________________________________
На сайте гугл есть такой код.
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Регистрация</title>
    <style>
        body { font-family: Arial, sans-serif; background: #f4f4f4; margin: 0; padding: 20px; color: #333; }
        .container { max-width: 600px; margin: 0 auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
        h1 { text-align: center; color: #007bff; margin-bottom: 20px; }
        .form-group { margin-bottom: 15px; }
        label { display: block; font-weight: bold; margin-bottom: 5px; }
        .required::after { content: "*"; color: red; }
        input, select, textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; }
        input[type="file"] { padding: 5px; }
        button { width: 100%; padding: 12px; background: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; }
        button:hover { background: #0056b3; }
        .status { margin-top: 20px; text-align: center; display: none; }
        .error { color: red; }
        .success { color: green; }
    </style>
</head>
<body>
    <div class="container">
        <h1>Регистрация на сайте</h1>
        <form id="registrationForm" enctype="multipart/form-data">
            <div class="form-group">
                <label for="fio" class="required">ФИО</label>
                <input type="text" id="fio" name="fio" required>
            </div>
            <div class="form-group">
                <label for="id_slovo" class="required">ID слово</label>
                <input type="text" id="id_slovo" name="id_slovo" required>
            </div>
            <div class="form-group">
                <label for="pol" class="required">Пол</label>
                <select id="pol" name="pol" required>
                    <option value="">Выберите</option>
                    <option value="Мужской">Мужской</option>
                    <option value="Женский">Женский</option>
                </select>
            </div>
            <div class="form-group">
                <label for="data_rogdenia" class="required">Дата рождения</label>
                <input type="date" id="data_rogdenia" name="data_rogdenia" required>
            </div>
            <div class="form-group">
                <label for="gorod" class="required">Город проживания</label>
                <input type="text" id="gorod" name="gorod" required>
            </div>
            <div class="form-group">
                <label for="telefon">Телефон</label>
                <input type="tel" id="telefon" name="telefon">
            </div>
            <div class="form-group">
                <label for="telegram">Телеграм</label>
                <input type="text" id="telegram" name="telegram">
            </div>
            <div class="form-group">
                <label for="whats">Вотсап</label>
                <input type="text" id="whats" name="whats">
            </div>
            <div class="form-group">
                <label for="socset">Соцсеть (ВК, ОК, Фейсбук)</label>
                <input type="url" id="socset" name="socset">
            </div>
            <div class="form-group">
                <label for="email" class="required">E-mail</label>
                <input type="email" id="email" name="email" required>
            </div>
            <div class="form-group">
                <label for="grazhdanstvo" class="required">Гражданство</label>
                <input type="text" id="grazhdanstvo" name="grazhdanstvo" required>
            </div>
            <div class="form-group">
                <label for="nacionalnost">Национальность</label>
                <input type="text" id="nacionalnost" name="nacionalnost">
            </div>
            <div class="form-group">
                <label for="o_sebe">О себе</label>
                <textarea id="o_sebe" name="o_sebe" rows="3"></textarea>
            </div>
            <div class="form-group">
                <label for="interesy">Интересы</label>
                <textarea id="interesy" name="interesy" rows="3"></textarea>
            </div>
            <div class="form-group">
                <label for="otkogo" class="required">От кого пришел (ID слово)</label>
                <input type="text" id="otkogo" name="otkogo" required>
            </div>
            <div class="form-group">
                <label for="photo">Фотография (опционально)</label>
                <input type="file" id="photo" name="photo" accept="image/*">
            </div>
            <button type="submit">Зарегистрироваться</button>
        </form>
        <div id="status" class="status"></div>
    </div>

    <script>
        const form = document.getElementById('registrationForm');
        const statusDiv = document.getElementById('status');

        form.addEventListener('submit', async (e) => {
            e.preventDefault();
            statusDiv.style.display = 'block';
            statusDiv.className = 'status';
            statusDiv.textContent = 'Отправка...';

            const formData = new FormData(form);
            const data = {};
           
            // Конверсия photo в base64
            if (formData.get('photo')) {
                const file = formData.get('photo');
                const base64 = await toBase64(file);
                data.photo = base64;
            }

            // Сбор остальных полей
            formData.forEach((value, key) => {
                if (key !== 'photo') data[key] = value;
            });

            // Отправка POST
            try {
                const response = await fetch('https://script.google.com/macros/s/AKfycbz5IbP12AY_hqoQ-sv3VDRLIN585mIAUoU2L7te59iL9ZReCP2Q3cTJf7N2vqpNn-wpiA/exec', {  // Здесь вставлена ваша ссылка
                    method: 'POST',
                    body: new URLSearchParams({ formData: JSON.stringify(data) })
                });
                const result = await response.json();
                if (result.status === 'success') {
                    statusDiv.className = 'status success';
                    statusDiv.textContent = result.message;
                    form.reset();
                } else {
                    throw new Error(result.message);
                }
            } catch (error) {
                statusDiv.className = 'status error';
                statusDiv.textContent = 'Ошибка: ' + error.message;
            }
        });

        function toBase64(file) {
            return new Promise((resolve, reject) => {
                const reader = new FileReader();
                reader.readAsDataURL(file);
                reader.onload = () => resolve(reader.result);
                reader.onerror = reject;
            });
        }
    </script>
</body>
</html>

а еще в  Apps Script в редакторе кодов стоит такой код.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Регистрация</title>
    <style>
        body { font-family: Arial, sans-serif; background: #f4f4f4; margin: 0; padding: 20px; color: #333; }
        .container { max-width: 600px; margin: 0 auto; background: white; padding: 30px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
        h1 { text-align: center; color: #007bff; margin-bottom: 20px; }
        .form-group { margin-bottom: 15px; }
        label { display: block; font-weight: bold; margin-bottom: 5px; }
        .required::after { content: "*"; color: red; }
        input, select, textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; }
        input[type="file"] { padding: 5px; }
        button { width: 100%; padding: 12px; background: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; }
        button:hover { background: #0056b3; }
        .status { margin-top: 20px; text-align: center; display: none; }
        .error { color: red; }
        .success { color: green; }
    </style>
</head>
<body>
    <div class="container">
        <h1>Регистрация на сайте</h1>
        <form id="registrationForm" enctype="multipart/form-data">
            <div class="form-group">
                <label for="fio" class="required">ФИО</label>
                <input type="text" id="fio" name="fio" required>
            </div>
            <div class="form-group">
                <label for="id_slovo" class="required">ID слово</label>
                <input type="text" id="id_slovo" name="id_slovo" required>
            </div>
            <div class="form-group">
                <label for="pol" class="required">Пол</label>
                <select id="pol" name="pol" required>
                    <option value="">Выберите</option>
                    <option value="Мужской">Мужской</option>
                    <option value="Женский">Женский</option>
                </select>
            </div>
            <div class="form-group">
                <label for="data_rogdenia" class="required">Дата рождения</label>
                <input type="date" id="data_rogdenia" name="data_rogdenia" required>
            </div>
            <div class="form-group">
                <label for="gorod" class="required">Город проживания</label>
                <input type="text" id="gorod" name="gorod" required>
            </div>
            <div class="form-group">
                <label for="telefon">Телефон</label>
                <input type="tel" id="telefon" name="telefon">
            </div>
            <div class="form-group">
                <label for="telegram">Телеграм</label>
                <input type="text" id="telegram" name="telegram">
            </div>
            <div class="form-group">
                <label for="whats">Вотсап</label>
                <input type="text" id="whats" name="whats">
            </div>
            <div class="form-group">
                <label for="socset">Соцсеть (ВК, ОК, Фейсбук)</label>
                <input type="url" id="socset" name="socset">
            </div>
            <div class="form-group">
                <label for="email" class="required">E-mail</label>
                <input type="email" id="email" name="email" required>
            </div>
            <div class="form-group">
                <label for="grazhdanstvo" class="required">Гражданство</label>
                <input type="text" id="grazhdanstvo" name="grazhdanstvo" required>
            </div>
            <div class="form-group">
                <label for="nacionalnost">Национальность</label>
                <input type="text" id="nacionalnost" name="nacionalnost">
            </div>
            <div class="form-group">
                <label for="o_sebe">О себе</label>
                <textarea id="o_sebe" name="o_sebe" rows="3"></textarea>
            </div>
            <div class="form-group">
                <label for="interesy">Интересы</label>
                <textarea id="interesy" name="interesy" rows="3"></textarea>
            </div>
            <div class="form-group">
                <label for="otkogo" class="required">От кого пришел (ID слово)</label>
                <input type="text" id="otkogo" name="otkogo" required>
            </div>
            <div class="form-group">
                <label for="photo">Фотография (опционально)</label>
                <input type="file" id="photo" name="photo" accept="image/*">
            </div>
            <button type="submit">Зарегистрироваться</button>
        </form>
        <div id="status" class="status"></div>
    </div>

    <script>
        const form = document.getElementById('registrationForm');
        const statusDiv = document.getElementById('status');

        form.addEventListener('submit', async (e) => {
            e.preventDefault();
            statusDiv.style.display = 'block';
            statusDiv.className = 'status';
            statusDiv.textContent = 'Отправка...';

            const formData = new FormData(form);
            const data = {};
           
            // Конверсия photo в base64
            if (formData.get('photo')) {
                const file = formData.get('photo');
                const base64 = await toBase64(file);
                data.photo = base64;
            }

            // Сбор остальных полей
            formData.forEach((value, key) => {
                if (key !== 'photo') data[key] = value;
            });

            // Отправка POST
            try {
                const response = await fetch('https://script.google.com/macros/s/AKfycbz5IbP12AY_hqoQ-sv3VDRLIN585mIAUoU2L7te59iL9ZReCP2Q3cTJf7N2vqpNn-wpiA/exec', {  // Здесь вставлена ваша ссылка
                    method: 'POST',
                    body: new URLSearchParams({ formData: JSON.stringify(data) })
                });
                const result = await response.json();
                if (result.status === 'success') {
                    statusDiv.className = 'status success';
                    statusDiv.textContent = result.message;
                    form.reset();
                } else {
                    throw new Error(result.message);
                }
            } catch (error) {
                statusDiv.className = 'status error';
                statusDiv.textContent = 'Ошибка: ' + error.message;
            }
        });

        function toBase64(file) {
            return new Promise((resolve, reject) => {
                const reader = new FileReader();
                reader.readAsDataURL(file);
                reader.onload = () => resolve(reader.result);
                reader.onerror = reject;
            });
        }
    </script>
</body>
</html>

четверг, 9 февраля 2023 г. в 12:40:26 UTC+3, HEEG.HTML:

HEEG.HTML Бесплатная CMS интернет магазина

unread,
Dec 13, 2025, 11:21:58 AM (13 days ago) Dec 13
to HEEG.HTML Бесплатная CMS интернет магазина
Вы описываете оправку данных клиента из формы в гугл таблицу. Это не регистрация клиента в системе. 
Регистрация - это создание личного кабинета, где клиент может заполнять свои данные, менять, удалять. Менять пароль к личному кабинету, если его забыл итд. 
такого модуля в Heeg.html к сожалению нет.


суббота, 13 декабря 2025 г. в 16:33:29 UTC+3, Город Таланта:
Reply all
Reply to author
Forward
0 new messages