Bug #18408 [Com]: printer_list crashes PHP

From: Date: Mon, 13 Aug 2018 07:27:33 +0000
Subject: Bug #18408 [Com]: printer_list crashes PHP
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-216754@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=18408&edit=1

 ID:                 18408
 Comment by:         meansakti at gmail dot com
 Reported by:        info at Frenck dot nl
 Summary:            printer_list crashes PHP
 Status:             Wont fix
 Type:               Bug
 Package:            Unknown/Other Function
 Operating System:   WinXP
 PHP Version:        4.2.1
 Block user comment: N
 Private report:     N

 New Comment:

Epson error code 0xEa is a most common error with Epson printer If you are an Epson Printer and
facing this issue contact service provider team as soon as possible and solved this issue.
For more information about this error visit this link http://printertechsupportnumbers.com/blog/how-to-fix-epson-error-code-0xea/


Previous Comments:
------------------------------------------------------------------------
[2014-04-17 07:04:54] lefteris-l at idata dot gr

Hello,

To whoever might still be using this i've come across the same issue.

For some reason using 

$printer_list = printer_list(PRINTER_ENUM_LOCAL); TWICE in the same page

seemed to be working fine for me and showing up all printers EXCEPT when i would add more lines to
the code it would crash.
And by lines i mean a couple of more characters in an HTML text could be enough. (Not even php
code).

Anyway I then moved from Mysql to Mysqli and boom.
Stopped working. I played around some more time and now i use

$printer_list = printer_list(PRINTER_ENUM_LOCAL |PRINTER_ENUM_SHARED);

once again TWICE. Problem is now it only shows me 1-2 printers.
I can access DESCRIPTION and COMMENT just fine the same way i'm accessing the NAME
    foreach ($printer_list as $printerAr)
    {
    	$name = $printerAr["NAME"];
    ... }
Hope it might save some time someone else in the future.
Lefteris

------------------------------------------------------------------------
[2013-05-14 14:10:41] fziu02 at gmail dot com

You can use AJAX, and everything works fine...

PHP // lsprt.php
<?php
    $getprt=printer_list( PRINTER_ENUM_LOCAL );
    echo json_encode($getprt);
?>

HTML
<script>
$.post('lsprt.php', function(data) {
	value = JSON.parse(data);
	for (val in value) {
		$('#asd').append('<option value="'+ value[val]['NAME']
+'">'+ 
value[val]['NAME'] +'</option>');
	}
});
</script>

<select id="asd"></select>

------------------------------------------------------------------------
[2003-06-14 11:43:52] saidyjade at hotmail dot com

windows nt40 sp6
windows 2000 pro sp3 + pre-sp4 updates @ 20030609

PHP 4.3.2 / Apache 1.3.27 / php4apache.dll 
extension: php_printer.dll

The extension does appear to be in the category "who cares".

only crashes only the array keys "DESCRIPTION" and "COMMENT"

$list_printers = printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED);

// get the name of the first returned printer
$this_printer = $list_printers[0]["NAME"];

// open a connection to your printer
$my_printer = printer_open($this_printer);

.. blah blah


The output of var_dump (as an example)

var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );

array(1) {
  [0]=> array(3) {
  ["NAME"]=> string(14) "Canon BJC-4550"
  ["DESCRIPTION"]=> string(30) "Canon BJC-4550,Canon BJC-4550,"
  ["COMMENT"]=> string(0) "This is my funky printer!" } }


As you can see var_dump (under variable functions in the manual) shows and/or retrieves the corrent
information but if you try to place into a variable or read the variable it crashes with an "I
am a windows product and cannot read the memory space correctly cause I sux" message.

so as long as you do not get the comment or description it will list your printers.

if you wish to specify a network printer you need lots more slashes.. example:
\\\\my-network-computer\\my-printer-share

cher cher

------------------------------------------------------------------------
[2002-12-19 23:17:17] iliaa@php.net

Appears to be an abandoned PECL extension.

------------------------------------------------------------------------
[2002-07-18 05:57:50] info at Frenck dot nl

Hi,

I'm having troubles using the printer_list function.
When I try to get a list of all the printers installed
on the machine where the script is running, php crashes.

When I use this code, PHP crashes:

  printer_list(PRINTER_ENUM_LOCAL);

When I use this codes, PHP does not crash, but it returns
a empty array.

  printer_list(PRINTER_ENUM_LOCAL|PRINTER_ENUM_SHARED);

  printer_list(PRINTER_ENUM_SHARED);

When I accessing the script with my browser (trough apache) apache crashes, when I running it as an
command line script, PHP.exe crashes.

Altough, printing to the default printer with the example listed at 'http://www.php.net/manual/en/function.printer-draw-text.php'
works fine.

I'm running PHP 4.2.1 (in apache it's the NON-CGI version running) on windows XP
Professional Dutch edition.

Microsoft Visual C++ tells me there is an access violation in php.exe (php4ts.dll)

Is there a workaround for this problem?
If you need more information, than feel free to contact me.

With kind regards,

Franck Nijhof

PS: Sorry for my bad english.

------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=18408&edit=1


Thread (7 messages)

« previous php.bugs (#216754) next »