PHP 4.0 Bug #6650 Updated: ldap_add() working in PHP3, broken in PHP4

From: Date: Mon, 11 Sep 2000 19:02:45 +0000
Subject: PHP 4.0 Bug #6650 Updated: ldap_add() working in PHP3, broken in PHP4
Groups: php.dev 
Request: Send a blank email to php-dev+get-32883@lists.php.net to get a copy of this message
ID: 6650 User Update by: tengel@fluid.com Status: Open Bug Type: LDAP related Description: ldap_add() working in PHP3, broken in PHP4 Yes! That worked (--with-ldap=/u01/app/oracle/product/8.1.6), it is now behaving normally. Doing a "ldd" on libphp3.so and libphp4.so show that they're linked to different parts of my Oracle installation, so something changed in the linker chain in PHP4 to introduce this problem. So, is this still considered a bug, or is it just one of those things for the FAQ/Knowledgebase? It *seems* like I should be able to specify an alternate LDAP while compiling Oracle - I personally want to compile/link against OpenLDAP, as I plan on upgrading to the 2.0 release. Previous Comments: --------------------------------------------------------------------------- [2000-09-10 18:27:42] venaas@php.net I can't tell you exactly why it happens with PHP 4 and not 3, but I think this is because Oracle 8.1.6 has an LDAP library conflicting with the OpenLDAP one. You may want to try using the Oracle library instead, simply use --with-ldap=/u01/app/oracle/product/8.1.6 --------------------------------------------------------------------------- [2000-09-10 15:56:09] tengel@fluid.com Solaris 2.7, BerkelyDB 2.7.7, OpenLDAP 1.2.11, Apache 1.3.12. A test script (below) when run with PHP4 (4.0.2) fails with a "Document contains no data"; it works perfectly fine in PHP3 (3.0.16). Nothing is changed, simply change the Apache config file to enable 3 or 4 and test: <?php $SERVER = "localhost"; $ROOTDN = "cn=manager, dc=fluid, dc=com"; $ROOTPW = "[MY SECRET PASSWORD]"; $ldap=ldap_connect($SERVER); if($ldap) { if(ldap_bind($ldap, $ROOTDN, $ROOTPW)) { $entry["uid"]="tuser"; $entry["cn"]="Test User"; $entry["sn"]="User"; $entry["objectClass"]="person"; $dn="uid=tuser, ou=Employees, dc=fluid, dc=com"; if(ldap_add($ldap, $dn, $entry)) { print("<H3>Entry Added!</H3>"); } else { print("<H3>Add Failed!</H3>"); $error=ldap_error($ldap); print("<BR>($error)"); } print("</body></html>"); } @ldap_close($ldap); } else { print("Connection Failed!"); $error=ldap_error($ldap); print("<BR>($error)"); } ?> Configuration params for all tools: BerkleyDB 2.7.7: ../dist/configure OpenLDAP 1.2.11: env ac_cv_func_pthread_create=no ol_cv_kthread_flag=no ol_cv_pthread_flag=no ol_cv_pthreads_flag=no ol_cv_thread_flag=no CPPFLAGS="-I/usr/local/BerkeleyDB/include" LDFLAGS="-L/usr/local/BerkeleyDB/lib" ./configure --with-ldbm-api=db2 Apache 1.3.12: ./configure --with-layout=Apache --prefix=/usr/local/dbdev/apache --enable-module=most --enable-shared=max PHP 4.0.2 ./configure --enable-ftp --disable-short-tags --with-ldap=/usr/local --with-apxs=/usr/local/dbdev/apache/bin/apxs --with-oci8=/u01/app/oracle/product/8.1.6 --with-exec-dir=/usr/local/dbdev/php/bin --with-config-file-path=/usr/local/dbdev/php/lib --with-db2=/usr/local/BerkeleyDB The php.ini file used is the default php.ini-dist, it's never been touched. -- Troy Engel tengel@fluid.com --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=6650

« previous php.dev (#32883) next »