Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    sito altervista registrazione

    ciao, ho un sito altervista e ho alcuni problemi, potreste aiuarmi?
    Ho 3 problemi fondamentalmente:
    1 non riesco ad fare domande sul forum di altervista: quando accedo alla pagina del forum, mi dice che non ho effettuato il login, ma quando lo faccio mi manda direttamente al mio pannello di controllo del sito, e da lì non riesco a passare al forum, perché se vado su supporto automaticamente esce dall'account. Sai perché?

    2 sto provando a rendere possibile registrarsi (al momento non c'è bisogno di accedere) tramite un form HTML .
    Però non funziona. (E se apro il file PHP mi mostra una immagine bianca, è normale o no?)
    allego i codici PHP , HTML e JS.



    database.php

    <?php
    $config = [
    'db_engine' => '',
    'db_host' => '',
    'db_name' => 'my_paperpediaforum',
    'db_user' => '',
    'db_password' => '',
    ];

    $db_config = $config['db_engine'] . ":host=".$config['db_host'] . ";dbname=" . $config['db_name'];

    try {
    $pdo = new PDO($db_config, $config['db_user'], $config['db_password'], [
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
    ]);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    } catch (PDOException $e) {
    exit("Impossibile connettersi al database: " . $e->getMessage());
    }

    register.php

    <?php
    require_once('database.php');

    if (isset($_POST['register'])) {
    // Verifica reCAPTCHA
    $recaptchaResponse = $_POST['g-recaptcha-response'] ?? '';
    $recaptchaSecretKey = ''; // Inserisci qui la tua chiave segreta reCAPTCHA
    $recaptchaVerifyUrl = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptchaData = [
    'secret' => $recaptchaSecretKey,
    'response' => $recaptchaResponse
    ];
    $recaptchaOptions = [
    'http' => [
    'method' => 'POST',
    'header' => 'Content-Type: application/x-www-form-urlencoded',
    'content' => http_build_query($recaptchaData)
    ]
    ];
    $recaptchaContext = stream_context_create($recaptchaOptions);
    $recaptchaVerify = file_get_contents($recaptchaVerifyUrl, false, $recaptchaContext);
    $recaptchaResult = json_decode($recaptchaVerify, true);

    if (!$recaptchaResult['success']) {
    $msg = 'Verifica reCAPTCHA non riuscita %s';
    printf($msg, '<a href="register.html">torna indietro</a>');
    return;
    }

    // Altri dati del form
    $username = $_POST['username'] ?? '';
    $password = $_POST['password'] ?? '';
    $email = $_POST['email'] ?? '';

    // Validazione dei campi
    // Codice per la validazione dei campi

    if (empty($username) || empty($password) || empty($email)) {
    $msg = 'Compila tutti i campi %s';
    } else {
    $password_hash = password_hash($password, PASSWORD_BCRYPT);

    // Verifica se l'email è già in uso
    $query = "SELECT id FROM utenti WHERE email = :email";
    $check = $pdo->prepare($query);
    $check->bindParam(':email', $email, PDO::PARAM_STR);
    $check->execute();
    $existingEmail = $check->fetch(PDO::FETCH_ASSOC);

    if ($existingEmail) {
    $msg = 'L\'indirizzo email è già in uso %s';
    } else {
    // Inserimento nel database
    $query = "
    INSERT INTO utenti (username, email, password)
    VALUES (:username, :email, assword)
    ";

    $stmt = $pdo->prepare($query);
    $stmt->bindParam(':username', $username, PDO::PARAM_STR);
    $stmt->bindParam(':email', $email, PDO::PARAM_STR);
    $stmt->bindParam('assword', $password_hash, PDO::PARAM_STR);
    $stmt->execute();

    if ($stmt->rowCount() > 0) {
    $msg = 'Registrazione eseguita con successo';
    } else {
    $msg = 'Problemi con l\'inserimento dei dati %s';
    }
    }
    }

    // Visualizza messaggio di feedback
    printf($msg, '<a href="register.html">torna indietro</a>');
    }
    ?>
    (questo dovrebbe collegarsi al database.php correttamente e inviare i dati raccolti dal form)
    (ho tolto il codice segreto del reCAPTCHA,ma nel mio file c'è)


    script-registrazione.js


    document.addEventListener('DOMContentLoaded', function () {
    const form = document.getElementById('registrazioneForm');
    const confirm_password = document.getElementById('confirm_password');
    const recaptchaResponse = document.getElementById('g-recaptcha-response');

    form.addEventListener('submit', function (event) {
    event.preventDefault();

    const username = form.username.value.trim();
    const email = form.email.value.trim();
    const password = form.password.value;
    const confirm_password_value = confirm_password.value;
    const user_image = form.user_image.files[0];
    const recaptchaValue = recaptchaResponse.value;

    if (password !== confirm_password_value) {
    alert('Le password non corrispondono');
    return;
    }

    if (recaptchaValue === '') {
    alert('Completa la verifica reCAPTCHA');
    return; // Blocca l'invio del modulo
    }

    const formData = new FormData();
    formData.append('register', '1');
    formData.append('username', username);
    formData.append('email', email);
    formData.append('password', password);
    formData.append('user_image', user_image);
    formData.append('g-recaptcha-response', recaptchaValue);

    // Invio della richiesta AJAX
    const xhr = new XMLHttpRequest();
    xhr.open('POST', form.action, true);
    xhr.onreadystatechange = function () {
    if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status === 200) {
    alert(xhr.responseText);
    if (xhr.responseText.includes('successo')) {
    // Reindirizza l'utente alla pagina di login o a un'altra pagina di successo
    window.location.href = 'login.html';
    }
    } else {
    alert('Si è verificato un errore durante la registrazione');
    }
    }
    };
    xhr.send(formData);
    });
    });

    registrazione.html

    <!DOCTYPE html>
    <html lang="it">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registrazione</title>
    <link rel="stylesheet" href="registrazione.css">
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </head>
    <body>
    <div class="container">
    <h2>Registrazione</h2>
    <form id="registrazioneForm" action="register.php" method="post" enctype="multipart/form-data">
    <div class="form-control">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" required>
    </div>
    <div class="form-control">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>
    </div>
    <div class="form-control">
    <label for="password">Password:</label>
    <input type="password" id="password" name="password" required>
    </div>
    <div class="form-control">
    <label for="confirm_password">Ripeti Password:</label>
    <input type="password" id="confirm_password" name="confirm_password" required>
    </div>
    <div class="form-control">
    <label for="user_image">Immagine Utente (Max 100x100px):</label>
    <input type="file" id="user_image" name="user_image" accept="image/*" required>
    </div>
    <div class="g-recaptcha" data-sitekey="6LfFfcEpAAAAAJ6-XQrO_kZOzfCYCewsENDJtWcj"></div> <!-- Inserisci la tua chiave del sito reCAPTCHA -->
    <button type="submit">Registrati</button>
    </form>
    </div>

    <script src="script-registrazione.js"></script>
    </body>
    </html>


    avete idea di come mai non funzioni?
    tenete conto che oltre a non registrare nel database i dati, non riesco a fare in modo che richiede la compilazione del recaptcha per poter proseguire e che il nome della tabella dela database è utenti.

    se dovessi aver fatto una domanda stupida e inappropriata, chiedo scusa, sono nuovo.
    può essere un problema di permessi del file? in ogni caso, come si modificano?

    Terzo problema:
    come posso modificare la struttura dei link del mio sito?

    problema bonus: per adesso non è un problema ma può essere utile in futuro.

    vorrei aggiungere un account altervista come co-amministratore del sito (dovrei poterlo fare tramite il pulsante FTP), ma è possibile registrarsi su altervista senza avere un sito o l'altra persona dovrebbe creare un sito per poi non gestirlo e fare il co-amministratore del mio?chiedo scusa se è una domanda stupida.
    Grazie.

  2. #2
    compilando il form mi dice could not find driver.

  3. #3
    ho notato che copiando e incollando il testo, ho copiato anche il punto 1 e 3. Ignorateli, li metterò nella categoria giusta.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.