Simple PHP soumettre le formulaire ne fonctionne pas
Juste faire un simple soumettre le formulaire et ne peut pas sembler obtenir ce travail.
Il n'a même pas de rapport d'erreurs, ce qui est surprenant.
Vérifié le php.ini et que tout semble bien aussi.
HTML:
<form id="submit-form" action="receiving.php" method="POST">
<h3>Submit a Link</h3>
<fieldset>
<table>
<tr>
<td><label for="name">You</label></td>
<td><input id="name" name="name" type="text" placeholder="Your Twitter or Blog ect." /></td>
</tr>
<tr>
<td><label for="submit-links">Link(s)</label></td>
<td><input id="sumbit-links" name="submit-links" type="text" placeholder="" required="" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="SUBMIT" /></td>
</tr>
</table>
</fieldset>
</form>
receiving.php:
<?php
error_reporting(-1);
$name = $_POST['name'];
$submit-links = $_POST['submit-links'];
if(isset($_POST['submit'])){
$from_add = "[email protected]";
$to_add = "[email protected]";
$subject = "Your Subject Name";
$message = "Name:$name \n Sites: $submit-links";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion()
if(mail($to_add,$subject,$message,$headers)){
$msg = "Mail sent";
}
}
print "<p>Thanks $name</p>";
?>
Toute aide serait grandement appréciée 🙂
Qu'avez-vous fait pour résoudre ce problème?
Vous êtes également en manque une fermeture semi-virgule après
Et ce
Il devrait avoir signalé l'erreur repéré par Jeremy. Essayez d'afficher la source pour voir si l'erreur se cache?
Remplacer $de soumettre des liens = $_POST['submit-liens']; $soumettre->liens = $_POST['submit-liens'];
Vous êtes également en manque une fermeture semi-virgule après
'X-Mailer: PHP/' . phpversion()
qui, par la manière, vous ne devriez pas l'utiliser (pour des raisons de sécurité), mais... si vous voulez absolument l'utiliser, ajouter comme ce 'X-Mailer: PHP/' . phpversion();
Et ce
$msg = "Mail sent";
ne sont pas imprimer quoi que ce soit, btw. Vous obtiendrez un écran vide.Il devrait avoir signalé l'erreur repéré par Jeremy. Essayez d'afficher la source pour voir si l'erreur se cache?
Remplacer $de soumettre des liens = $_POST['submit-liens']; $soumettre->liens = $_POST['submit-liens'];
OriginalL'auteur mildrenben | 2013-12-31
Vous devez vous connecter pour publier un commentaire.
Il y avait quelques choses de mal avec votre formulaire, que je testé avant de poster cette réponse.
Comme
Jeremy Miller
l'a souligné dans sa réponse (+1
Jeremy btw), à l'aide de traits d'union dans une variable n'est pas valide, utilisez des traits de soulignement à la place.Vous manque aussi une fermeture semi-virgule après
'X-Mailer: PHP/' . phpversion()
qui, par la manière, vous ne devriez pas l'utiliser (pour des raisons de sécurité), mais... si vous voulez absolument l'utiliser, ajouter comme ce'X-Mailer: PHP/' . phpversion();
- Consulter MODIFIER (suggérant l'utilisation) ci-dessous.Ce
$msg = "Mail sent";
ne sont pas imprimer un message "Mail sent
" après le succès de soumettre, puisque vous êtes seulement de l'affectation de la variable de texte; vous avez besoin deecho it
laquelle j'ai ajouté ci-dessous; ce n'est pas une erreur, mais pourquoi l'avoir si vous n'allez pas l'utiliser. (clin d'oeil).Formulaire HTML
PHP
MODIFIER (suggérant l'utilisation)
Je vous suggère d'utiliser le script PHP ci, depuis votre présent conditionnel va jeter les erreurs suivantes, si le fichier PHP est accessible directement, ce qui pourrait arriver.
Plus, à l'aide de
'X-Mailer: PHP/' . phpversion()
permet aux gens de savoir quelle version de PHP que vous utilisez.Je l'ai sur la bonne autorité, que l'utilisation de ce est un trou de sécurité. Son nom m'échappe en ce moment, mais je vais l'ajouter une fois que je ne m'en souviens.
J'ai mis vos variables à l'intérieur de votre
if(isset($_POST['submit']))
instruction conditionnelle.Vous êtes les bienvenus. Comme pour l'impression sans les entrées de formulaire, je doute que qui peut être fait, depuis
$name
a besoin d'une référence de la forme pour commencer. Pourtant, ce que je pense que vous pouvez vous demander, maintenant que j'ai re-lu votre commentaire, c'est que si vous voulez que le formulaire de rester intacte après que l'utilisateur a rempli le formulaire et cliqué sur le bouton soumettre, alors vous aurez besoin de mettre votre PHP en premier, puis votre formulaire/HTML code sous cette (non mélangés) et l'utilisationaction=""
au lieu de ce que vous avez maintenant, si c'est ce que tu veux dire. @mildrenbenJe viens de le dire pour qu'il reste sur la même page. Lorsque vous cliquez sur envoyer, pour remplacer les entrées d'un formulaire par un "merci", $nom n'est pas une nécessité. Ce n'est pas que les grandes d'un accord, s'il ne peut pas être fait, je vais juste le style de la page PHP et avoir un lien de retourner à l'index. @Fred -ii-
Ah ok, je vois maintenant. Vous aurez besoin d'utiliser Ajax pour que, assez sûr. @mildrenben
Ouais quelqu'un d'autre a mentionné AJAX sur Reddit. Ne vous inquiétez pas, merci pour votre aide.
OriginalL'auteur Funk Forty Niner
$submit-links
n'est pas un nom de variable valide. Commutateur de toutes les instances de$submit_links
Merci, je pensais que ça serait quelque chose de simple 🙂
OriginalL'auteur Sylas Seabrook
L'action peut-être tort.
Par exemple, si votre
htaccess
redirige vershttps.www
au lieu dehttp
, vous ne verrez pas$_POST
dans l'exemple suivant :mais cela ne fonctionne pas si vous utilisez
OriginalL'auteur olga