WordPress + Elementor critical error due to PHP limits on OVH shared hosting (tried .htaccess, wp-config, cron – no effect) [closed]

I am hosting a WordPress site (with Elementor) on OVH shared hosting. After installing my Elementor-compatible theme, the editor does not load and I only see:

There has been a critical error on this website.
Please check your site admin email inbox for instructions.

When I checked the server requirements from the template, I noticed some PHP settings are lower than recommended:

  • PHP version: 8.4.7 (works, but Elementor officially supports up to 8.2)

  • memory_limit: 512M ✅ (OK)

  • post_max_size: 130M ❌ (should be 256M)

  • upload_max_filesize: 128M ❌ (should be 256M)

  • max_execution_time: 165 ❌ (should be 300)

  • max_input_vars: 16000 ✅ (OK)


What I tried

  1. Edited .htaccess in /www/ root:

    php_value memory_limit 512M
    php_value post_max_size 256M
    php_value upload_max_filesize 256M
    php_value max_execution_time 300
    php_value max_input_vars 16000
    
    

    → No effect.

  2. Edited wp-config.php:

    @ini_set( 'memory_limit', '512M' );
    @ini_set( 'post_max_size', '256M' );
    @ini_set( 'upload_max_filesize', '256M' );
    @ini_set( 'max_execution_time', '300' );
    @ini_set( 'max_input_vars', '16000' );
    
    

    → No effect.

  3. Tried using cron in OVH Manager to force wp-cron.php.
    → Still same error when opening Elementor.

  4. I also tried switching PHP version inside OVH (.ovhconfig), but Elementor still crashes with the critical error.


Question

  • On OVH shared hosting, is it possible at all to increase post_max_size, upload_max_filesize, and max_execution_time to meet Elementor’s requirements?

  • Or do I need to upgrade to a different OVH plan (e.g. Pro / Performance) to get these PHP settings?

Any experience with Elementor + OVH hosting would be appreciated.

Is it allowed to create inheritors from Aggregates in DDD?

There is a PHP project with DDD approach, i.e. class entities have AggregateRoot.

The main classes of entities inherit from AggregateRoot and are implemented in the logic of the object.

Is it allowed within the DDD agreement to create inheritors from classes that implement the logic of the object, if these inheritors will have slightly different logic in the class?

For example

abstract class User extends AggregateRoot
class Customer extends User
class Employee extends User

or

class Order extends AggregateRoot
class RegularOrder extends Order
class SubscriptionOrder extends Order

Are inheritors allowed? In which cases?

.htaccess not working on LiteSpeed server worked fine on apache [closed]

I am retry to rewrite index.php to home and details.php?id=$ to product/$

Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]




RewriteRule ^product/([0-9a-zA-Z-_]+) details?id=$1 


RewriteRule ^special/([0-9a-zA-Z-_]+) details2?id=$1 




Can someone please assists am not sure what i did wrong thanks

MYSQL stored procedure called in PHP loop – only first iteration works [duplicate]

PHP version: 7.4.3
MySQL version: 8.0.42

I have a simple stored procedure which selects a single column from a table, which is called inside a loop from my PHP. The first iteration works fine. The second iteration fails. I have logged the SQL statements which my PHP builds, and when I run the statement for the second iteration in MySQL Workbench, it works as expected.

This is the stored procedure in question:

DELIMITER $$
USE `Valor`$$
CREATE DEFINER=`sean`@`%` PROCEDURE `Critter_GetType`(IN crtr VARCHAR(35))
BEGIN
    SELECT  `type` FROM Valor.CreatureStats WHERE creature = crtr LIMIT 1 ;
END$$

DELIMITER ;
;

This is my PHP code calling it:

$sql = "CALL Valor.Critter_GetType('$cc');"; 
error_log("sql = $sql");
$typeresult = NULL;
$typeresult = $conn->query($sql);
error_log("num rows = $typeresult->num_rows");
while($typerow = $typeresult->fetch_assoc()){
    $type = $typerow['type'];    
}

I set $typeresult = NULL because that was a suggestion I found for a similar problem, but it doesn’t help. The logged SQL works as expected when I call it from outside of the PHP script. The error stops the script, so when I say that the second iteration fails, I’m not implying that there is a third iteration which runs OK.

The first sign that something is wrong is the message

Trying to get property ‘num_rows’ of non-object” in the line “error_log(“num rows = $typeresult->num_rows”)”.

This message occurs, whether or not I have the $typeresult = NULL; line. Then, of course, the “while” loop is where the script-killing error occurs.

This is the first time I’ve used a stored procedure with PHP. I don’t know if that’s relevant, but I have dozens of other SQL calls from inside loops in my PHP which do not have this problem.

How do I add another array entry to an array? [duplicate]

Here’s the code that works.

$options = [
        'title' => $this->name,
        'options' => [
          [
            'id' => 'home_delivery',
            'icon' => $this->settings['icon'],
            'name' => 'Delivery Fee',
            'description' => 'weight:'.$weight,
            'fields' => $note,
            'cost' => $price1,
            'tax_class_id' => $this->settings['tax_class_id'],
          ],
          [
            'id' => 'option_2',
            'icon' => $this->settings['icon'],
            'name' => $cparray[0],
            'description' => 'This is the description for option 2',
            'fields' => '',
            'cost' => $price2,
            'tax_class_id' => $this->settings['tax_class_id'],
          ],
        ],
      ];

The number of different options (different id’s) varies, so I just want to add another id with its variables afterwards, like maybe add this if there’s a 3rd option:


          [
            'id' => 'option_3',
            'icon' => $this->settings['icon'],
            'name' => $cparray[1],
            'description' => 'This is the description for option 3',
            'fields' => '',
            'cost' => $price3,
            'tax_class_id' => $this->settings['tax_class_id'],
          ],

I’m thinking something like this afterwards, but it’s not quite right:

      $options['options'] += ['id' => 'option_3','icon' => $this->settings['icon'],'name' => $cparray[4],'description' => 'This is the description for option 3','fields' => '','cost' => $price2,'tax_class_id' => $this->settings['tax_class_id'],];

I’m finding several options of adding to an array. I’m obviously not doing something right because I don’t fully understand the array construction being made originally. I think it’s creating an array 2 levels deep and I need to add an element to the inner one.

How to speed up Mailchimp campaign/recipient/activity import in PHP (currently ~4 hours) [closed]

I’m writing a PHP script that fetches all campaigns, recipients, and their activities from the Mailchimp API into my application.

Mailchimp’s API limits me to 1,000 records per request, so my script paginates and inserts everything into MySQL in chunks. Even with chunking and INSERT IGNORE bulk inserts, the full run still takes about 4 hours for large lists.

Example snippet of what I’m doing:

$offset = 0;
$count = 1000;
do {
    $email_activities = $MailChimp->get("reports/$campaign_id/email-activity", [
        'offset' => $offset,
        'count'  => $count,
    ]);

    // bulk insert recipients + activities
    // ...
    
    $offset += $count;
} while (count($email_activities['emails']) === $count);

This works but is extremely slow for campaigns with hundreds of thousands of recipients/activities.

Question:
What are effective ways to improve the performance of importing this data?

  • Are there Mailchimp features (like webhooks) I should use instead of repeatedly polling the API?

  • Are there PHP/MySQL optimizations (e.g., LOAD DATA INFILE, parallel jobs, queue/worker model) that can handle millions of rows faster?

Any best practices or architectural suggestions for large Mailchimp data imports would be appreciated.

php CI 3 custom library => passing parameter to someclass

I am really new to Codeigniter, and just learning from scratch. I use CI3.

in native PHP I have a function like this
( to calculate the number of days between two dates) :

function dateDiff($date1, $date2){
$d1 = date_create($date1); $d2 = date_create($date2);
$diff = date_diff($d1,$d2);
$result =  $diff->format("%a");
return $result;
}

I have read the manual of CI3 & tried but no success.

this is my trial code

defined('BASEPATH') OR exit('No direct script access allowed');



class DateDiff { 
public $date1 = ''; public $date2 = '';
public function __construct($params)
{
    $d1 = date_create($this->date1); $d2 = date_create($this->date2);
    $diff = date_diff($d1,$d2);
    $result =  $diff->format("%a");
    return $result;
} }

then I call it in other controller, like this :

$NumberOfDays = $this->load->library('datediff', ['2025-01-01','2025-02-02']); echo $NumberOfDays;

Got error.

how to create such a function in CI3 custom library so I can call it in every controller

updating database where had the same name but when it has new name will make new data [duplicate]

I want to update my data at database where condition that they had same name they will update the stock not making new data.

But when U run this program nothing happen and I got no error.

Please help me to fix it.

This is my query code to update data while button clicked.

if (isset($_POST['tambah'])) {
        $namaBarang = $_POST['barang'];
        $stok = $_POST['stok'];

        //cek barang sudah ada atau belum
        $result = mysqli_query($conn,"SELECT*FROM barang WHERE name ='$namaBarang'");
        if (mysqli_fetch_assoc($result)) {
            mysqli_query($conn,"UPDATE barang SET stock = stock + $stok WHERE name = $namaBarang");
        } else{
            mysqli_query($conn,"INSERT INTO barang VALUES ('','$namaBarang',$stok)");
        }

Woocommerce Product Variant [closed]

I am not getting solution,in wocommerce site i have addred product like HOODIES which has two sizes Youth|Adult Youth Size has two color option White|Grey and Adult has White|Grey|Red I want is as user select Youth Sizefrom drop down only White| Grey appears and when select Adult all White|Grey|Red appear. I don’t want to use any plugin. Can it be possible ?

Moving uploaded file error becasue of FakePath [closed]

Im trying to add user profile photo, but the problem is moving the uploaded file to the target directory because of the fakepath.

since the this is fakepath and temp location is (C:fakepathroundtableandchairs.jpg), moving the uploaded file will return error as well.

what i did is, i have change the line 106 and i also removed moving uploaded file section and the return is success.

I already did a research about the fakepath it is because of the browser security.

is there any way to get the temp path of the file in localhost (not live)? i just want to test it first in my computer (localhost). or to get this [name][tmp_name][size][type] using the code?

public function add(array $data)
{

    if ($errors = $this->registrator->validateUser($data, false)) {
    Response::validationError($errors);
    }

    $allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];

    $profilepic = (string)$data['profile_image'];

    // Handle secure profile image upload
    $targetDirectory = 'c:/Apache24/AdminLTE/dist/assets/img/usersprofile/';
    $imageFileType = strtolower(pathinfo($profilepic, PATHINFO_EXTENSION));

    // Generate a unique filename: complete_name_uniqueID.extension
    $safeName = preg_replace('/[^A-Za-z0-9]/', '_', $data['username']); // Remove special chars
    $uniqueID = uniqid();
    $imageName = "{$safeName}_{$uniqueID}.{$imageFileType}";
    $targetFile = $targetDirectory . $imageName;

    $profilepicsize = getimagesize($profilepic);
    // Validate image file size
    if ($profilepicsize > 5000000) {
        return "File size exceeds the 2MB limit.";
    }

    //Validate Mime Types
    if (!in_array($imageFileType, $allowedTypes)) {
                return ['success' => false, 'message' => 'Invalid file type. Only JPG, JPEG, PNG, GIF allowed.'];
            }

    // Prevent executable file uploads
    if (preg_match('/.(php|html|htm|js|exe|sh)$/i', $profilepic[0])) {
        return "Invalid file type.";
    }

    // Ensure upload directory exists
    if (!is_dir($targetDirectory)) {
        if (!mkdir($targetDirectory, 0755, true)) {
            return "Failed to create upload directory.";
        }
    }

    // Move the uploaded file
    if (!move_uploaded_file($profilepicpic, $targetFile)) {
        return "Error uploading the image.";
    }

    // Insert data into the database
    $this->db->insert('users', [
            'email' => $data['email'],
            'username' => $data['username'],
            'password' => $this->hashPassword($data['password']),
            'confirmed' => 'Y',
            'confirmation_key' => '',
            'register_date' => date('Y-m-d H:i:s'),
            'profile_image' => $imageName
        ]);

    $this->db->insert('user_details', [
        'user_id' => $this->db->lastInsertId(),
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'phone' => $data['phone'],
        'address' => $data['address']
    ]);

        Response::success(["message" => trans("user_added_successfully")]);
}

Warning: getimagesize(roundtableandchairs.jpg): Failed to open stream: No such file or directory in C:Apache24htdocsAdminLTEdistScriptUser.php on line 106

line 106 :

$profilepicsize = getimagesize($profilepic); 

Replacement of line 106

$profilepicsize = pathinfo($profilepic, PATHINFO_DIRNAME);

Is it possible to pass recaptcha v2 using php-webdriver? [closed]

I am trying to fill a web form to send SMS using php-webdriver on a site that uses recaptcha v2. My PHP script also start Selenium standalone server from bat files: selenium-server-hub.bat and selenium-server-node.bat.

selenium-server-hub.bat

chcp 65001
chdir C:inetpubwwwrootmedserviceswwwrootseleniumserver
"C:Program FilesJavajdk-24binjava.exe" -jar "selenium-server-4.35.0.jar" hub

selenium-server-node.bat

chcp 65001
chdir C:inetpubwwwrootmedserviceswwwrootseleniumserver
"C:Program FilesJavajdk-24binjava.exe" -Dwebdriver.edge.driver=msedgedriver.exe -jar "selenium-server-4.35.0.jar" node --config "NodeWebDriver.json"

NodeWebDriver.json

{
  "capabilities": [
    {
      "browserName": "MicrosoftEdge",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver",
      "platform": "WINDOWS"
    },
    {
      "browserName": "firefox",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver",
      "platform": "WINDOWS"
    },
    {
      "browserName": "chrome",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver",
      "platform": "WINDOWS"
    },
    {
      "browserName": "internet explorer",
      "maxInstances": 1,
      "seleniumProtocol": "WebDriver",
      "platform": "WINDOWS"
    }
  ],
  "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
  "maxSession": 5,
  "port": 5555,
  "register": true,
  "registerCycle": 5000,
  "hub": "http://Администратор:[email protected]:4444",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets": [],
  "withoutServlets": [],
  "custom": {}
}

PHP script, which fills a web form and attempts to pass recaptcha

<?php
require_once "C:\Program Files\IIS Express\PHP\v8.3\lib\php-webdriver\vendor\autoload.php";

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverWebDriverBy;

function CheckIfSeleniumServerStarted(string $role) : bool
{
    $isStarted = false;
    $handle = curl_init();
    if($handle instanceof CurlHandle)
    {
        curl_setopt_array($handle,
        [
            CURLOPT_URL => $role === "node" ? "http://Администратор:7565@localhost:5555" : "http://Администратор:7565@localhost:4444",
            CURLOPT_HTTPHEADER => [ "Connection: keep-alive", "Accept: */*" ],
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CONNECTTIMEOUT => 60,
            CURLOPT_TIMEOUT => 60,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_USERAGENT => $_SERVER["HTTP_USER_AGENT"],
            CURLOPT_SSL_VERIFYHOST => FALSE,
            CURLOPT_SSL_VERIFYPEER => FALSE
        ]);
        $result = curl_exec($handle);
        $isStarted = is_string($result) && ($statusCode = curl_getinfo($handle, CURLINFO_HTTP_CODE)) >= 200 && $statusCode < 300;
        curl_close($handle);
    }
    return $isStarted;
}

ini_set("display_errors", true);
header('Content-Type: text/html; charset=utf-8');
$log_filename = str_replace("php", "log", __FILE__);
$log_handle = fopen($log_filename, "w+");
if($log_handle !== false)
{
    set_error_handler(fn(int $errno, string $errstr, string $errfile = null, int $errline = 0) =>
        error_log("Error: {$errno} in {$errfile}, line no {$errline}n{$errstr}", 3, $log_filename), E_ALL);
}
// Start Selenium server
$cmdPath = "C:\Windows\system32\cmd.exe";
$workingDir = __DIR__ . "\selenium\server";
$shell = null;
if(!CheckIfSeleniumServerStarted("hub"))
{
    $command = "{$cmdPath} /C {$workingDir}\selenium-server-hub.bat 2>&1 &";
    $shell = new COM("WScript.Shell");
    $shell->Run($command, 1, false);
    sleep(1);
}
if(!CheckIfSeleniumServerStarted("node"))
{
    $command = "{$cmdPath} /C {$workingDir}\selenium-server-node.bat 2>&1 &";
    $shell = $shell ?? new COM("WScript.Shell");
    $shell->Run($command, 1, false);
    sleep(1);
}
$classRemoteWebDriver = "\Facebook\WebDriver\Remote\RemoteWebDriver";
$classRemoteWebElement = "\Facebook\WebDriver\Remote\RemoteWebElement";
$pageHtml = "";
$edgeOptions = ["args" => [ "--ignore-certificate-errors"]];
$capabilities = DesiredCapabilities::microsoftEdge();
$capabilities->setCapability("ms:edgeOptions", $edgeOptions);
$host = "http://localhost:4444";
$webDriver = RemoteWebDriver::create($host, $capabilities);
if($webDriver instanceof $classRemoteWebDriver)
{
    $webDriver->get("https://bomgovka.ru");
    $elemNumber = $webDriver->findElement(WebDriverBy::xpath("//input[@id='number']"));
    $elemMessage = $webDriver->findElement(WebDriverBy::xpath("//textarea[@id='message']"));
    if($elemNumber instanceof $classRemoteWebElement && $elemMessage instanceof $classRemoteWebElement)
    {
        $phoneNumber = "XXXXXXXXXXX";
        $elemNumber->sendKeys($phoneNumber);
        sleep(3);
        $elemMessage->sendKeys("Test message");
        sleep(3);
        $element = $webDriver->findElement(WebDriverBy::xpath("//iframe[starts-with(@name, 'a-') and starts-with(@src, 'https://www.google.com/recaptcha')]"));
        error_log("Recaptcha iframe is " . ($element instanceof $classRemoteWebElement ? "found" : "not found"), 3, $log_filename);
        if($element instanceof $classRemoteWebElement)
        {
            $webDriver = $webDriver->switchTo()->frame($element);
            error_log("Switch to recaptcha iframe is " . (!($webDriver instanceof $classRemoteWebDriver) ? "not " : "") . "completed.", 3, $log_filename);
            if($webDriver instanceof $classRemoteWebDriver)
            {
                $element = $webDriver->wait(25)->until(FacebookWebDriverWebDriverExpectedCondition::elementToBeClickable(WebDriverBy::xpath("//div[@class = 'recaptcha-checkbox-border']")));
                error_log("Recaptcha checkbox is " . ($element instanceof $classRemoteWebElement ? "found and clickable" : "not found or not clickable"), 3, $log_filename);
                if($element instanceof $classRemoteWebElement)
                {
                    $element->click();
                    $pageHtml = $webDriver->getPageSource();
                    $webDriver = $webDriver->switchTo()->defaultContent();
                    error_log("Switch to default content is " . (!($webDriver instanceof $classRemoteWebDriver) ? "not " : "") . "completed.", 3, $log_filename);
                    if($webDriver instanceof $classRemoteWebDriver)
                    {
                        $elemButton = $webDriver->wait(25)->until(FacebookWebDriverWebDriverExpectedCondition::elementToBeClickable(WebDriverBy::xpath("//input[@name='contact-submit']")));
                        error_log("Submit button is " . ($elemButton instanceof $classRemoteWebElement ? "found and clickable." : "not found or not clickable."), 3, $log_filename);
                        if($elemButton instanceof $classRemoteWebElement)
                        {
                            $elemButton->click();
                            sleep(3);
                            $pageHtml = $webDriver->getPageSource();
                        }
                    }
                }
            }
        }
    }
    $webDriver->quit();
}
echo $pageHtml;
if(is_resource($log_handle))
{
    fclose($log_handle);
}
?>

But as a result of the script executing, recaptcha is not passed and site returns “Error. Please pass the ‘I’m not a robot’ check”.
How to pass recaptcha using php-webdriver correctly or it’s impossible using only php-webdriver?

Why my browsers do not read php files any more [duplicate]

I run php files and echo, nothing comes out but I saw the whole php get commented out in the console,

I try to run php program, but I get nothing in return on browser rather I got this error message in the console

(This page is in Quirks Mode. Page layout may be impacted. For
Standards Mode use “<!DOCTYPE html>”.)

I will like to know if there are possible ways to get out of it

522 connection time out on cloudflair for php laravel and node

I’m running a PHP 8.1 Laravel application on an Apache server. The same server also runs a Node.js API (separate subdomain). The site is behind Cloudflare.

The issue:

The site randomly goes down for 10–20 minutes, then comes back without me doing anything.

During downtime, the Laravel site is inaccessible and Node.js APIs return Cloudflare 522 (connection timeout).

Sometimes the APIs still work when tested directly with Postman, but the Laravel frontend is down.

I’ve confirmed this with Uptime Robot monitoring, which shows repeated outages.

Laravel logs during downtime:

[2025-09-01 04:27:35] production.ERROR: Product Detail Error: cURL
error 56: Recv failure: Connection reset by peer for
http://ip-api.com/json/52.167.144.238

[2025-09-01 04:28:39] production.ERROR: API Request Error: Server
error: POST https://node.byyu.com/api/oneapiseconds resulted in a 522
response: error code: 522

Apache (cPanel) error logs show: [Mon Sep 01 02:19:50.127766 2025]
[authz_core:error] [client 52.71.218.25:19567] AH01630: client denied
by server configuration: /home/byyu/public_html/app/Http/error_log

[Sun Aug 31 22:23:46.573272 2025] [autoindex:error] [client
87.58.67.112:63776] AH01276: Cannot serve directory /home/byyu/public_html/admin/images/: No matching DirectoryIndex
found, and server-generated directory index forbidden

What I’ve observed:

Short outages (~5 min) sometimes produce no Laravel logs.

Longer outages (~10–20 min) always produce the above errors.

The website recovers automatically after some minutes, without restarting services.

My questions:

What could cause Laravel + Apache + Node.js to become unreachable for 10–20 minutes and then recover automatically?

Are the cURL error 56 and Cloudflare 522 hints of a resource bottleneck (CPU/memory), or a configuration issue with Apache/PHP-FPM?

What’s the best way to diagnose this kind of intermittent downtime on a shared server (cPanel)?

Any advice on debugging steps, or configuration changes I should check (Apache KeepAlive, PHP-FPM workers, Node process manager, etc.), would be appreciated.

Environment:

PHP 8.1, Laravel, Apache (cPanel hosting) Node.js backend on same server (node.byyu.com) Cloudflare in front of both domains

I tried changing the apis mentioned above which are node apis and optimized the api queries. Also i break out the api on dashboard again a node api the dashboard api was previously gaetting all data in sigle api i break down that api in one and two part first bings only banners, categories data and other brings the products.

After upgrading from PHP 8.3 to 8.4 I get “Maximum call stack size … reached. Infinite recursion?” [closed]

After upgrading my project from PHP 8.3 to PHP 8.4, I started getting the following error:

Maximum call stack size of 8339456 bytes (zend.max_allowed_stack_size – zend.reserved_stack_size) reached. Infinite recursion?

This happens when trying to sync data with Google Cloud Logging through gRPC.
Here is a snippet of the stack trace:

/workspace/vendor/google/gax/src/CredentialsWrapper.php:244
/workspace/vendor/grpc/grpc/src/lib/UnaryCall.php:45
/workspace/vendor/grpc/grpc/src/lib/BaseStub.php:295
/workspace/vendor/google/gax/src/Transport/GrpcTransport.php:267
...
/workspace/vendor/monolog/monolog/src/Monolog/Logger.php:391
/workspace/vendor/laravel/framework/src/Illuminate/Log/Logger.php:183

Environment:

Laravel project
Google Cloud Logging SDK (google/gax, google/cloud-logging),

gRPC extension enabled,

Works fine with PHP 8.3, only fails on PHP 8.4,

Question:

Has anyone encountered this issue after upgrading to PHP 8.4?

Is this a known incompatibility between PHP 8.4 and gRPC/Google Cloud libraries?

Any workaround or configuration change (e.g., zend.max_allowed_stack_size) that helps, or should I downgrade back to PHP 8.3 until support is fixed?

Different Web Authentication Flow [closed]

I read something a few months ago about an Authentication flow, where the server would validate the credentials and store something (token ? id ?) directly in the request’s headers.

The client would then just do normal requests without specifying any header and the token/id/hash would already be in the header for the server to validate (or it might already be validated).

Of course, I forgot about it for a while and now that I want to learn more I can’t find anything about it.

I’ve been crawling the OAuth website and other available documentations but can’t seem to find this one…

I don’t think it’s the Session Token Flow or other Authorization Code Flow but again, I’m not sure of what I read.

Does it ring a bell to you or did I invent this memory of mine ?

Thank you !