Re: Class code refuses to run

From: Date: Tue, 10 Aug 2021 19:37:48 +0000
Subject: Re: Class code refuses to run
References: 1 2 3 4 5 6 7  Groups: php.general 
Request: Send a blank email to php-general+get-327628@lists.php.net to get a copy of this message
> On Aug 10, 2021, at 11:31 AM, Pascal Schorde <pascal.schorde@gmail.com> wrote: > > You can inspect the maybe faulty response coming from php by using the web dev console (Ctrl + > i). In the network tab is the async call from ajax with its response. Or did you do this already? > > Additionally xdebug dumps php errors in a little nicer format. Thank you; Yes I use the console constantly. Yes I already looked at the network tab listing for the specific img src request. It shows 200 and 'waiting'. The browser apparently got nothing and gave up. JK > > JEFFRY KILLEN <jekillen@prodigy.net> schrieb am Di., 10. Aug. 2021, 20:13: > > > > On Aug 10, 2021, at 10:19 AM, Ashley Sheridan <ash@ashleysheridan.co.uk> wrote: > > > > > > On 10/08/2021 17:43, JEFFRY KILLEN wrote: > >> > >>> On Aug 10, 2021, at 12:12 AM, Ashley Sheridan <ash@ashleysheridan.co.uk> > >>> wrote: > >>> > >>> > >>> > >>> On 10 August 2021 01:36:01 BST, JEFFRY KILLEN <jekillen@prodigy.net> wrote: > >>>> Hello; > >>>> > >>>> I have a web page I am developing. > >>>> > >>>> It has images embedded in it. > >>>> > >>>> The src attribute is ./?tag=guitar&amp;type=img > >>>> > >>>> The php code from the html file is: > >>>> </php > >>>> // preliminary irrelevant code > >>>> require_once('php/imageServer.php'); > >>>> > >>>> if($_GET['tag']) > >>>> { > >>>> //// file_put_contents('test.txt', "Hello?...img..."); > >>>> /* > >>>> the following was working before I expanded it out to running code as written. > >>>> it still should work. > >>>> (new _IMG_SERV())->serv($_GET); > >>>> */ > >>>> $_x = new _IMG_SERV(); > >>>> $_x->serv($_GET); > >>>> } > >>>> ?> > >>>> > >>>> the serv method in the class is > >>>> > >>>> public function serv($_a) > >>>> { > >>>> file_put_contents('test.txt', > >>>> "Hello?...img..."); > >>>> switch($_a['type']) > >>>> { > >>>> case 'img': > >>>> header('Content-Type: image/jpeg'); > >>>> > >>>> imagedestroy(imagejpeg(imagecreatefromjpeg(self::$_imgDir.self::$_imgIndex[$_a['tag']]))); > >>>> break; > >>>> case 'txt': > >>>> > >>>> if(file_exists(self::$_imgDir.self::$_txtIndex[$_a['tag']]['img'])) > >>>> { > >>>> header('Content-Type: image/jpeg'); > >>>> > >>>> imagedestroy(imagejpeg(imagecreatefromjpeg(self::$_txtIndex[$_a['tag']]['img']))); > >>>> } > >>>> else > >>>> { > >>>> /* > >>>> create text image, save for future ref and serve > >>>> */ > >>>> } > >>>> break; > >>>> } > >>>> } > >>>> > >>>> This HAS all been working up to a point. BUT the serv function is now refusing > >>>> to run. > >>>> There are no php, javascript or html related errors. > >>>> > >>>> You will see 'file_put_contents('test.txt', > >>>> "Hello?...img...");' > >>>> Because this is an async request for a resource I cannot use print or echo to > >>>> sample > >>>> code progress. So I have strings written to a text file. The call to > >>>> file_put_contents('test.txt', "Hello?...img..."); > >>>> in the top of the serv method is not running. It IS running in the top of the > >>>> get conditional in the index page > >>>> if I uncomment it. > >>>> > >>>> Does anyone know why apache and/or php, and/or possibly the browser would fail > >>>> to serve a resource > >>>> like this when it so far has been working most of the day today? I cannot see > >>>> anything I have done wrong. > >>>> data: > >>>> MacOS High Sierra, apache on localhost > >>>> Thank you for time and attention; > >>>> JK > >>> You say there are no errors, but presumably that just means none being displayed? > >>> Have you looked at the error logs? > >>> > >>> Also, the imagedestroy calls here aren't really necessary, as you should be > >>> exiting immediately after outputting the image data. > >> I don't have my server set up to log errors. It is a dev server on local host. > >> I use Firefox as dev/test browser. It has dev tools, one of which is network. > >> The requests for image resources represented by the get queries are returning > >> 200, ok. and the image is not displayed. Only the alt string is displayed. > >> > >> However I did make some subtile changes just before the problem appeared. I am going > >> to roll back those > >> changes and see what happens. The changes should not be invalid. It just amounts to > >> when the php script > >> has a full version of resource path. > >>>> self::$_imgDir.self::$_imgIndex[$_a['tag']] > >> Where self::@_imgDir is a string representing the directory location > >> and self::$_imgIndex[$_a['tag']] is the file name. > >> I used to have the complete path/file name in self::$_imgIndex. > >> self::$_imgIndex is set with the contents of an external php script that is required > >> by the class __construct method. > >> > >> Thank you for time and attention > >> JK > > > > Turn on error logs locally, they're absolutely essential for local development. > > There's also a pretty good case to turn on the display of errors locally too (which is > > different from error logging to a log file). > > > > As for the image, you say you see the alt text, but you shouldn't see that if > > you're requesting only the image, as the alt attribute it part of the HTML, and you can't > > send mixed content via the same request with PHP that I'm aware of. > > > > -- > > Ashley Sheridan > > https://www.ashleysheridan.co.uk > > I do get php error displayed locally. But not for async requests in the usual manner. > > The alt attribute of the img tag is html. It is what is displayed if the image does > not arrive at the browser, as in case the server cannot find the file. Or in this > case the image is not being sent. The image is not being sent because the > serv method is being blocked from executing. > > if the php interpreter is doing background security audits why did it take so > many test runs for it to decide the code was insecure or otherwise objectionable? > > I did roll back the subtile changes mentioned in my earlier response with no improvement. > > When I work with 'ajax' async requests often errors generated by php are included > in the response and are not displayed in lew of the html. So logging would > capture these errors? > > Thank you for your responses; > JK

« previous php.general (#327628) next »