How to Properly Read Colon Tags (<p:id>) in google_merchant.xml in PHP
How to read xml with tags that have a colon <p:id>, like in Google Merchant upload. Using registerXPathNamespace or referencing the tag directly.
When synchronizing 1s with the site, to upload any information, you should resort to authorization. In order not to throw various unnecessary garbage on the site (at best).
So, after reading the literature, I realized that 1c exchanges headers with the site and prescribes PHP_AUTH_USER and PHP_AUTH_PW to it. But in my case, it was not possible to catch them in $_SERVER (maybe I didn’t set some settings in 1s).
Initially, it was planned to catch data after authorization like this :
<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];
$this->login = isset($_SERVER['PHP_AUTH_USER']) ? trim($_SERVER['PHP_AUTH_USER']) : null;
$this->password = isset($_SERVER['PHP_AUTH_PW']) ? trim($_SERVER['PHP_AUTH_PW']) : null;
if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq['user']) {
return true;
}
But 1s did not give anything or the server could not accept this data (could not find the reason).

My solution was to redirect HTTP:Authorization . I have used mod_rewrite on apache .
There must be a line in .htaccess :
RewriteEngine on
which enables the conversion mechanism in mod_rewrite.
In .htaccess, after all the rules, the RewriteRule was added :
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
REMOTE_USER - indicates that {HTTP:Authorization} will be written to $_SERVER['REDIRECT_REMOTE_USER'] .
The data arrived in base64.
var_dump($_SERVER['REDIRECT_REMOTE_USER']);
["REDIRECT_REMOTE_USER"]=>
string(18) "Basic dGVzdDp0ZXN0"
I did a little trick with them :
<?php
$dbSeq = ['user' => 'test', 'pass' => 'test'];
if ($_SERVER["REDIRECT_REMOTE_USER"]) {
$info = base64_decode(end(explode(' ',$_SERVER["REDIRECT_REMOTE_USER"])));
$info = explode(':', $info);
$this->login = $info[0]; // Test login arrived
$this->password = $info[1]; // Test password arrived
}
if ($this->password == $dbSeq['pass'] && $this->login == $dbSeq[ 'user']) {
return true;
}
How to read xml with tags that have a colon <p:id>, like in Google Merchant upload. Using registerXPathNamespace or referencing the tag directly.
Parsing JWT HS256 encryption, decrypting JWT HS256, comparing sha256 signatures for information integrity.
Let's look at fixing the disappearance of spaces before variables in the old version of Twig on php 7.4 without updating the version.
Consider the possibility of quickly creating a CSV file with automatic file download. Consider the formation, separators and header for the ability to download the file.
Latest templates from ImageCMS 4.12, authorization is required to download.