nanostudio-org / nano_photos_provider2

PHP photos provider for nanogallery2
https://nanophotosprovider2.nanostudio.org/
48 stars 12 forks source link

Not compatible with PHP 8 #45

Closed Talkrabb closed 3 years ago

Talkrabb commented 3 years ago

This page using nano_photos_provider2-1.2.0 works fine with PHP 7.4 but crashes with PHP 8.0. http://www.aw6.de/php8/index.php

Error Message 1:

Fatal error: Array and string offset access syntax with curly braces is no longer supported in /homepages/30/d471536554/htdocs/aw6/nano_photos_provider2/nano_photos_provider2.encoding.php on line 196

After fixing nano_photos_provider2.encoding.php by copying the latest original code from https://github.com/neitanod/forceutf8/blob/master/src/ForceUTF8/Encoding.php a second error came up:

Error Message 2:

nanogallery2: Could not retrieve nanoPhotosProvider2 data. Error: error, Internal Server Error readyState=4 getResponseHeader=function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")} getAllResponseHeaders=function(){return h?p:null} setRequestHeader=function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this} overrideMimeType=function(e){return null==h&&(v.mimeType=e),this} statusCode=function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this} abort=function(e){var t=e||u;return c&&c.abort(t),l(0,t),this} state=function(){return i} always=function(){return s.done(arguments).fail(arguments),this} catch=function(e){return a.then(null,e)} pipe=function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):rt[0]+"With"})}),i=null}).promise()} then=function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(ipromise=function(e){return null!=e?S.extend(e,a):a} progress=function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this} done=function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this} fail=function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this} responseText= status=500 statusText=Internal Server Error

URL:/nano_photos_provider2/nano_photos_provider2.php?albumID=Album%20A&hxs=200&wxs=auto&hsm=200&wsm=auto&hme=200&wme=auto&hla=200&wla=auto&hxl=200&wxl=auto [php8]

That's where I gave up...

Kris-B commented 3 years ago

It seems that PHP 8 brings some breaking changes, especially with the GD library. I need to check this deeper.

Kris-B commented 3 years ago

I think I found the problem: can you please check v1.2.1 with PHP 8?

Talkrabb commented 3 years ago

Great! PHP8 works now fine: http://www.aw6.de/php8/index.php

Un grand merci!