PHP Version 7.2

All WYSIWYG Web Builder support issues that are not covered in the forums below.
Forum rules
PLEASE READ THE FORUM RULES BEFORE YOU POST:
viewtopic.php?f=12&t=1901

MUST READ:
http://www.wysiwygwebbuilder.com/getting_started.html
WYSIWYG Web Builder FAQ
User avatar
Pablo
 
Posts: 18412
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: PHP Version 7.2

Post by Pablo » Mon May 20, 2019 2:23 pm

PHP has always been case sensitive and so it the built-in form script.

Note that I cannot see what the PHP code of the test page is, so I cannot say anything meaningful about why the forms work or not.
What is the PHP code of showvars2.php?

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 2:40 pm

Hi Pablo

Here's the HTML code of Showvars2.php:

Code: Select all

<?php

// ini_set("sendmail_from", "info@supake.co.uk");
ini_set("sendmail_from", "xxxxx@yyyyy.zzzzz");

$thevariables = $_POST['thevariables'];
$from = $_POST['from'];
$to = $_POST['to'];

$Subject = "Variable testing";
$EmailBody = "Variable tests - the body - " ."\n\n" ."External Domain Used" ."\n\n" .$thevariables ."\n\n";
$EmailBody .= "FROM FIELD Specified was: " .$from ."\n\n";
$EmailBody .= "TO FIELD Specified was: " .$to;

// $Headers = "From: info@supake.co.uk";
$Headers = "From: " .$from;

mail($to,$Subject,$EmailBody,$Headers);

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Page</title>
<link href="PHPMailIssues.css" rel="stylesheet">
<link href="showvars2.css" rel="stylesheet">
</head>
<body>
<div id="wb_Text1" style="position:absolute;left:27px;top:28px;width:900px;height:54px;z-index:0;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Nothing to see here - the email has been sent using PHP and not the built-in form.<br><br>NOTE: '$To' and '$FROM' are variably coded to an email address taken from the form.</span></div>
</body>
</html>
and the code of the forms page:

Code: Select all

<?php
function ValidateEmail($email)
{
   $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
   return preg_match($pattern, $email);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['formid']) && $_POST['formid'] == 'form1')
{
   $mailto = 'info@supake.co.uk';
   $mailfrom = 'info@supake.co.uk';
   $subject = 'Test Bog Standard';
   $message = 'Values submitted from web site form:';
   $success_url = '#';
   $error_url = '#';
   $error = '';
   $eol = "\n";
   $boundary = md5(uniqid(time()));

   $header  = 'From: '.$mailfrom.$eol;
   $header .= 'Reply-To: '.$mailfrom.$eol;
   $header .= 'MIME-Version: 1.0'.$eol;
   $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;
   $header .= 'X-Mailer: PHP v'.phpversion().$eol;
   if (!ValidateEmail($mailfrom))
   {
      $error .= "The specified email address is invalid!\n<br>";
   }

   if (!empty($error))
   {
      $errorcode = file_get_contents($error_url);
      $replace = "##error##";
      $errorcode = str_replace($replace, $error, $errorcode);
      echo $errorcode;
      exit;
   }

   $internalfields = array ("submit", "reset", "send", "filesize", "formid", "captcha_code", "recaptcha_challenge_field", "recaptcha_response_field", "g-recaptcha-response");
   $message .= $eol;
   $logdata = '';
   foreach ($_POST as $key => $value)
   {
      if (!in_array(strtolower($key), $internalfields))
      {
         if (!is_array($value))
         {
            $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
         }
         else
         {
            $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
         }
      }
   }
   $body  = 'This is a multi-part message in MIME format.'.$eol.$eol;
   $body .= '--'.$boundary.$eol;
   $body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
   $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
   $body .= $eol.stripslashes($message).$eol;
   if (!empty($_FILES))
   {
       foreach ($_FILES as $key => $value)
       {
          if ($_FILES[$key]['error'] == 0)
          {
             $body .= '--'.$boundary.$eol;
             $body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol;
             $body .= 'Content-Transfer-Encoding: base64'.$eol;
             $body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol;
             $body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol;
          }
      }
   }
   $body .= '--'.$boundary.'--'.$eol;
   if ($mailto != '')
   {
      mail($mailto, $subject, $body, $header);
   }
   header('Location: '.$success_url);
   exit;
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>bogstandardemail</title>
<link href="PHPMailIssues.css" rel="stylesheet">
<link href="index.css" rel="stylesheet">
<script>
function ValidatebogstandardmailForm()
{
   var regexp;
   var Editbox1 = document.getElementById('Editbox1');
   if (!(Editbox1.disabled || Editbox1.style.display === 'none' || Editbox1.style.visibility === 'hidden'))
   {
      regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
      if (Editbox1.value.length != 0 && !regexp.test(Editbox1.value))
      {
         alert("Please enter a valid email address.");
         Editbox1.focus();
         return false;
      }
   }
   var Editbox2 = document.getElementById('Editbox2');
   if (!(Editbox2.disabled || Editbox2.style.display === 'none' || Editbox2.style.visibility === 'hidden'))
   {
      regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
      if (Editbox2.value.length != 0 && !regexp.test(Editbox2.value))
      {
         alert("Please enter a valid email address.");
         Editbox2.focus();
         return false;
      }
   }
   return true;
}
</script>
<script>
function ValidatebogstandardmailForm()
{
   var regexp;
   var Editbox7 = document.getElementById('Editbox7');
   if (!(Editbox7.disabled || Editbox7.style.display === 'none' || Editbox7.style.visibility === 'hidden'))
   {
      regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
      if (Editbox7.value.length != 0 && !regexp.test(Editbox7.value))
      {
         alert("Please enter a valid email address.");
         Editbox7.focus();
         return false;
      }
   }
   var Editbox8 = document.getElementById('Editbox8');
   if (!(Editbox8.disabled || Editbox8.style.display === 'none' || Editbox8.style.visibility === 'hidden'))
   {
      regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
      if (Editbox8.value.length != 0 && !regexp.test(Editbox8.value))
      {
         alert("Please enter a valid email address.");
         Editbox8.focus();
         return false;
      }
   }
   return true;
}
</script>
</head>
<body>
<div id="wb_Form1" style="position:absolute;left:51px;top:22px;width:447px;height:193px;z-index:15;">
<form name="bogstandardmailForm" method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" id="Form1" onsubmit="return ValidatebogstandardmailForm()">
<input type="hidden" name="formid" value="form1">
<input type="text" id="Editbox1" style="position:absolute;left:189px;top:17px;width:216px;height:18px;z-index:0;" name="from" value="" spellcheck="false">
<div id="wb_Text1" style="position:absolute;left:71px;top:22px;width:56px;height:18px;z-index:1;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">From</span></div>
<div id="wb_Text2" style="position:absolute;left:71px;top:61px;width:56px;height:18px;z-index:2;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">To</span></div>
<div id="wb_Text3" style="position:absolute;left:71px;top:95px;width:90px;height:18px;z-index:3;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Message</span></div>
<input type="text" id="Editbox2" style="position:absolute;left:189px;top:56px;width:216px;height:18px;z-index:4;" name="to" value="" spellcheck="false">
<input type="text" id="Editbox3" style="position:absolute;left:189px;top:95px;width:216px;height:18px;z-index:5;" name="message" value="Hello World - Auto Form" spellcheck="false">
<input type="submit" id="Button1" name="Send" value="Submit" style="position:absolute;left:312px;top:139px;width:96px;height:25px;z-index:6;">
</form>
</div>
<div id="wb_Text4" style="position:absolute;left:641px;top:164px;width:124px;height:18px;z-index:16;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">V1.17</span></div>
<div id="wb_Text9" style="position:absolute;left:540px;top:65px;width:249px;height:54px;z-index:17;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Note the <strong>From </strong>and <strong>To </strong>not used here as the Built-in code has that defined</span></div>
<div id="wb_Text11" style="position:absolute;left:548px;top:365px;width:249px;height:72px;z-index:18;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Note the<strong> Built-In form </strong>is <strong>not </strong>used here as the php code is used to process the form data and sends it to showvars2.php</span></div>
<div id="wb_Form3" style="position:absolute;left:51px;top:244px;width:447px;height:312px;z-index:19;">
<form name="bogstandardmailForm" method="post" action="showvars2.php" id="Form3" onsubmit="return ValidatebogstandardmailForm()">
<div id="wb_Text12" style="position:absolute;left:37px;top:40px;width:335px;height:18px;z-index:7;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Variables to send (some text):</span></div>
<input type="submit" id="Button3" name="Send" value="Submit" style="position:absolute;left:319px;top:236px;width:96px;height:25px;z-index:8;">
<input type="text" id="Editbox7" style="position:absolute;left:182px;top:87px;width:216px;height:18px;z-index:9;" name="from" value="" spellcheck="false">
<div id="wb_Text13" style="position:absolute;left:51px;top:141px;width:97px;height:18px;z-index:10;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">To</span></div>
<div id="wb_Text14" style="position:absolute;left:44px;top:87px;width:56px;height:18px;z-index:11;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">From</span></div>
<input type="text" id="Editbox8" style="position:absolute;left:182px;top:136px;width:216px;height:18px;z-index:12;" name="to" value="" spellcheck="false">
<input type="text" id="Editbox9" style="position:absolute;left:182px;top:188px;width:216px;height:18px;z-index:13;" name="thevariables" value="Hello World - PHP Coded" spellcheck="false">
<div id="wb_Text15" style="position:absolute;left:51px;top:193px;width:90px;height:18px;z-index:14;">
<span style="color:#000000;font-family:Verdana;font-size:15px;">Message</span></div>
</form>
</div>
</body>
</html>
Cheers
Last edited by Starb7 on Mon May 20, 2019 5:39 pm, edited 3 times in total.

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 2:46 pm

p.s. any of the
// ini_set("sendmail_from", "info@supake.co.uk");
work. Also, are you able to send to and from a selection of email addresses using the form (to eliminate security issues)? Cheers

User avatar
Pablo
 
Posts: 18412
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: PHP Version 7.2

Post by Pablo » Mon May 20, 2019 2:56 pm

Do you mean that it also works when you remove this?

Code: Select all

ini_set("sendmail_from", "clerk@sutton-cum-duckmanton.org.uk");
Note that you can define the 'from' address in the form's properties.

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 3:02 pm

I hadn't tried commenting that out so just gave it a go and yes, if you comment it out, it still works as expected. :) Cheers

Update: I have noticed that I can only send from (to anywhere) Fasthosts based email adders to there is some check going on...

p.p.s. having a lots of problems with the forum page, keeps timing out and very slow to load.

User avatar
Pablo
 
Posts: 18412
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: PHP Version 7.2

Post by Pablo » Mon May 20, 2019 3:13 pm

Update: I have noticed that I can only send from (to anywhere) Fasthosts based email adders to there is some check going on...
Do you get the same error if you use another email address?

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 3:22 pm

Yes, I get
PHPWarning: mail(): SMTP server response: 554 5.7.1 <info@supake.co.uk>: Recipient address rejected: Access denied in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSZ\952\1944952\user\htdocs\bogstandardmail\showvars2.php on line 18
Line 18 being: mail($to,$Subject,$EmailBody,$Headers);

Cheers

User avatar
Pablo
 
Posts: 18412
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: PHP Version 7.2

Post by Pablo » Mon May 20, 2019 3:27 pm

So, this confirm that it's a server issue?

As mentioned you can set the 'from' address in the form's properties.

Image

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 3:38 pm

No, not really. I knew that you could do that (and did try that) in the Built-in forms but it doesn't work. I have just edited and added it back in to verify and it still fails. Cheers

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 3:54 pm

Well here's an oddity, if you go into the settings and choose 'Mail Engine' and select 'mail' the built-in form works as expected, why would that be? Cheers

EDIT: its gets better - it appears I can actually 'send from' any email address, even fictitious email addresses, eg foo@bar.com will send email. Give it a go, the bottom form... does it work for you?

User avatar
Pablo
 
Posts: 18412
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: PHP Version 7.2

Post by Pablo » Mon May 20, 2019 5:06 pm

No, not really.
Yes, it does!
The script does not care which email address you use, so somewhere on the server sode there is a filter that checks which email address issue as 'from'.

[quotwhy would that be?[/quote]
Because it uses php mailer instead of standard PHP mail. This works different and may bypass some server specific configuration.

User avatar
Starb7
 
 
Posts: 228
Joined: Tue Sep 05, 2006 12:35 pm
Location: Derbyshire

Re: PHP Version 7.2

Post by Starb7 » Mon May 20, 2019 5:32 pm

Sorry, when you put
So, this confirm that it's a server issue?
, with a ? mark, I thought you were asking me. In any case, as I can either use 'hand coded' or 'PHP Mailer' for built-in forms, it's a win-win for me. Many thanks for your help and patience and as always, a top service. Thanks.

Post Reply