AIUTO! Problemi con invio form - javascript e PHP

di il
3 risposte

AIUTO! Problemi con invio form - javascript e PHP

Buongiorno, sono nuovo del forum e innanzitutto vi saluto e vi ringrazio in anticipo.
Durante questo periodo di pausa dal lavoro causa CONVID-19 mi sono riavvicinato alla programmazione in HTML e CSS.
Mi piace molto la piattaforma BOOTSTRAP e sto cercando di lavorare con quella.

Sto creando un sito per un'amica e mi sono bloccato sull'invio dei dati tramite FORM.
Per la creazione di un server ho scaricato XAMPP, quindi posso testarne il funzionamento.

Nel momento in cui compilo i campi del form e clicco su invia, non succede praticamente nulla se non la visualizzazione del messaggio SENDING...

questo è il bottone di invio, che nel momento in cui clicco sul bottone richiama la funzione javascript validateForm()

<div class="text-center text-md-left">
<a class="btn btn-primary" onclick="validateForm();">Send</a>
</div>
<div class="status"></div>
</div>


qui di seguito incollo lo script javascript valideteForm()

<script>
function validateForm() {
var name = document.getElementById('name').value;
if (name == "") {
document.querySelector('.status').innerHTML = "Name cannot be empty";
return false;
}
var email = document.getElementById('email').value;
if (email == "") {
document.querySelector('.status').innerHTML = "Email cannot be empty";
return false;
} else {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(!re.test(email)){
document.querySelector('.status').innerHTML = "Email format invalid";
return false;
}
}
var subject = document.getElementById('subject').value;
if (subject == "") {
document.querySelector('.status').innerHTML = "Subject cannot be empty";
return false;
}
var message = document.getElementById('message').value;
if (message == "") {
document.querySelector('.status').innerHTML = "Message cannot be empty";
return false;
}
document.querySelector('.status').innerHTML = "Sending...";
}
</script>


la pagina php che riceve i dati è questa.

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];
header('Content-Type: application/json');
if ($name === ''){
print json_encode(array('message' => 'Name cannot be empty', 'code' => 0));
exit();
}
if ($email === ''){
print json_encode(array('message' => 'Email cannot be empty', 'code' => 0));
exit();
} else {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
print json_encode(array('message' => 'Email format invalid.', 'code' => 0));
exit();
}
}
if ($subject === ''){
print json_encode(array('message' => 'Subject cannot be empty', 'code' => 0));
exit();
}
if ($message === ''){
print json_encode(array('message' => 'Message cannot be empty', 'code' => 0));
exit();
}
$content="From: $name \nEmail: $email \nMessage: $message";
$recipient = "";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $content, $mailheader) or die("Error!");
print json_encode(array('message' => 'Email successfully sent!', 'code' => 1));
exit();
?>


Cosa sto sbagliando? è da 2 giorni che ci sto sbattendo la testa
Aiutatemi per favore

3 Risposte

  • Re: AIUTO! Problemi con invio form - javascript e PHP

    Sto creando un sito per un'amica e mi sono bloccato sull'invio dei dati tramite FORM.
    Non vedo nessun FORM.
    Secondo me stai mettendo il carro davanti ai buoi. Inizia dalle base: lascia perdere per ora la validazione con javascript e limitati a creare un form con il metodo post ( o get) ed un bottone Submit.
  • Re: AIUTO! Problemi con invio form - javascript e PHP

    Per non rendere il post troppo lungo ho inserito solo il bottone di invio, senza far vedere tutto il form.
    Comunque ho risolto.
    Ho trovato un esempio un pochino più semplice online e con le varie accortezze del caso ho fatto un copia e incolla.
  • Re: AIUTO! Problemi con invio form - javascript e PHP

    japanskull ha scritto:


    Ho trovato un esempio un pochino più semplice online e con le varie accortezze del caso ho fatto un copia e incolla.
    Pessimo metodo. Ma chi si accontenta gode.
Devi accedere o registrarti per scrivere nel forum
3 risposte