Javascript 如何将数据发送到php服务器?

Javascript 如何将数据发送到php服务器?,javascript,php,html,mysql,ajax,Javascript,Php,Html,Mysql,Ajax,//会有意大利人的评论,因为我是意大利人// 我试图使用Ajax和PHP创建一个注册表单,但当我运行WebApp时,浏览器会向我发送一条错误消息:signup.js:22 POSThttp://localhost:8080/chatapp/php/signup.php 500(内部服务器错误) 我的signup.js文件代码是: const form = document.querySelector(".signup form"), continueBtn = form.qu

//会有意大利人的评论,因为我是意大利人// 我试图使用Ajax和PHP创建一个注册表单,但当我运行WebApp时,浏览器会向我发送一条错误消息:signup.js:22 POSThttp://localhost:8080/chatapp/php/signup.php 500(内部服务器错误)

我的signup.js文件代码是:

const form = document.querySelector(".signup form"),
continueBtn = form.querySelector(".button input");

form.onsubmit = (e)=>{
    e.preventDefault(); // Impedisce al form di essere inviato
}

continueBtn.onclick = ()=>{
    // Inzio dell'Ajax ovvero il sistema di sviluppo di un app basato sullo scambio di dati tra l'utente e il server
    let xhr = new XMLHttpRequest(); // Creazione dell'ogetto XML
    xhr.open("POST", "php/signup.php", true);
    xhr.onload = ()=>{
        if(xhr.readyState === XMLHttpRequest.DONE){
            if(xhr.status === 200){
                let data = xhr.response;
                console.log(data);
            }
        }
    }
    // Bisogna inviare i dati dei form all'php tramite Ajax
    let formData = new FormData(); // Creazione di un nuovo oggetto formData
    xhr.send(formData); // Invia i formData al php
}
这是signup.php文件:

<?php 
    include_once "config.php";
    $nome = mysqli_real_escape_string($conn, $_POST['nome']);
    $cognome = mysqli_real_escape_string($conn, $_POST['cognome']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $password = mysqli_real_escape_string($conn, $_POST['password']);  
    // $img = mysqli_real_escape_string($conn, $_POST['img']);

    if(!empty($nome) && !empty($cognome) && !empty($email) && !empty($password)){
        // Verifica se l'email è valida o no
        if(filter_var($email, FILTER_VALIDATE_EMAIL)){ // Se l'email è valida
            // Verificare se l'email è già presente nel Database o no
            $sql = mysqli_query($conn, "SELECT email FROM users WHERE email = '{$email}'");
            if(mysqli_num_rows($sql) > 0){ // Se l'email è già esistente
                echo "$email - Già esiste un account con questa email";
            }else{
                // Verificare se l'utente ha caricato l'immagine o no
                if(isset($_FILES['img'])){ // Se ha caricato l'immagine
                    $img_name = $_FILES['img']['name']; // Ottenere l'immagine caricata dall'utente
                    $img_type = $_FILES['img']['type']; // Ottenere il tipo di immagine caricata dall'utente
                    $tmp_img = $_FILES['img']['tmp_name']; // Questo nome temporanio per salvare/muoere i file nelle cartelle
                }else{
                    echo "Per favore seleziona un Immagine"
                }
            }
        }else{
            echo "$email - Questa email non è valida";  
        }
    }else{
        echo "Tutti i campi devono essere riempiti";
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ChatApp</title>
    <link rel="stylesheet" href="style.css">
    <script src="https://kit.fontawesome.com/6e64c11f0a.js" crossorigin="anonymous"></script>
</head>
<body>
    <div class="wrapper">
        <section class="form signup">
            <header>ChatApp by mk3301</header>
            <form action="#" enctype="multipart/form-data">
                <div class="error-txt">Questo è un messaggio di errore!</div>
                <div class="name-details">
                    <div class="field input">
                        <label>Nome</label>
                        <input type="text" name="nome" placeholder="Nome" required>
                    </div>
                    <div class="field input">
                        <label>Cognome</label>
                        <input type="text" name="cognome" placeholder="Cognome" required>
                    </div>
                </div>
                <div class="field input">
                    <label>Email</label>
                    <input type="text" name="email" placeholder="Inserisci l'Email" required>
                </div>
                <div class="field input">
                    <label>Password</label>
                    <input type="password" name="password" placeholder="Inserisci la password" required>
                    <i class="fas fa-eye"></i>
                </div>
                <div class="field image">
                    <label>Immagine</label>
                    <input type="file" name="img" required>
                </div>
                <div class="field button">
                    <input type="submit" value="Registrati e Continua" formaction="#">
                </div>
            </form>
            <div class="link">Hai già un Account? <a href="login.php">Entra ora</a></div>
        </section>
    </div>

    <script src="js/pass-show-hide.js"></script>
    <script src="js/signup.js"></script>

</body>
</html>

这是index.php文件:

<?php 
    include_once "config.php";
    $nome = mysqli_real_escape_string($conn, $_POST['nome']);
    $cognome = mysqli_real_escape_string($conn, $_POST['cognome']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $password = mysqli_real_escape_string($conn, $_POST['password']);  
    // $img = mysqli_real_escape_string($conn, $_POST['img']);

    if(!empty($nome) && !empty($cognome) && !empty($email) && !empty($password)){
        // Verifica se l'email è valida o no
        if(filter_var($email, FILTER_VALIDATE_EMAIL)){ // Se l'email è valida
            // Verificare se l'email è già presente nel Database o no
            $sql = mysqli_query($conn, "SELECT email FROM users WHERE email = '{$email}'");
            if(mysqli_num_rows($sql) > 0){ // Se l'email è già esistente
                echo "$email - Già esiste un account con questa email";
            }else{
                // Verificare se l'utente ha caricato l'immagine o no
                if(isset($_FILES['img'])){ // Se ha caricato l'immagine
                    $img_name = $_FILES['img']['name']; // Ottenere l'immagine caricata dall'utente
                    $img_type = $_FILES['img']['type']; // Ottenere il tipo di immagine caricata dall'utente
                    $tmp_img = $_FILES['img']['tmp_name']; // Questo nome temporanio per salvare/muoere i file nelle cartelle
                }else{
                    echo "Per favore seleziona un Immagine"
                }
            }
        }else{
            echo "$email - Questa email non è valida";  
        }
    }else{
        echo "Tutti i campi devono essere riempiti";
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ChatApp</title>
    <link rel="stylesheet" href="style.css">
    <script src="https://kit.fontawesome.com/6e64c11f0a.js" crossorigin="anonymous"></script>
</head>
<body>
    <div class="wrapper">
        <section class="form signup">
            <header>ChatApp by mk3301</header>
            <form action="#" enctype="multipart/form-data">
                <div class="error-txt">Questo è un messaggio di errore!</div>
                <div class="name-details">
                    <div class="field input">
                        <label>Nome</label>
                        <input type="text" name="nome" placeholder="Nome" required>
                    </div>
                    <div class="field input">
                        <label>Cognome</label>
                        <input type="text" name="cognome" placeholder="Cognome" required>
                    </div>
                </div>
                <div class="field input">
                    <label>Email</label>
                    <input type="text" name="email" placeholder="Inserisci l'Email" required>
                </div>
                <div class="field input">
                    <label>Password</label>
                    <input type="password" name="password" placeholder="Inserisci la password" required>
                    <i class="fas fa-eye"></i>
                </div>
                <div class="field image">
                    <label>Immagine</label>
                    <input type="file" name="img" required>
                </div>
                <div class="field button">
                    <input type="submit" value="Registrati e Continua" formaction="#">
                </div>
            </form>
            <div class="link">Hai già un Account? <a href="login.php">Entra ora</a></div>
        </section>
    </div>

    <script src="js/pass-show-hide.js"></script>
    <script src="js/signup.js"></script>

</body>
</html>

聊天应用
mk3301聊天应用程序
这是我的错误!
诺姆
同源的
电子邮件
密码
伊玛吉
海吉亚联合国账户?

echo“Per-favore seleziona un-Immagine”行中缺少分号。