66423

Contact form doesn't send if there is a space in name

Question:

I am reviewing a contact form for a website, but right now it doesn't want to send if in the sender name (like "John Smith") have space, it only sends if it's just a single word ("John"). Where could the problem be, I don't know anything about .php, but I am finding my way around.

EDIT: Ok, here is the code

<?php function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $type = "plain", $cc = "", $bcc = "") { require_once "class.phpmailer.php"; $mail = new PHPMailer(); $mail->IsMAIL(); $mail->CharSet = "UTF-8"; $mail->From = $fromemail; $mail->FromName = $fromname; $mail->AddAddress($toemail, $toname); $mail->AddReplyTo($fromemail, $fromname); if ($cc) { $cc = explode(", ", $cc); foreach ($cc as $ccaddress) { $mail->AddCC($ccaddress); } } if ($bcc) { $bcc = explode(", ", $bcc); foreach ($bcc as $bccaddress) { $mail->AddBCC($bccaddress); } } if ($type == "plain") { $mail->IsHTML(false); } else { $mail->IsHTML(true); $mail->Subject = $subject; $mail->Body = $message; if(!$mail->Send()) { $mail->ErrorInfo; $mail->ClearAllRecipients(); $mail->ClearReplyTos(); return false; } else { $mail->ClearAllRecipients(); $mail->ClearReplyTos(); return true; } } } function descript($text, $striptags = true) { // Convert problematic ascii characters to their true values $search = array("40","41","58","65","66","67","68","69","70", "71","72","73","74","75","76","77","78","79","80","81", "82","83","84","85","86","87","88","89","90","97","98", "99","100","101","102","103","104","105","106","107", "108","109","110","111","112","113","114","115","116", "117","118","119","120","121","122" ); $replace = array("(",")",":","a","b","c","d","e","f","g","h", "i","j","k","l","m","n","o","p","q","r","s","t","u", "v","w","x","y","z","a","b","c","d","e","f","g","h", "i","j","k","l","m","n","o","p","q","r","s","t","u", "v","w","x","y","z" ); $entities = count($search); for ($i=0; $i < $entities; $i++) { $text = preg_replace("#(&\#)(0*".$search[$i]."+);*#si", $replace[$i], $text); } $text = preg_replace('#(&\#x)([0-9A-F]+);*#si', "", $text); $text = preg_replace('#(<[^>]+[/\"\'\s])(onmouseover|onmousedown|onmouseup|onmouseout|onmousemove|ondblclick|onfocus|onload|xmlns)[^>]*>#iU', ">", $text); $text = preg_replace('#([a-z]*)=([\`\'\"]*)script:#iU', '$1=$2nojscript...', $text); $text = preg_replace('#([a-z]*)=([\`\'\"]*)javascript:#iU', '$1=$2nojavascript...', $text); $text = preg_replace('#([a-z]*)=([\'\"]*)vbscript:#iU', '$1=$2novbscript...', $text); $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU', "$1>", $text); $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU', "$1>", $text); if ($striptags) { do { $thistext = $text; $text = preg_replace('#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i', "", $text); } while ($thistext != $text); } return $text; } $name=0; $telefon=0; $sender=0; $syobshtenie=0; $ename=0; $etelefon=0; $esender=0; $esyobshtenie=0; if($_POST['name']){ $name = "Запитване от ".$_POST['name']; } else { $name=1; $ename=1; } if($_POST['sender']){ $sender = $_POST['sender']; if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $sender)) { $sender="Email"; } } else { $sender=1; $esender=1; } if($_POST['telefon']){ $telefon = $_POST['telefon']; } if($_POST['zapitvane']){ $zapitvane = $_POST['zapitvane']; $syobshtenie = "

Запитване от ".$_POST['name']." <br />Email: ".$sender." <br />Телефон: ".$telefon."

".$zapitvane; } else { $syobshtenie=1; $esyobshtenie=1; } if($name=="Име"){ $ename=1; } if($telefon=="Телефон"){ $etelefon=1; } if($sender=="Email"){ $esender=1; } if($syobshtenie=="Моля, въведете съобщение до нас"){ $esyobshtenie=1; } if($ename==0 && $esender==0 && $esyobshtenie==0 && $etelefon==0){ sendemail("VillaDes", "info@konsumator.com", "", $sender, $name, $syobshtenie, "", "", ""); echo ' <div class="active-error"" style="margin-top:5px;">Съобщението Ви беше изпратено.<br /><br />Приятен ден!</div> <script> document.getElementById("contact").reset(); </script>'; } else { echo ' <div class="border-15"></div><div class="active-error"><b>Моля, въведете:</b></div><div class="border-8"></div>'; if($ename==1) { echo '<div class="active-error">Име</div><div class="border-8"></div>'; } if($esender==1) { echo '<div class="active-error">Е-поща</div><div class="border-8"></div>'; } if($etelefon==1) { echo '<div class="active-error">Телефон</div><div class="border-8"></div>'; } if($esyobshtenie==1) { echo '<div class="active-error">Запитване</div>'; } } echo '<script type="text/javascript"> $(document).ready(function() { $("#close-email").click(function () { $("#mailresult").hide("fast"); } ); }); </script>'; ?>

Answer1:

In the code you post you call:

sendemail("VillaDes", "info@konsumator.com", "", $sender, $name, $syobshtenie, "", "", "");

Your sendemail function accepts:

sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message

So $fromname will be used as the subject of your e-mail and formname will be empty. class.phpmailer.php should handle subjects with spaces, so i don't think this will be the problem. When you use $name as $fromemail spaces will be a problem maybe. (name without spaces can be a local mailbox??).

Beside all this you don't need the class.phpmailer.php to send your email. Use the default mail function: <a href="http://php.net/manual/en/function.mail.php" rel="nofollow">http://php.net/manual/en/function.mail.php</a>

$headers = 'From: "'.$fromemail.'" <'.$fromname.'>' . "\r\n" . 'Reply-To: "'.$fromname.'" <'.$fromemail.'>' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail('"VillaDes" <info@konsumator.com>',$syobshtenie, "", $headers);

Recommend

  • Rails: NameError: uninitialized constant OrderItem
  • After creating table it shows this Array ( [0] => 00000 [1] => [2] => )
  • Can not send mail through PHPMailer
  • Using SQL with IBM_DB connector in Python
  • How to use PHPMailer without composer?
  • PHP to connect to Hotmail to send email?
  • Error authenticating using LinkedIn iOS SDK
  • Angular page doesn't refresh after data is added or removed
  • How to map Request parameter in Spring?
  • Python getting common name from URL using ssl.getpeercert()
  • Alternative To body {overflow:scroll;} That Will Prevent Page Jostling/Wriggling?
  • Play WS (2.2.1): post/put large request
  • C# - Is there a limit to the size of an httpWebRequest stream?
  • Updating server-side rendering client-side
  • Fill an image in a square container while keeping aspect ratio
  • Where to put my custom functions in Wordpress?
  • Which linear programming package should I use for high numbers of constraints and “warm starts” [clo
  • Can I have the cursor start on a particular column by default in jqgrid's edit mode?
  • 'TypeError' while using NSGA2 to solve Multi-objective prob. from pyopt-sparse in OpenMDAO
  • How to limit post in wp_query
  • Websockets service method fails during R startup
  • Web-crawler for facebook in python
  • Warning: Can't call setState (or forceUpdate) on an unmounted component
  • How to pass list parameters for each object using Spring MVC?
  • bootstrap to use multiple ng-app
  • Comma separated Values
  • How to delete a row from a dynamic generate table using jquery?
  • trying to dynamically update Highchart column chart but series undefined
  • How to set the response of a form post action to a iframe source?
  • python draw pie shapes with colour filled
  • Are Kotlin's Float, Int etc optimised to built-in types in the JVM? [duplicate]
  • sending mail using smtp is too slow
  • Running Map reduces the dimensions of the matrices
  • Reading document lines to the user (python)
  • Binding checkboxes to object values in AngularJs
  • How to Embed XSL into XML
  • java string with new operator and a literal
  • Net Present Value in Excel for Grouped Recurring CF
  • jQuery Masonry / Isotope and fluid images: Momentary overlap on window resize
  • How to load view controller without button in storyboard?