La mia società di web hosting dice che c’è qualcosa di sbagliato nel codice PHP

Questo è il PHP che suppone per connettersi a una pagina contact.html e quindi una pagina di ringraziamento dopo in seguito. Volevo solo un modulo di contatto. non riconoscerà i file come .php.Io l’ho salvato in quel modo.

<?php $name = $_POST['name']; $email = $_POST['email']; $number = $_POST['number']; $message = $_POST['message']; $from = 'From:you'; $to = 'me@hotmail.com'; $subject = 'Hello'; $human = $_POST['human']; $body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message"; if ($_POST['submit']) { if ($name != '' && $email != '') { if ($human == '4') { if (mail ($to, $subject, $body, $from)) { echo '

Your message has been sent!

'; } else { echo '

Something went wrong, go back and try again!

'; } } else if ($_POST['submit'] && $human != '4') { echo '

You answered the anti-spam question incorrectly!

'; } } else { echo '

You need to fill in all required fields!!

'; } header("Location: thanks.html"); } ?>

Supponendo che desideri eseguire questo da un modulo, dovrai impostare il tag del modulo HTML come segue:

 

Dovresti quindi rinominare contact.html in contact.php (qualsiasi editor di testo dovrebbe essere in grado di farlo facilmente).

Infine, stai usando la funzione header() di PHP, che causerà errori se hai un output sul browser prima che venga chiamato. Ciò include l’uso della struttura echo di PHP. Il tuo file contact.php dovrebbe apparire così (e essere nella stessa directory del tuo file HTML che contiene il modulo):

 < ?php $name = $_POST['name']; $email = $_POST['email']; $number = $_POST['number']; $message = $_POST['message']; $from = 'From:you'; $to = 'me@hotmail.com'; $subject = 'Hello'; $human = $_POST['human']; $body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message"; if ($_POST['submit']) { if ($name != '' && $email != '') { if ($human == '4') { if (mail ($to, $subject, $body, $from)) { header("Location: thanks.html"); } else { echo '

Something went wrong, go back and try again!'; } } else { echo '

You answered the anti-spam question incorrectly!

'; } } else { echo '

You need to fill in all required fields!!

'; } } ?>

Nota: ho risolto un po ‘il layout e ho modificato alcune delle condizioni che stavate utilizzando. Il primo elseif era effettivamente ridondante e un else sufficiente.

Hai scritto che si tratta di un file denominato contact.html o che cerchi di connetterti a contact.html : è corretto? Piuttosto dovresti usare contact.php .

PHP non verrà eseguito nelle estensioni di file .html senza configurazione del server (ad esempio, una direttiva in un file .htaccess se si sta utilizzando Apache).

Poiché sembra che tu abbia un account di hosting web gestito, potresti non essere in grado di impostarlo da solo. Se ti piacerebbe, ti suggerirei di chiedere al tuo fornitore di hosting. In caso contrario, la modifica del nome del file con estensione .php dovrebbe funzionare.

Prova a controllare se php funziona:

 < ?php phpinfo(); ?> 

Se non vedi output, il tuo codice php non verrà analizzato, forse perché il tuo sito di contatto ha un finale * .html, apparentemente ha bisogno di un file * .php che termina, per essere analizzato,

se vuoi usare l’estensione ‘* .html’, devi aggiungere alcune linee al tuo webserver – file di configurazione,

dai uno sguardo a questo: forse una soluzione