PHP ldap_search against DS 5.2

We are switching from NIS to LDAP using Sun One Directory server 5.2.
I have to convert all our web PHP login scripts that are NIS based to LDAP.
I'm having difficult time just trying to do simple ldap_search, always coming up with "No such object in test.php on line 19. Below is the php code:
<?php
$info = array("userPassword","homeDirectory");
$rdn = "cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu";
$rdnPass = "password";
$basedn = "ou=People,cn=engr,cn=colostate,cn=edu";
$filter = "(uid=joeblow)";
$ds = ldap_connect("ldap.server.ip.here");
if (!$ds) {
print "System Error";
exit(0);
$bind = ldap_bind($ds, $rdn, $rdnPass);
if (!$bind) {
print "System bind error";
exit(0);
$sr = ldap_search($ds, $basedn, $filter, $info);
if (!$sr) {
print "Ldap_search failed\n";
else {
$info = ldap_get_entries($ds, $sr);
print $info["count"]." entries returned\n";
ldap_close($ds);
?>
Here are logs for the DS server:
[27/Apr/2007:12:46:06 -0600] conn=108 op=-1 msgId=-1 - fd=38 slot=38 LDAP connection from 129.82.xxx.xx to 129.82.xxx.xxx
[27/Apr/2007:12:46:06 -0600] conn=108 op=0 msgId=1 - BIND dn="cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu" method=128 version=2
[27/Apr/2007:12:46:06 -0600] conn=108 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu"
[27/Apr/2007:12:46:06 -0600] conn=108 op=1 msgId=2 - SRCH base="ou=people,cn=engr,cn=colostate,cn=edu" scope=2 filter="(uid=joeblow)" attrs="userPassword homeDirectory"
[27/Apr/2007:12:46:06 -0600] conn=108 op=1 msgId=2 - RESULT err=32 tag=101 nentries=0 etime=0
[27/Apr/2007:12:46:06 -0600] conn=108 op=2 msgId=3 - UNBIND
[27/Apr/2007:12:46:06 -0600] conn=108 op=2 msgId=-1 - closing - U1
[27/Apr/2007:12:46:06 -0600] conn=108 op=-1 msgId=-1 - closed.
I've tried compiling PHP against openLDAP and the native ldap libraries on Solaris 10 in /usr/lib. But get same error regardless. Any ideas what I'm doing wrong in the code?
And yes, uid joeblow does exist in LDAP.
client1 % ldaplist -l passwd joeblow
dn: uid=joeblow,ou=people,dc=engr,dc=colostate,dc=edu
objectClass: posixAccount
objectClass: shadowAccount
objectClass: account
objectClass: top
uid: joeblow
cn: joeblow
uidNumber: 902
gidNumber: 66
gecos: Average User test acct,,,
homeDirectory: /top/students/UNGRAD/ES/joeblow/home
loginShell: /bin/csh
Thanks...

Well this is what I've found:
client1 % ldaplist -lv passwd joeblow
+++ database=passwd
+++ filter=(&(objectclass=posixaccount)(uid=joeblow))
+++ template for merging SSD filter=(&(%s)(uid=joeblow))
dn: uid=joeblow,ou=people,dc=engr,dc=colostate,dc=edu
objectClass: posixAccount
objectClass: shadowAccount
objectClass: account
objectClass: top
uid: joeblow
cn: joeblow
uidNumber: 902
gidNumber: 66
gecos: Average User test acct,,,
homeDirectory: /top/students/UNGRAD/ES/joeblow/home
loginShell: /bin/csh
userPassword: {crypt}BaGUMuiwsdfdsf
Log file:
[30/Apr/2007:09:30:15 -0600] conn=12153 op=-1 msgId=-1 - fd=56 slot=56 LDAPS connection from 129.82.232.129 to 129.82.224.33
[30/Apr/2007:09:30:15 -0600] conn=12153 op=-1 msgId=-1 - SSL 128-bit RC4
[30/Apr/2007:09:30:15 -0600] conn=12153 op=0 msgId=1 - BIND dn="cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu" method=128 version=3
[30/Apr/2007:09:30:15 -0600] conn=12153 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu"
[30/Apr/2007:09:30:15 -0600] conn=12153 op=1 msgId=2 - SRCH base="ou=people,dc=engr,dc=colostate,dc=edu" scope=1 filter="(&(objectClass=posixaccount)(uid=joeblow))" attrs=ALL
[30/Apr/2007:09:30:15 -0600] conn=12153 op=1 msgId=2 - RESULT err=0 tag=101 nentries=1 etime=0
[30/Apr/2007:09:30:15 -0600] conn=12153 op=2 msgId=3 - UNBIND
[30/Apr/2007:09:30:15 -0600] conn=12153 op=2 msgId=-1 - closing - U1
[30/Apr/2007:09:30:15 -0600] conn=12153 op=-1 msgId=-1 - closed.
So okay, try the ldapsearch command:
client1 % ldapsearch -h ldap2 -b "ou=People,cn=engr,cn=colostate,cn=edu" -D "cn=proxy,ou=profile,dc=engr,dc=colostate,dc=edu" -w password "(&(objectClass=posixaccount)(uid=joeblow))"
ldap_search: No such object
I'm starting to pull my hair out now!!!

Similar Messages

  • Want to pass Realm login username to php web page

    I have a web directory set up as a Realm via Server Admin. I'd like to grab the authentication info (really just the username) and use it via PHP to compare against a mysql table of users to pull out username and real name so the user doesn't have to log in twice (once to access the Realm, once to authenticate to Mysql in a php form.)
    I've searched the web and these discussions but have not found any documentation that tells me that I can access or display the Realm authentication username.
    Is this even possible?

    The PHP documentation seems to have this covered:
    http://us3.php.net/manual/en/features.http-auth.php
    Once the user has filled in a username and a password, the URL containing the PHP script will be called again with the predefined variables PHPAUTHUSER, PHPAUTHPW, and AUTH_TYPE set to the user name, password and authentication type respectively.
    echo "<p>Hello {$SERVER['PHP_AUTHUSER']}.</p>";
    echo "<p>You entered {$SERVER['PHP_AUTHPW']} as your password.</p>";

  • [SOLVED] Problem building php 5.3 with openssl

    Hi,
    I stuck with this issue and don't really know what's wrong and what to do:
    $ pacman -Qs openssl
    local/lib32-openssl 1.0.1.i-1
    The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (32-bit)
    local/openssl 1.0.1.i-1
    The Open Source toolkit for Secure Sockets Layer and Transport Layer Security
    $ ./configure --with-openssl && make
    loading cache ./config.cache
    checking for Cygwin environment... (cached) no
    checking for mingw32 environment... (cached) no
    checking for egrep... (cached) grep -E
    checking for a sed that does not truncate output... (cached) /usr/bin/sed
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for gcc... (cached) gcc
    checking whether the C compiler (gcc ) works... yes
    checking whether the C compiler (gcc ) is a cross-compiler... no
    checking whether we are using GNU C... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking how to run the C preprocessor... (cached) gcc -E
    checking for icc... no
    checking for suncc... no
    checking whether gcc and cc understand -c and -o together... (cached) yes
    checking how to run the C preprocessor... gcc -E
    checking for AIX... no
    checking whether ln -s works... (cached) yes
    checking for system library directory... lib
    checking whether to enable runpaths... yes
    checking if compiler supports -R... (cached) no
    checking if compiler supports -Wl,-rpath,... (cached) yes
    checking for gawk... (cached) gawk
    checking for bison... (cached) bison -y
    checking for bison version... (cached) 2.6.4 (ok)
    checking for re2c... (cached) re2c
    checking for re2c version... (cached) 0.13.7.5 (ok)
    checking whether to enable computed goto gcc extension with re2c... no
    checking whether to force non-PIC code in shared modules... no
    checking whether /dev/urandom exists... yes
    checking for pthreads_cflags... (cached) -pthread
    checking for pthreads_lib... (cached)
    [1mConfiguring SAPI modules[m
    checking for AOLserver support... no
    checking for Apache 1.x module support via DSO through APXS... no
    checking for Apache 1.x module support... no
    checking whether to enable Apache charset compatibility option... no
    checking for Apache 2.0 filter-module support via DSO through APXS... no
    checking for Apache 2.0 handler-module support via DSO through APXS... no
    checking for Apache 1.x (hooks) module support via DSO through APXS... no
    checking for Apache 1.x (hooks) module support... no
    checking whether to enable Apache charset compatibility option... no
    checking for Caudium support... no
    checking for CLI build... yes
    checking for Continuity support... no
    checking for embedded SAPI library support... no
    checking for FPM build... no
    checking for Zeus ISAPI support... no
    checking for LiteSpeed support... no
    checking for Milter support... no
    checking for NSAPI support... no
    checking for PHTTPD support... no
    checking for Pi3Web support... no
    checking whether Roxen module is build using ZTS... no
    checking for Roxen/Pike support...
    checking for thttpd... no
    checking for TUX... no
    checking for webjames... no
    checking whether to build CGI binary... yes
    checking for socklen_t in sys/socket.h... yes
    checking for sun_len in sys/un.h... no
    checking whether cross-process locking is required by accept()... no
    checking for chosen SAPI module... cgi
    [1mRunning system checks[m
    checking for sendmail... no
    checking whether system uses EBCDIC... (cached) no
    checking whether byte ordering is bigendian... (cached) no
    checking whether writing to stdout works... (cached) yes
    checking for socket... yes
    checking for socketpair... yes
    checking for htonl... yes
    checking for gethostname... yes
    checking for gethostbyaddr... yes
    checking for yp_get_default_domain... no
    checking for __yp_get_default_domain... no
    checking for yp_get_default_domain in -lnsl... yes
    checking for dlopen... no
    checking for __dlopen... no
    checking for dlopen in -ldl... yes
    checking for sin in -lm... (cached) yes
    checking for inet_aton... yes
    checking for ANSI C header files... (cached) yes
    checking for dirent.h that defines DIR... (cached) yes
    checking for opendir in -ldir... (cached) no
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for dirent.h... (cached) yes
    checking for ApplicationServices/ApplicationServices.h... (cached) no
    checking for sys/param.h... (cached) yes
    checking for sys/types.h... (cached) yes
    checking for sys/time.h... (cached) yes
    checking for netinet/in.h... (cached) yes
    checking for alloca.h... (cached) yes
    checking for arpa/inet.h... (cached) yes
    checking for arpa/nameser.h... (cached) yes
    checking for assert.h... (cached) yes
    checking for crypt.h... (cached) yes
    checking for dns.h... (cached) no
    checking for fcntl.h... (cached) yes
    checking for grp.h... (cached) yes
    checking for ieeefp.h... (cached) no
    checking for langinfo.h... (cached) yes
    checking for limits.h... (cached) yes
    checking for locale.h... (cached) yes
    checking for monetary.h... (cached) yes
    checking for netdb.h... (cached) yes
    checking for pwd.h... (cached) yes
    checking for resolv.h... (cached) yes
    checking for signal.h... (cached) yes
    checking for stdarg.h... (cached) yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking for syslog.h... (cached) yes
    checking for sysexits.h... (cached) yes
    checking for sys/ioctl.h... (cached) yes
    checking for sys/file.h... (cached) yes
    checking for sys/mman.h... (cached) yes
    checking for sys/mount.h... (cached) yes
    checking for sys/poll.h... (cached) yes
    checking for sys/resource.h... (cached) yes
    checking for sys/select.h... (cached) yes
    checking for sys/socket.h... (cached) yes
    checking for sys/stat.h... (cached) yes
    checking for sys/statfs.h... (cached) yes
    checking for sys/statvfs.h... (cached) yes
    checking for sys/vfs.h... (cached) yes
    checking for sys/sysexits.h... (cached) no
    checking for sys/varargs.h... (cached) no
    checking for sys/wait.h... (cached) yes
    checking for sys/loadavg.h... (cached) no
    checking for termios.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for unix.h... (cached) no
    checking for utime.h... (cached) yes
    checking for sys/utsname.h... (cached) yes
    checking for sys/ipc.h... (cached) yes
    checking for dlfcn.h... (cached) yes
    checking for assert.h... (cached) yes
    checking for fopencookie... (cached) yes
    checking for broken getcwd... no
    checking for broken libc stdio... (cached) yes
    checking whether struct tm is in sys/time.h or time.h... (cached) time.h
    checking for tm_zone in struct tm... (cached) yes
    checking for missing declarations of reentrant functions... done
    checking for fclose declaration... ok
    checking for tm_gmtoff in struct tm... (cached) yes
    checking for struct flock... (cached) yes
    checking for socklen_t... (cached) yes
    checking size of size_t... (cached) 8
    checking size of long long... (cached) 8
    checking size of long long int... (cached) 8
    checking size of long... (cached) 8
    checking size of int... (cached) 4
    checking size of intmax_t... (cached) 8
    checking size of ssize_t... (cached) 8
    checking size of ptrdiff_t... (cached) 8
    checking for st_blksize in struct stat... (cached) yes
    checking for st_blocks in struct stat... (cached) yes
    checking for st_rdev in struct stat... (cached) yes
    checking for size_t... (cached) yes
    checking for uid_t in sys/types.h... (cached) yes
    checking for struct sockaddr_storage... (cached) yes
    checking for field sa_len in struct sockaddr... (cached) no
    checking for IPv6 support... (cached) yes
    checking for vprintf... (cached) yes
    checking for alphasort... (cached) yes
    checking for asctime_r... (cached) yes
    checking for chroot... (cached) yes
    checking for ctime_r... (cached) yes
    checking for cuserid... (cached) yes
    checking for crypt... (cached) no
    checking for flock... (cached) yes
    checking for ftok... (cached) yes
    checking for funopen... (cached) no
    checking for gai_strerror... (cached) yes
    checking for gcvt... (cached) yes
    checking for getloadavg... (cached) yes
    checking for getlogin... (cached) yes
    checking for getprotobyname... (cached) yes
    checking for getprotobynumber... (cached) yes
    checking for getservbyname... (cached) yes
    checking for getservbyport... (cached) yes
    checking for gethostname... (cached) yes
    checking for getrusage... (cached) yes
    checking for gettimeofday... (cached) yes
    checking for gmtime_r... (cached) yes
    checking for getpwnam_r... (cached) yes
    checking for getgrnam_r... (cached) yes
    checking for getpwuid_r... (cached) yes
    checking for grantpt... (cached) yes
    checking for inet_ntoa... (cached) yes
    checking for inet_ntop... (cached) yes
    checking for inet_pton... (cached) yes
    checking for isascii... (cached) yes
    checking for link... (cached) yes
    checking for localtime_r... (cached) yes
    checking for lockf... (cached) yes
    checking for lchown... (cached) yes
    checking for lrand48... (cached) yes
    checking for memcpy... (cached) yes
    checking for memmove... (cached) yes
    checking for mkstemp... (cached) yes
    checking for mmap... (cached) yes
    checking for nl_langinfo... (cached) yes
    checking for perror... (cached) yes
    checking for poll... (cached) yes
    checking for ptsname... (cached) yes
    checking for putenv... (cached) yes
    checking for realpath... (cached) yes
    checking for random... (cached) yes
    checking for rand_r... (cached) yes
    checking for scandir... (cached) yes
    checking for setitimer... (cached) yes
    checking for setlocale... (cached) yes
    checking for localeconv... (cached) yes
    checking for setenv... (cached) yes
    checking for setpgid... (cached) yes
    checking for setsockopt... (cached) yes
    checking for setvbuf... (cached) yes
    checking for shutdown... (cached) yes
    checking for sin... (cached) yes
    checking for snprintf... (cached) yes
    checking for srand48... (cached) yes
    checking for srandom... (cached) yes
    checking for statfs... (cached) yes
    checking for statvfs... (cached) yes
    checking for std_syslog... (cached) no
    checking for strcasecmp... (cached) yes
    checking for strcoll... (cached) yes
    checking for strdup... (cached) yes
    checking for strerror... (cached) yes
    checking for strftime... (cached) yes
    checking for strnlen... (cached) yes
    checking for strptime... (cached) yes
    checking for strstr... (cached) yes
    checking for strtok_r... (cached) yes
    checking for symlink... (cached) yes
    checking for tempnam... (cached) yes
    checking for tzset... (cached) yes
    checking for unlockpt... (cached) yes
    checking for unsetenv... (cached) yes
    checking for usleep... (cached) yes
    checking for utime... (cached) yes
    checking for vsnprintf... (cached) yes
    checking for vasprintf... (cached) yes
    checking for asprintf... (cached) yes
    checking for nanosleep... (cached) yes
    checking for nanosleep in -lrt... yes
    checking for getaddrinfo... (cached) yes
    checking for __sync_fetch_and_add... (cached) yes
    checking for strlcat... (cached) no
    checking for strlcpy... (cached) no
    checking for getopt... (cached) yes
    checking whether utime accepts a null argument... (cached) yes
    checking for working alloca.h... (cached) yes
    checking for alloca... (cached) yes
    checking for declared timezone... (cached) yes
    checking for type of reentrant time-related functions... (cached) POSIX
    checking for readdir_r... (cached) yes
    checking for type of readdir_r... (cached) POSIX
    checking for in_addr_t... (cached) yes
    checking for crypt_r... (cached) no
    [1mGeneral settings[m
    checking whether to include gcov symbols... no
    checking whether to include debugging symbols... no
    checking layout of installed files... PHP
    checking path to configuration file... DEFAULT
    checking where to scan for configuration files...
    checking whether to enable safe mode by default... no
    checking for safe mode exec dir... /usr/local/php/bin
    checking whether to enable PHP's own SIGCHLD handler... no
    checking whether to enable magic quotes by default... no
    checking whether to explicitly link against libgcc... no
    checking whether to enable short tags by default... yes
    checking whether to enable dmalloc... no
    checking whether to enable IPv6 support... yes
    checking how big to make fd sets... using system default
    [1mConfiguring extensions[m
    checking size of long... (cached) 8
    checking size of int... (cached) 4
    checking for int32_t... (cached) yes
    checking for uint32_t... (cached) yes
    checking for sys/types.h... (cached) yes
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for string.h... (cached) yes
    checking for stdlib.h... (cached) yes
    checking for strtoll... (cached) yes
    checking for atoll... (cached) yes
    checking for strftime... (cached) yes
    checking which regex library to use... php
    checking whether to enable LIBXML support... yes
    checking libxml2 install dir... no
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for OpenSSL support... yes
    checking for Kerberos support... no
    checking for DSA_get_default_method in -lssl... (cached) no
    checking for X509_free in -lcrypto... (cached) yes
    checking for pkg-config... (cached) /usr/bin/pkg-config
    checking for PCRE library to use... bundled
    checking whether to enable the SQLite3 extension... yes
    checking bundled sqlite3 library... yes
    checking for ZLIB support... no
    checking if the location of ZLIB install directory is defined... no
    checking whether to enable bc style precision math functions... no
    checking for BZip2 support... no
    checking whether to enable calendar conversion support... no
    checking whether to enable ctype functions... yes
    checking for cURL support... no
    checking if we should use cURL for url streams... no
    checking for QDBM support... no
    checking for GDBM support... no
    checking for NDBM support... no
    checking for Berkeley DB4 support... no
    checking for Berkeley DB3 support... no
    checking for Berkeley DB2 support... no
    checking for DB1 support... no
    checking for DBM support... no
    checking for CDB support... no
    checking for INI File support... no
    checking for FlatFile support... no
    checking whether to enable DBA interface... no
    checking whether to enable DOM support... yes
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for ENCHANT support... no
    checking whether to enable EXIF (metadata from images) support... no
    checking for fileinfo support... yes
    checking for utimes... (cached) yes
    checking for strndup... (cached) yes
    checking whether to enable input filter support... yes
    checking pcre install prefix... no
    checking whether to enable FTP support... no
    checking OpenSSL dir for FTP... no
    checking for GD support... no
    checking for the location of libjpeg... no
    checking for the location of libpng... no
    checking for the location of libXpm... no
    checking for FreeType 2... no
    checking for T1lib support... no
    checking whether to enable truetype string function in GD... no
    checking whether to enable JIS-mapped Japanese font support in GD... no
    checking for GNU gettext support... no
    checking for GNU MP support... no
    checking for mhash support... no
    checking whether to enable hash support... yes
    checking whether byte ordering is bigendian... (cached) no
    checking size of short... (cached) 2
    checking size of int... (cached) 4
    checking size of long... (cached) 8
    checking size of long long... (cached) 8
    checking for iconv support... yes
    checking for iconv... (cached) yes
    checking if iconv is glibc's... yes
    checking if iconv supports errno... yes
    checking if your cpp allows macro usage in include lines... yes
    checking for IMAP support... no
    checking for IMAP Kerberos support... no
    checking for IMAP SSL support... no
    checking for InterBase support... no
    checking whether to enable internationalization support... no
    checking whether to enable JavaScript Object Serialization support... yes
    checking for ANSI C header files... (cached) yes
    checking for LDAP support... no
    checking for LDAP Cyrus SASL support... no
    checking whether to enable multibyte string support... no
    checking whether to enable multibyte regex support... yes
    checking whether to check multibyte regex backtrack... yes
    checking for external libmbfl... no
    checking for external oniguruma... no
    checking for mcrypt support... no
    checking for MSSQL support via FreeTDS... no
    checking for MySQL support... no
    checking for specified location of the MySQL UNIX socket... no
    checking for MySQLi support... no
    checking whether to enable embedded MySQLi support... no
    checking for Oracle Database OCI8 support... no
    checking whether to enable pcntl support... no
    checking whether to enable PDO support... yes
    checking for PDO_DBLIB support via FreeTDS... no
    checking for Firebird support for PDO... no
    checking for MySQL support for PDO... no
    checking Oracle OCI support for PDO... no
    checking for ODBC v3 support for PDO... no
    checking for PostgreSQL support for PDO... no
    checking for sqlite 3 support for PDO... yes
    checking for PDO includes... checking for PDO includes... /home/yuri/_/php-5.3.29/ext
    checking for usleep... (cached) yes
    checking for nanosleep... (cached) yes
    checking for time.h... (cached) yes
    checking for fdatasync in -lrt... (cached) yes
    checking for PostgreSQL support... no
    checking for phar archive support... yes
    checking for phar openssl support... yes
    checking whether to enable POSIX-like functions... yes
    checking for sys/mkdev.h... (cached) no
    checking for seteuid... (cached) yes
    checking for setegid... (cached) yes
    checking for setsid... (cached) yes
    checking for getsid... (cached) yes
    checking for setpgid... (cached) yes
    checking for getpgid... (cached) yes
    checking for ctermid... (cached) yes
    checking for mkfifo... (cached) yes
    checking for mknod... (cached) yes
    checking for getrlimit... (cached) yes
    checking for getlogin... (cached) yes
    checking for getgroups... (cached) yes
    checking for makedev... (cached) no
    checking for initgroups... (cached) yes
    checking for getpwuid_r... (cached) yes
    checking for getgrgid_r... (cached) yes
    checking for working ttyname_r() implementation... yes
    checking for utsname.domainname... (cached) yes
    checking for PSPELL support... no
    checking for libedit readline replacement... no
    checking for readline support... no
    checking for recode support... no
    checking whether to enable PHP sessions... yes
    checking for mm support... no
    checking whether pwrite works... (cached) yes
    checking whether pread works... (cached) yes
    checking whether to enable shmop support... no
    checking whether to enable SimpleXML support... yes
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for SNMP support... no
    checking OpenSSL dir for SNMP... no
    checking whether to enable UCD SNMP hack... no
    checking whether to enable SOAP support... no
    checking whether to enable sockets support... no
    checking whether zend_object_value is packed... no
    checking for sqlite support... yes
    checking whether to enable UTF-8 support in sqlite (default: ISO-8859-1)... no
    checking for PDO includes... (cached) /home/yuri/_/php-5.3.29/ext
    checking for lemon... (cached) lemon
    checking for lemon version... (cached) 1.0 (ok)
    checking size of char *... (cached) 8
    checking for usleep... (cached) yes
    checking for nanosleep... (cached) yes
    checking for time.h... (cached) yes
    checking whether flush should be called explicitly after a buffered io... (cached) no
    checking for crypt in -lcrypt... (cached) yes
    checking for standard DES crypt... (cached) yes
    checking for extended DES crypt... (cached) no
    checking for MD5 crypt... (cached) yes
    checking for Blowfish crypt... (cached) no
    checking for SHA512 crypt... (cached) no
    checking for SHA256 crypt... (cached) no
    checking whether the compiler supports __alignof__... (cached) yes
    checking whether the compiler supports aligned attribute... (cached) yes
    checking for getcwd... (cached) yes
    checking for getwd... (cached) yes
    checking for asinh... (cached) yes
    checking for acosh... (cached) yes
    checking for atanh... (cached) yes
    checking for log1p... (cached) yes
    checking for hypot... (cached) yes
    checking for glob... (cached) yes
    checking for strfmon... (cached) yes
    checking for nice... (cached) yes
    checking for fpclass... (cached) no
    checking for isinf... (cached) yes
    checking for isnan... (cached) yes
    checking for mempcpy... (cached) yes
    checking for strpncpy... (cached) no
    checking for working fnmatch... (cached) yes
    checking for fork... (cached) yes
    checking if your OS can spawn processes with inherited handles... yes
    checking for res_nsearch... no
    checking for __res_nsearch... no
    checking for res_nsearch in -lresolv... no
    checking for __res_nsearch in -lresolv... yes
    checking for dns_search... no
    checking for __dns_search... no
    checking for dns_search in -lresolv... no
    checking for __dns_search in -lresolv... no
    checking for dns_search in -lbind... no
    checking for __dns_search in -lbind... no
    checking for dns_search in -lsocket... no
    checking for __dns_search in -lsocket... no
    checking for dn_expand... no
    checking for __dn_expand... yes
    checking for dn_skipname... no
    checking for __dn_skipname... yes
    checking for res_search... no
    checking for __res_search... yes
    checking whether atof() accepts NAN... (cached) yes
    checking whether atof() accepts INF... (cached) yes
    checking whether HUGE_VAL == INF... (cached) yes
    checking whether HUGE_VAL + -HUGEVAL == NAN... (cached) yes
    checking whether strptime() declaration fails... (cached) no
    checking for wchar.h... (cached) yes
    checking for mblen... (cached) yes
    checking for mbrlen... (cached) yes
    checking for mbsinit... (cached) yes
    checking for mbstate_t... (cached) yes
    checking for atomic.h... (cached) no
    checking for Sybase-CT support... no
    checking whether to enable System V IPC support... no
    checking whether to enable System V semaphore support... no
    checking whether to enable System V shared memory support... no
    checking for TIDY support... no
    checking whether to enable tokenizer support... yes
    checking whether to enable WDDX support... no
    checking libexpat dir for WDDX... no
    checking whether to enable XML support... yes
    checking libexpat install dir... no
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking whether to enable XMLReader support... yes
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for XMLRPC-EPI support... no
    checking libexpat dir for XMLRPC-EPI... no
    checking iconv dir for XMLRPC-EPI... no
    checking whether to enable XMLWriter support... yes
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for XSL support... no
    checking for zip archive read/writesupport... no
    checking pcre install prefix... no
    checking whether to enable mysqlnd... no
    checking whether to disable compressed protocol support in mysqlnd... yes
    [1mConfiguring PEAR[m
    checking whether to install PEAR... yes
    [1mConfiguring Zend[m
    checking for bison version... (cached) 2.6.4 (ok)
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for limits.h... (cached) yes
    checking for malloc.h... (cached) yes
    checking for string.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for stdarg.h... (cached) yes
    checking for sys/types.h... (cached) yes
    checking for sys/time.h... (cached) yes
    checking for signal.h... (cached) yes
    checking for unix.h... (cached) no
    checking for stdlib.h... (cached) yes
    checking for dlfcn.h... (cached) yes
    checking for size_t... (cached) yes
    checking return type of signal handlers... (cached) void
    checking for uint... (cached) yes
    checking for ulong... (cached) yes
    checking for int32_t... yes
    checking for uint32_t... yes
    checking for vprintf... (cached) yes
    checking for 8-bit clean memcmp... (cached) yes
    checking for working alloca.h... (cached) yes
    checking for alloca... (cached) yes
    checking for memcpy... (cached) yes
    checking for strdup... (cached) yes
    checking for getpid... (cached) yes
    checking for kill... (cached) yes
    checking for strtod... (cached) yes
    checking for strtol... (cached) yes
    checking for finite... (cached) yes
    checking for fpclass... (cached) no
    checking for sigsetjmp... (cached) no
    checking whether sprintf is broken... (cached) no
    checking for finite... (cached) yes
    checking for isfinite... (cached) no
    checking for isinf... (cached) yes
    checking for isnan... (cached) yes
    checking whether fp_except is defined... (cached) no
    checking for usable _FPU_SETCW... yes
    checking for usable fpsetprec... no
    checking for usable _controlfp... no
    checking for usable _controlfp_s... no
    checking whether FPU control word can be manipulated by inline assembler... yes
    checking whether double cast to long preserves least significant bits... no
    checking for dlfcn.h... (cached) yes
    checking whether dlsym() requires a leading underscore in symbol names... no
    checking virtual machine dispatch method... CALL
    checking whether to enable thread-safety... no
    checking whether to enable inline optimization for GCC... yes
    checking whether to enable Zend debugging... no
    checking whether to enable Zend multibyte... no
    checking for inline... (cached) inline
    checking target system is Darwin... no
    checking for MM alignment and log values... done
    checking for memory allocation using mmap(MAP_ANON)... yes
    checking for memory allocation using mmap(/dev/zero)... yes
    checking for mremap... (cached) yes
    [1mConfiguring TSRM[m
    checking for stdarg.h... (cached) yes
    [1mConfiguring libtool[m
    checking build system type... x86_64-unknown-linux-gnu
    checking for ld used by gcc... (cached) /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
    checking for /usr/bin/ld option to reload object files... (cached) -r
    checking for BSD-compatible nm... (cached) /usr/bin/nm -B
    checking how to recognize dependent libraries... (cached) pass_all
    checking for object suffix... (cached) o
    checking for executable suffix... (cached) no
    checking the maximum length of command line arguments... (cached) 1572864
    checking command to parse /usr/bin/nm -B output from gcc object... (cached) ok
    checking for objdir... (cached) .libs
    checking for ar... (cached) ar
    checking for ranlib... (cached) ranlib
    checking for strip... (cached) strip
    checking if gcc supports -fno-rtti -fno-exceptions... (cached) no
    checking for gcc option to produce PIC... -fPIC
    checking if gcc PIC flag -fPIC works... (cached) yes
    checking if gcc static flag -static works... (cached) yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    (cached) (cached) checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... no
    checking whether to build static libraries... yes
    creating libtool
    appending configuration tag "CXX" to libtool
    [1mGenerating files[m
    creating ./config.status
    creating php5.spec
    creating main/build-defs.h
    creating scripts/phpize
    creating scripts/man1/phpize.1
    creating scripts/php-config
    creating scripts/man1/php-config.1
    creating sapi/cli/php.1
    creating main/php_config.h
    main/php_config.h is unchanged
    creating main/internal_functions.c
    creating main/internal_functions_cli.c
    +--------------------------------------------------------------------+
    | License: |
    | This software is subject to the PHP License, available in this |
    | distribution in the file LICENSE. By continuing this installation |
    | process, you are bound by the terms of this license agreement. |
    | If you do not agree with the terms of this license, you must abort |
    | the installation process at this point. |
    +--------------------------------------------------------------------+
    Thank you for using PHP.
    /bin/sh /home/yuri/_/php-5.3.29/libtool --silent --preserve-dup-deps --mode=compile gcc -Iext/standard/ -I/home/yuri/_/php-5.3.29/ext/standard/ -DPHP_ATOM_INC -I/home/yuri/_/php-5.3.29/include -I/home/yuri/_/php-5.3.29/main -I/home/yuri/_/php-5.3.29 -I/home/yuri/_/php-5.3.29/ext/date/lib -I/home/yuri/_/php-5.3.29/ext/ereg/regex -I/usr/include/libxml2 -I/home/yuri/_/php-5.3.29/ext/sqlite3/libsqlite -I/home/yuri/_/php-5.3.29/TSRM -I/home/yuri/_/php-5.3.29/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /home/yuri/_/php-5.3.29/ext/standard/info.c -o ext/standard/info.lo
    /bin/sh /home/yuri/_/php-5.3.29/libtool --silent --preserve-dup-deps --mode=compile gcc -Imain/ -I/home/yuri/_/php-5.3.29/main/ -DPHP_ATOM_INC -I/home/yuri/_/php-5.3.29/include -I/home/yuri/_/php-5.3.29/main -I/home/yuri/_/php-5.3.29 -I/home/yuri/_/php-5.3.29/ext/date/lib -I/home/yuri/_/php-5.3.29/ext/ereg/regex -I/usr/include/libxml2 -I/home/yuri/_/php-5.3.29/ext/sqlite3/libsqlite -I/home/yuri/_/php-5.3.29/TSRM -I/home/yuri/_/php-5.3.29/Zend -I/usr/include -g -O2 -fvisibility=hidden -c main/internal_functions.c -o main/internal_functions.lo
    /bin/sh /home/yuri/_/php-5.3.29/libtool --silent --preserve-dup-deps --mode=link gcc -export-dynamic -I/usr/include -g -O2 -fvisibility=hidden ext/date/php_date.lo ext/date/lib/astro.lo ext/date/lib/dow.lo ext/date/lib/parse_date.lo ext/date/lib/parse_tz.lo ext/date/lib/timelib.lo ext/date/lib/tm2unixtime.lo ext/date/lib/unixtime2tm.lo ext/date/lib/parse_iso_intervals.lo ext/date/lib/interval.lo ext/ereg/ereg.lo ext/ereg/regex/regcomp.lo ext/ereg/regex/regexec.lo ext/ereg/regex/regerror.lo ext/ereg/regex/regfree.lo ext/libxml/libxml.lo ext/openssl/openssl.lo ext/openssl/xp_ssl.lo ext/pcre/pcrelib/pcre_chartables.lo ext/pcre/pcrelib/pcre_ucd.lo ext/pcre/pcrelib/pcre_compile.lo ext/pcre/pcrelib/pcre_config.lo ext/pcre/pcrelib/pcre_exec.lo ext/pcre/pcrelib/pcre_fullinfo.lo ext/pcre/pcrelib/pcre_get.lo ext/pcre/pcrelib/pcre_globals.lo ext/pcre/pcrelib/pcre_maketables.lo ext/pcre/pcrelib/pcre_newline.lo ext/pcre/pcrelib/pcre_ord2utf8.lo ext/pcre/pcrelib/pcre_refcount.lo ext/pcre/pcrelib/pcre_study.lo ext/pcre/pcrelib/pcre_tables.lo ext/pcre/pcrelib/pcre_valid_utf8.lo ext/pcre/pcrelib/pcre_version.lo ext/pcre/pcrelib/pcre_xclass.lo ext/pcre/php_pcre.lo ext/sqlite3/sqlite3.lo ext/sqlite3/libsqlite/sqlite3.lo ext/ctype/ctype.lo ext/dom/php_dom.lo ext/dom/attr.lo ext/dom/document.lo ext/dom/domerrorhandler.lo ext/dom/domstringlist.lo ext/dom/domexception.lo ext/dom/namelist.lo ext/dom/processinginstruction.lo ext/dom/cdatasection.lo ext/dom/documentfragment.lo ext/dom/domimplementation.lo ext/dom/element.lo ext/dom/node.lo ext/dom/string_extend.lo ext/dom/characterdata.lo ext/dom/documenttype.lo ext/dom/domimplementationlist.lo ext/dom/entity.lo ext/dom/nodelist.lo ext/dom/text.lo ext/dom/comment.lo ext/dom/domconfiguration.lo ext/dom/domimplementationsource.lo ext/dom/entityreference.lo ext/dom/notation.lo ext/dom/xpath.lo ext/dom/dom_iterators.lo ext/dom/typeinfo.lo ext/dom/domerror.lo ext/dom/domlocator.lo ext/dom/namednodemap.lo ext/dom/userdatahandler.lo ext/fileinfo/fileinfo.lo ext/fileinfo/libmagic/apprentice.lo ext/fileinfo/libmagic/apptype.lo ext/fileinfo/libmagic/ascmagic.lo ext/fileinfo/libmagic/cdf.lo ext/fileinfo/libmagic/cdf_time.lo ext/fileinfo/libmagic/compress.lo ext/fileinfo/libmagic/encoding.lo ext/fileinfo/libmagic/fsmagic.lo ext/fileinfo/libmagic/funcs.lo ext/fileinfo/libmagic/is_tar.lo ext/fileinfo/libmagic/magic.lo ext/fileinfo/libmagic/print.lo ext/fileinfo/libmagic/readcdf.lo ext/fileinfo/libmagic/readelf.lo ext/fileinfo/libmagic/softmagic.lo ext/filter/filter.lo ext/filter/sanitizing_filters.lo ext/filter/logical_filters.lo ext/filter/callback_filter.lo ext/hash/hash.lo ext/hash/hash_md.lo ext/hash/hash_sha.lo ext/hash/hash_ripemd.lo ext/hash/hash_haval.lo ext/hash/hash_tiger.lo ext/hash/hash_gost.lo ext/hash/hash_snefru.lo ext/hash/hash_whirlpool.lo ext/hash/hash_adler32.lo ext/hash/hash_crc32.lo ext/hash/hash_salsa.lo ext/iconv/iconv.lo ext/json/json.lo ext/json/utf8_to_utf16.lo ext/json/utf8_decode.lo ext/json/JSON_parser.lo ext/pdo/pdo.lo ext/pdo/pdo_dbh.lo ext/pdo/pdo_stmt.lo ext/pdo/pdo_sql_parser.lo ext/pdo/pdo_sqlstate.lo ext/pdo_sqlite/pdo_sqlite.lo ext/pdo_sqlite/sqlite_driver.lo ext/pdo_sqlite/sqlite_statement.lo ext/phar/util.lo ext/phar/tar.lo ext/phar/zip.lo ext/phar/stream.lo ext/phar/func_interceptors.lo ext/phar/dirstream.lo ext/phar/phar.lo ext/phar/phar_object.lo ext/phar/phar_path_check.lo ext/posix/posix.lo ext/reflection/php_reflection.lo ext/session/session.lo ext/session/mod_files.lo ext/session/mod_mm.lo ext/session/mod_user.lo ext/simplexml/simplexml.lo ext/simplexml/sxe.lo ext/spl/php_spl.lo ext/spl/spl_functions.lo ext/spl/spl_engine.lo ext/spl/spl_iterators.lo ext/spl/spl_array.lo ext/spl/spl_directory.lo ext/spl/spl_exceptions.lo ext/spl/spl_observer.lo ext/spl/spl_dllist.lo ext/spl/spl_heap.lo ext/spl/spl_fixedarray.lo ext/sqlite/sqlite.lo ext/sqlite/sess_sqlite.lo ext/sqlite/pdo_sqlite2.lo ext/sqlite/libsqlite/src/opcodes.lo ext/sqlite/libsqlite/src/parse.lo ext/sqlite/libsqlite/src/encode.lo ext/sqlite/libsqlite/src/auth.lo ext/sqlite/libsqlite/src/btree.lo ext/sqlite/libsqlite/src/build.lo ext/sqlite/libsqlite/src/delete.lo ext/sqlite/libsqlite/src/expr.lo ext/sqlite/libsqlite/src/func.lo ext/sqlite/libsqlite/src/hash.lo ext/sqlite/libsqlite/src/insert.lo ext/sqlite/libsqlite/src/main.lo ext/sqlite/libsqlite/src/os.lo ext/sqlite/libsqlite/src/pager.lo ext/sqlite/libsqlite/src/printf.lo ext/sqlite/libsqlite/src/random.lo ext/sqlite/libsqlite/src/select.lo ext/sqlite/libsqlite/src/table.lo ext/sqlite/libsqlite/src/tokenize.lo ext/sqlite/libsqlite/src/update.lo ext/sqlite/libsqlite/src/util.lo ext/sqlite/libsqlite/src/vdbe.lo ext/sqlite/libsqlite/src/attach.lo ext/sqlite/libsqlite/src/btree_rb.lo ext/sqlite/libsqlite/src/pragma.lo ext/sqlite/libsqlite/src/vacuum.lo ext/sqlite/libsqlite/src/copy.lo ext/sqlite/libsqlite/src/vdbeaux.lo ext/sqlite/libsqlite/src/date.lo ext/sqlite/libsqlite/src/where.lo ext/sqlite/libsqlite/src/trigger.lo ext/standard/crypt_freesec.lo ext/standard/crypt_blowfish.lo ext/standard/crypt_sha512.lo ext/standard/crypt_sha256.lo ext/standard/php_crypt_r.lo ext/standard/array.lo ext/standard/base64.lo ext/standard/basic_functions.lo ext/standard/browscap.lo ext/standard/crc32.lo ext/standard/crypt.lo ext/standard/cyr_convert.lo ext/standard/datetime.lo ext/standard/dir.lo ext/standard/dl.lo ext/standard/dns.lo ext/standard/exec.lo ext/standard/file.lo ext/standard/filestat.lo ext/standard/flock_compat.lo ext/standard/formatted_print.lo ext/standard/fsock.lo ext/standard/head.lo ext/standard/html.lo ext/standard/image.lo ext/standard/info.lo ext/standard/iptc.lo ext/standard/lcg.lo ext/standard/link.lo ext/standard/mail.lo ext/standard/math.lo ext/standard/md5.lo ext/standard/metaphone.lo ext/standard/microtime.lo ext/standard/pack.lo ext/standard/pageinfo.lo ext/standard/quot_print.lo ext/standard/rand.lo ext/standard/soundex.lo ext/standard/string.lo ext/standard/scanf.lo ext/standard/syslog.lo ext/standard/type.lo ext/standard/uniqid.lo ext/standard/url.lo ext/standard/var.lo ext/standard/versioning.lo ext/standard/assert.lo ext/standard/strnatcmp.lo ext/standard/levenshtein.lo ext/standard/incomplete_class.lo ext/standard/url_scanner_ex.lo ext/standard/ftp_fopen_wrapper.lo ext/standard/http_fopen_wrapper.lo ext/standard/php_fopen_wrapper.lo ext/standard/credits.lo ext/standard/css.lo ext/standard/var_unserializer.lo ext/standard/ftok.lo ext/standard/sha1.lo ext/standard/user_filters.lo ext/standard/uuencode.lo ext/standard/filters.lo ext/standard/proc_open.lo ext/standard/streamsfuncs.lo ext/standard/http.lo ext/tokenizer/tokenizer.lo ext/tokenizer/tokenizer_data.lo ext/xml/xml.lo ext/xml/compat.lo ext/xmlreader/php_xmlreader.lo ext/xmlwriter/php_xmlwriter.lo TSRM/TSRM.lo TSRM/tsrm_strtok_r.lo TSRM/tsrm_virtual_cwd.lo main/main.lo main/snprintf.lo main/spprintf.lo main/php_sprintf.lo main/safe_mode.lo main/fopen_wrappers.lo main/alloca.lo main/php_scandir.lo main/php_ini.lo main/SAPI.lo main/rfc1867.lo main/php_content_types.lo main/strlcpy.lo main/strlcat.lo main/mergesort.lo main/reentrancy.lo main/php_variables.lo main/php_ticks.lo main/network.lo main/php_open_temporary_file.lo main/php_logos.lo main/output.lo main/getopt.lo main/streams/streams.lo main/streams/cast.lo main/streams/memory.lo main/streams/filter.lo main/streams/plain_wrapper.lo main/streams/userspace.lo main/streams/transports.lo main/streams/xp_socket.lo main/streams/mmap.lo main/streams/glob_wrapper.lo Zend/zend_language_parser.lo Zend/zend_language_scanner.lo Zend/zend_ini_parser.lo Zend/zend_ini_scanner.lo Zend/zend_alloc.lo Zend/zend_compile.lo Zend/zend_constants.lo Zend/zend_dynamic_array.lo Zend/zend_execute_API.lo Zend/zend_highlight.lo Zend/zend_llist.lo Zend/zend_opcode.lo Zend/zend_operators.lo Zend/zend_ptr_stack.lo Zend/zend_stack.lo Zend/zend_variables.lo Zend/zend.lo Zend/zend_API.lo Zend/zend_extensions.lo Zend/zend_hash.lo Zend/zend_list.lo Zend/zend_indent.lo Zend/zend_builtin_functions.lo Zend/zend_sprintf.lo Zend/zend_ini.lo Zend/zend_qsort.lo Zend/zend_multibyte.lo Zend/zend_ts_hash.lo Zend/zend_stream.lo Zend/zend_iterators.lo Zend/zend_interfaces.lo Zend/zend_exceptions.lo Zend/zend_strtod.lo Zend/zend_gc.lo Zend/zend_closures.lo Zend/zend_float.lo Zend/zend_objects.lo Zend/zend_object_handlers.lo Zend/zend_objects_API.lo Zend/zend_default_classes.lo Zend/zend_execute.lo sapi/cgi/cgi_main.lo sapi/cgi/fastcgi.lo main/internal_functions.lo -lcrypt -lresolv -lcrypt -lrt -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -o sapi/cgi/php-cgi
    ext/openssl/openssl.o: In function `zm_startup_openssl':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:992: undefined reference to `SSL_library_init'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:993: undefined reference to `OpenSSL_add_all_ciphers'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:994: undefined reference to `OpenSSL_add_all_digests'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:995: undefined reference to `OPENSSL_add_all_algorithms_noconf'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:997: undefined reference to `ERR_load_ERR_strings'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:998: undefined reference to `ERR_load_crypto_strings'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:999: undefined reference to `ERR_load_EVP_strings'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1003: undefined reference to `SSL_get_ex_new_index'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1078: undefined reference to `X509_get_default_cert_area'
    ext/openssl/openssl.o: In function `zm_info_openssl':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1108: undefined reference to `SSLeay_version'
    ext/openssl/openssl.o: In function `zm_shutdown_openssl':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1118: undefined reference to `EVP_cleanup'
    ext/openssl/openssl.o: In function `add_assoc_name_entry':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:567: undefined reference to `X509_NAME_entry_count'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:572: undefined reference to `X509_NAME_get_entry'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:573: undefined reference to `X509_NAME_ENTRY_get_object'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:574: undefined reference to `OBJ_obj2nid'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:578: undefined reference to `OBJ_nid2sn'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:593: undefined reference to `X509_NAME_get_entry'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:594: undefined reference to `X509_NAME_ENTRY_get_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:595: undefined reference to `ASN1_STRING_type'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:596: undefined reference to `ASN1_STRING_to_UTF8'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:588: undefined reference to `X509_NAME_get_index_by_OBJ'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:567: undefined reference to `X509_NAME_entry_count'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:601: undefined reference to `ASN1_STRING_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:602: undefined reference to `ASN1_STRING_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:580: undefined reference to `OBJ_nid2ln'
    ext/openssl/openssl.o: In function `asn1_time_to_time_t':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:647: undefined reference to `ASN1_STRING_type'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:652: undefined reference to `ASN1_STRING_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:652: undefined reference to `ASN1_STRING_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:657: undefined reference to `ASN1_STRING_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:662: undefined reference to `ASN1_STRING_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:668: undefined reference to `ASN1_STRING_length'
    ext/openssl/openssl.o: In function `setup_verify':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1686: undefined reference to `X509_STORE_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1728: undefined reference to `X509_LOOKUP_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1728: undefined reference to `X509_STORE_add_lookup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1730: undefined reference to `X509_LOOKUP_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1734: undefined reference to `X509_LOOKUP_hash_dir'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1734: undefined reference to `X509_STORE_add_lookup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1736: undefined reference to `X509_LOOKUP_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1709: undefined reference to `X509_LOOKUP_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1709: undefined reference to `X509_STORE_add_lookup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1710: undefined reference to `X509_LOOKUP_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1717: undefined reference to `X509_LOOKUP_hash_dir'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1717: undefined reference to `X509_STORE_add_lookup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1718: undefined reference to `X509_LOOKUP_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1728: undefined reference to `X509_LOOKUP_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1728: undefined reference to `X509_STORE_add_lookup'
    ext/openssl/openssl.o: In function `php_sk_X509_free':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1786: undefined reference to `X509_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1784: undefined reference to `sk_pop'
    ext/openssl/openssl.o: In function `zif_openssl_pkcs12_read':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2024: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2024: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2026: undefined reference to `BIO_write'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2092: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2095: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2098: undefined reference to `X509_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2029: undefined reference to `d2i_PKCS12_bio'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2030: undefined reference to `PKCS12_parse'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2036: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2036: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2037: undefined reference to `PEM_write_bio_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2044: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2046: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2046: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2047: undefined reference to `PEM_write_bio_PrivateKey'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2054: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2073: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2075: undefined reference to `X509_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2061: undefined reference to `sk_pop'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2064: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2064: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2065: undefined reference to `PEM_write_bio_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2067: undefined reference to `BIO_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2078: undefined reference to `sk_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2086: undefined reference to `PKCS12_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2049: undefined reference to `BIO_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2039: undefined reference to `BIO_ctrl'
    ext/openssl/openssl.o: In function `php_openssl_dispose_config':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:859: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:863: undefined reference to `CONF_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:867: undefined reference to `CONF_free'
    ext/openssl/openssl.o: In function `php_openssl_load_rand_file':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:884: undefined reference to `RAND_egd'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:883: undefined reference to `RAND_file_name'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:890: undefined reference to `RAND_load_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:891: undefined reference to `RAND_status'
    ext/openssl/openssl.o: In function `php_openssl_write_rand_file':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:916: undefined reference to `RAND_write_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:914: undefined reference to `RAND_file_name'
    ext/openssl/openssl.o: In function `php_openssl_generate_private_key':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2855: undefined reference to `CONF_get_string'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2858: undefined reference to `EVP_PKEY_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2909: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2885: undefined reference to `DH_generate_parameters'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2889: undefined reference to `DH_get_default_method'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2889: undefined reference to `DH_set_method'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2890: undefined reference to `DH_check'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2895: undefined reference to `DH_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2861: undefined reference to `RSA_generate_key'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2861: undefined reference to `EVP_PKEY_assign'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2868: undefined reference to `DSA_generate_parameters'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2870: undefined reference to `DSA_get_default_method'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2870: undefined reference to `DSA_set_method'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2871: undefined reference to `DSA_generate_key'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2872: undefined reference to `EVP_PKEY_assign'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2876: undefined reference to `DSA_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2890: undefined reference to `DH_generate_key'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2891: undefined reference to `EVP_PKEY_assign'
    ext/openssl/openssl.o: In function `zif_openssl_pkey_get_details':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3282: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3282: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3283: undefined reference to `PEM_write_bio_PUBKEY'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3284: undefined reference to `BIO_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3287: undefined reference to `EVP_PKEY_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3292: undefined reference to `EVP_PKEY_type'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3361: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3302: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3302: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3303: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3303: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3304: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3304: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3305: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3305: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3306: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3306: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3307: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3307: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3308: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3308: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3309: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3309: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3325: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3325: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3326: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3326: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3327: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3327: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3328: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3328: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3329: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3329: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3342: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3342: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3343: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3343: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3344: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3344: undefined reference to `BN_bn2bin'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3345: undefined reference to `BN_num_bits'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3345: undefined reference to `BN_bn2bin'
    ext/openssl/openssl.o: In function `verify_callback':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4408: undefined reference to `X509_STORE_CTX_get_current_cert'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4409: undefined reference to `X509_STORE_CTX_get_error'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4410: undefined reference to `X509_STORE_CTX_get_error_depth'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4413: undefined reference to `SSL_get_ex_data_X509_STORE_CTX_idx'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4413: undefined reference to `X509_STORE_CTX_get_ex_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4414: undefined reference to `SSL_get_ex_data'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4427: undefined reference to `X509_STORE_CTX_set_error'
    ext/openssl/openssl.o: In function `zif_openssl_get_md_methods':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4663: undefined reference to `OBJ_NAME_do_all_sorted'
    ext/openssl/openssl.o: In function `zif_openssl_get_cipher_methods':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4679: undefined reference to `OBJ_NAME_do_all_sorted'
    ext/openssl/openssl.o: In function `zif_openssl_digest':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4700: undefined reference to `EVP_get_digestbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4706: undefined reference to `EVP_MD_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4709: undefined reference to `EVP_DigestInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4710: undefined reference to `EVP_DigestUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4711: undefined reference to `EVP_DigestFinal'
    ext/openssl/openssl.o: In function `zif_openssl_dh_compute_key':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4965: undefined reference to `EVP_PKEY_type'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4969: undefined reference to `BN_bin2bn'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4971: undefined reference to `DH_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4972: undefined reference to `DH_compute_key'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4982: undefined reference to `BN_free'
    ext/openssl/openssl.o: In function `zif_openssl_random_pseudo_bytes':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:5010: undefined reference to `RAND_pseudo_bytes'
    ext/openssl/openssl.o: In function `zif_openssl_error_string':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4079: undefined reference to `ERR_get_error'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4081: undefined reference to `ERR_error_string'
    ext/openssl/openssl.o: In function `zif_openssl_cipher_iv_length':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4938: undefined reference to `EVP_get_cipherbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4944: undefined reference to `EVP_CIPHER_iv_length'
    ext/openssl/openssl.o: In function `zif_openssl_encrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4780: undefined reference to `EVP_get_cipherbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4786: undefined reference to `EVP_CIPHER_key_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4795: undefined reference to `EVP_CIPHER_iv_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4801: undefined reference to `EVP_CIPHER_block_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4804: undefined reference to `EVP_EncryptInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4808: undefined reference to `EVP_EncryptInit_ex'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4810: undefined reference to `EVP_EncryptUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4813: undefined reference to `EVP_EncryptFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4836: undefined reference to `EVP_CIPHER_CTX_cleanup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4806: undefined reference to `EVP_CIPHER_CTX_set_key_length'
    ext/openssl/openssl.o: In function `zif_openssl_decrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4864: undefined reference to `EVP_get_cipherbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4880: undefined reference to `EVP_CIPHER_key_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4889: undefined reference to `EVP_CIPHER_iv_length'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4891: undefined reference to `EVP_CIPHER_block_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4894: undefined reference to `EVP_DecryptInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4898: undefined reference to `EVP_DecryptInit_ex'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4899: undefined reference to `EVP_DecryptUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4901: undefined reference to `EVP_DecryptFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4918: undefined reference to `EVP_CIPHER_CTX_cleanup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4896: undefined reference to `EVP_CIPHER_CTX_set_key_length'
    ext/openssl/openssl.o: In function `php_openssl_csr_from_zval':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2295: undefined reference to `BIO_new_mem_buf'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2297: undefined reference to `PEM_read_bio_X509_REQ'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2298: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2293: undefined reference to `BIO_new_file'
    ext/openssl/openssl.o: In function `zif_openssl_csr_export':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2376: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2376: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2381: undefined reference to `PEM_write_bio_X509_REQ'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2394: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2392: undefined reference to `X509_REQ_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2384: undefined reference to `BIO_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2378: undefined reference to `X509_REQ_print'
    ext/openssl/openssl.o: In function `zif_openssl_csr_get_public_key':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2662: undefined reference to `X509_REQ_get_pubkey'
    ext/openssl/openssl.o: In function `php_openssl_x509_from_zval':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1200: undefined reference to `BIO_new_mem_buf'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1205: undefined reference to `d2i_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1205: undefined reference to `PEM_ASN1_read_bio'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1209: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1191: undefined reference to `BIO_new_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1195: undefined reference to `PEM_read_bio_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1196: undefined reference to `BIO_free'
    ext/openssl/openssl.o: In function `zif_openssl_x509_export_to_file':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1247: undefined reference to `BIO_new_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1252: undefined reference to `PEM_write_bio_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1261: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1250: undefined reference to `X509_print'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1259: undefined reference to `X509_free'
    ext/openssl/openssl.o: In function `zif_openssl_x509_export':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1286: undefined reference to `BIO_s_mem'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1286: undefined reference to `BIO_new'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1290: undefined reference to `PEM_write_bio_X509'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1294: undefined reference to `BIO_ctrl'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1303: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1301: undefined reference to `X509_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1288: undefined reference to `X509_print'
    ext/openssl/openssl.o: In function `php_openssl_evp_from_zval':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2813: undefined reference to `BIO_new_mem_buf'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2811: undefined reference to `BIO_new_file'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2819: undefined reference to `PEM_read_bio_PrivateKey'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2820: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2826: undefined reference to `X509_get_pubkey'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2830: undefined reference to `X509_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2795: undefined reference to `BIO_new_mem_buf'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2800: undefined reference to `PEM_read_bio_PUBKEY'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2801: undefined reference to `BIO_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2826: undefined reference to `X509_get_pubkey'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:2793: undefined reference to `BIO_new_file'
    ext/openssl/openssl.o: In function `zif_openssl_private_encrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3844: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3850: undefined reference to `RSA_private_encrypt'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3871: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_private_decrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3902: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3908: undefined reference to `RSA_private_decrypt'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3934: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_public_encrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3967: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3973: undefined reference to `RSA_public_encrypt'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:3992: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_public_decrypt':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4026: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4032: undefined reference to `RSA_public_decrypt'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4063: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_sign':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4129: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4132: undefined reference to `EVP_DigestInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4133: undefined reference to `EVP_DigestUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4134: undefined reference to `EVP_SignFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4143: undefined reference to `EVP_MD_CTX_cleanup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4145: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4119: undefined reference to `EVP_get_digestbyname'
    ext/openssl/openssl.o: In function `zif_openssl_verify':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4191: undefined reference to `EVP_DigestInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4192: undefined reference to `EVP_DigestUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4193: undefined reference to `EVP_VerifyFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4194: undefined reference to `EVP_MD_CTX_cleanup'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4175: undefined reference to `EVP_get_digestbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4197: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_seal':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4232: undefined reference to `EVP_get_cipherbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4259: undefined reference to `EVP_PKEY_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4264: undefined reference to `EVP_EncryptInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4316: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4275: undefined reference to `EVP_CIPHER_CTX_block_size'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4277: undefined reference to `EVP_SealInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4277: undefined reference to `EVP_EncryptUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4283: undefined reference to `EVP_SealFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4238: undefined reference to `EVP_rc4'
    ext/openssl/openssl.o: In function `zif_openssl_open':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4356: undefined reference to `EVP_get_cipherbyname'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4367: undefined reference to `EVP_OpenInit'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4367: undefined reference to `EVP_DecryptUpdate'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4371: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4368: undefined reference to `EVP_OpenFinal'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4362: undefined reference to `EVP_rc4'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:4383: undefined reference to `EVP_PKEY_free'
    ext/openssl/openssl.o: In function `zif_openssl_x509_check_private_key':
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1327: undefined reference to `X509_check_private_key'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1331: undefined reference to `EVP_PKEY_free'
    /home/yuri/_/php-5.3.29/ext/openssl/openssl.c:1334: undefined reference to `X509_free'
    ext/openssl/openssl.o: In function `zif_openssl_x509_parse':
    /hom

    Which one is it supposed to be? I have both versions installed side-by-side in /usr/lib, the prefix was /usr. Also, I was thinking about openssl installing header files into /usr/include. Aren't they needed to compile this php extension? openssl098 basically installs just the library:
    $ pacaur -Ql openssl098
    openssl098 /usr/
    openssl098 /usr/bin/
    openssl098 /usr/bin/openssl098
    openssl098 /usr/lib/
    openssl098 /usr/lib/libcrypto.so.0.9.8
    openssl098 /usr/lib/libssl.so.0.9.8
    openssl098 /usr/share/
    openssl098 /usr/share/licenses/
    openssl098 /usr/share/licenses/openssl098
    Maybe I should go with compiling openssl from sources after all...
    On a side note
    x33a wrote:In case you do try out an older version, make sure to use one with the heartbleed patch.
    Does it matter? I'm going to use it for development.

  • Using PHP to generate images in alternate colors

    I have a PNG image of a black silhouette graphic with
    softened edges against a transparent background.
    Can I use PHP to generate this image in alternate colors
    (allowing the black graphic to be displayed in a color other than
    black)?

    AngryCloud posted in macromedia.dreamweaver:
    > I have a PNG image of a black silhouette graphic with
    softened
    > edges against a transparent background.
    >
    > Can I use PHP to generate this image in alternate colors
    > (allowing the black graphic to be displayed in a color
    other than
    > black)?
    I have no experience with this, but I was just poking around
    in the GD
    references and found a comment on imagefill() that might
    help:
    http://us.php.net/manual/en/function.imagefill.php
    Comment:
    http://us.php.net/manual/en/function.imagefill.php#81873
    Or you may need to work with some of the other alpha
    functions.
    Mark A. Boyd
    Keep-On-Learnin' :)

  • Unable load  library '/usr/lib64/php/modules/oci8.so' - libclntsh.so.11.1

    Dear all,
    I have a problem with OCI8 installation and I would appreciate if you could kindly guide me how to solve this issue.
    I started reading the following articles in order to learn how to install the OCI8 package allowing to connect from PHP to oracle
    http://www.php.net/manual/en/oci8.installation.php
    http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html
    Here is my environment description
    OS: Fedora Core 17 (X86_64)
    Oracle version: Oracle Enterprise Edition 11gR2 (11.2.0.1.0) X86_64
    PHP Version: 5.4.13
    Apache version: 2.2.23Just a detail: almost every documentation starts by explaining the instant client installation. However, on the same physical machine, before even installing Apache and PHP. Oracle server had been completely installed, that is, both server and client (SQL*Plus, SQL*Loader, . . .). As a result, I omitted this step in the documentation and I continued by installation direcly OCI8 and apparently everything was compiled successfully (no error message).
    Problem: OCI8 doesn't show up in phpinfo()
    So it seems that there is a problem. I'm going to write down exactly how I proceeded and I would appreciate if you could kindly take a look at these steps and tell whether I made mistake(s)
    I started by running as ROOT. As I said the oracle server was already installed on the machine and so all the required environment variables such as LD_LIBRARY_PATH, ORACLE_SID, . . . were already defined in ~/.bash_profile
    And if you look at the below output, you can see that for example ORACLE_HOME was detected automatically during the installation (*checking Oracle ORACLE_HOME install directory... /u01/app/oracle/product/11.2.0/db_1*)
    # pecl install oci8This gave me the following output
    # pecl install oci8
    downloading oci8-1.4.9.tgz ...
    Starting to download oci8-1.4.9.tgz (169,255 bytes)
    .....................................done: 169,255 bytes
    10 source files, building
    running: phpize
    Configuring for:
    PHP Api Version:         20100412
    Zend Module Api No:      20100525
    Zend Extension Api No:   220100525
    Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :
    building in /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9
    running: /var/tmp/oci8/configure --with-oci8
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for cc... cc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether cc accepts -g... yes
    checking for cc option to accept ISO C89... none needed
    checking how to run the C preprocessor... cc -E
    checking for icc... no
    checking for suncc... no
    checking whether cc understands -c and -o together... yes
    checking for system library directory... lib
    checking if compiler supports -R... no
    checking if compiler supports -Wl,-rpath,... yes
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for PHP prefix... /usr
    checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
    checking for PHP extension directory... /usr/lib64/php/modules
    checking for PHP installed headers prefix... /usr/include/php
    checking if debug is enabled... no
    checking if zts is enabled... no
    checking for re2c... no
    configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
    checking for gawk... gawk
    checking for Oracle Database OCI8 support... yes, shared
    checking PHP version... 5.4.13, ok
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking size of long int... 8
    checking checking if we're on a 64-bit platform... yes
    checking Oracle ORACLE_HOME install directory... /u01/app/oracle/product/11.2.0/db_1
    checking ORACLE_HOME library validity... lib
    checking Oracle library version compatibility... 11.1
    checking how to print strings... printf
    checking for a sed that does not truncate output... (cached) /usr/bin/sed
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by cc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... yes
    checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
    checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for ar... ar
    checking for archiver @FILE support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking for gawk... (cached) gawk
    checking command to parse /usr/bin/nm -B output from cc object... ok
    checking for sysroot... no
    checking for mt... no
    checking if : is a manifest tool... no
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if cc supports -fno-rtti -fno-exceptions... no
    checking for cc option to produce PIC... -fPIC -DPIC
    checking if cc PIC flag -fPIC -DPIC works... yes
    checking if cc static flag -static works... no
    checking if cc supports -c -o file.o... yes
    checking if cc supports -c -o file.o... (cached) yes
    checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    configure: creating ./config.status
    config.status: creating config.h
    config.status: executing libtool commands
    running: make
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=compile cc  -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/oci8/oci8.c -o oci8.lo
    libtool: compile:  cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8.c  -fPIC -DPIC -o .libs/oci8.o
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=compile cc  -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/oci8/oci8_lob.c -o oci8_lob.lo
    libtool: compile:  cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8_lob.c  -fPIC -DPIC -o .libs/oci8_lob.o
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=compile cc  -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/oci8/oci8_statement.c -o oci8_statement.lo
    libtool: compile:  cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8_statement.c  -fPIC -DPIC -o .libs/oci8_statement.o
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=compile cc  -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/oci8/oci8_collection.c -o oci8_collection.lo
    libtool: compile:  cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8_collection.c  -fPIC -DPIC -o .libs/oci8_collection.o
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=compile cc  -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -c /var/tmp/oci8/oci8_interface.c -o oci8_interface.lo
    libtool: compile:  cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8_interface.c  -fPIC -DPIC -o .libs/oci8_interface.o
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=link cc -DPHP_ATOM_INC -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/include -I/var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/u01/app/oracle/product/11.2.0/db_1/rdbms/public -I/u01/app/oracle/product/11.2.0/db_1/rdbms/demo  -DHAVE_CONFIG_H  -g -O2   -o oci8.la -export-dynamic -avoid-version -prefer-pic -module -rpath /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules  oci8.lo oci8_lob.lo oci8_statement.lo oci8_collection.lo oci8_interface.lo -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/lib -L/u01/app/oracle/product/11.2.0/db_1/lib -lclntsh
    libtool: link: cc -shared  -fPIC -DPIC  .libs/oci8.o .libs/oci8_lob.o .libs/oci8_statement.o .libs/oci8_collection.o .libs/oci8_interface.o   -L/u01/app/oracle/product/11.2.0/db_1/lib -lclntsh  -O2 -Wl,-rpath -Wl,/u01/app/oracle/product/11.2.0/db_1/lib   -Wl,-soname -Wl,oci8.so -o .libs/oci8.so
    libtool: link: ( cd ".libs" && rm -f "oci8.la" && ln -s "../oci8.la" "oci8.la" )
    /bin/sh /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/libtool --mode=install cp ./oci8.la /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules
    libtool: install: cp ./.libs/oci8.so /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules/oci8.so
    libtool: install: cp ./.libs/oci8.lai /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules/oci8.la
    libtool: finish: PATH="/usr/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/opt/libreoffice4.0/program:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/opt/libreoffice4.0/program:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/opt/libreoffice4.0/program:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/opt/libreoffice4.0/program:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/op
    t/libreoffice4.0/program:/root/.local/bin:/root/bin:/usr/local/jdk1.7.0_05/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/u01/app/oracle/product/11.2.0/db_1/bin:/opt/libreoffice4.0/program:/sbin" ldconfig -n /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules
    Libraries have been installed in:
       /var/tmp/pear-build-rootGiD7YE/oci8-1.4.9/modules
    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR'
    flag during linking and do at least one of the following:
       - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
         during execution
       - add LIBDIR to the `LD_RUN_PATH' environment variable
         during linking
       - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
       - have your system administrator add LIBDIR to `/etc/ld.so.conf'
    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    Build complete.
    Don't forget to run 'make test'.
    running: make INSTALL_ROOT="/var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9" install
    Installing shared extensions:     /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr/lib64/php/modules/
    running: find "/var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9" | xargs ls -dils
    3679979   4 drwxr-xr-x. 3 root root   4096 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9
    3680009   4 drwxr-xr-x. 3 root root   4096 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr
    3680010   4 drwxr-xr-x. 3 root root   4096 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr/lib64
    3680011   4 drwxr-xr-x. 3 root root   4096 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr/lib64/php
    3680012   4 drwxr-xr-x. 2 root root   4096 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr/lib64/php/modules
    3680008 596 -rwxr-xr-x. 1 root root 606865 Apr  4 15:48 /var/tmp/pear-build-rootGiD7YE/install-oci8-1.4.9/usr/lib64/php/modules/oci8.so
    Build process completed successfully
    Installing '/usr/lib64/php/modules/oci8.so'
    install ok: channel://pecl.php.net/oci8-1.4.9
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=oci8.so" to php.ini
    # Once OCI8 was installed I updated the */etc/php.ini* accordingly by adding the following entries
    ; Dynamic Extensions ;
    ; If you wish to have an extension loaded automatically, use the following
    ; syntax:
    ;   extension=modulename.extension
    extension=oci8.so
    ; Paths and Directories ;
    ; UNIX: "/path1:/path2"
    extension_dir="/usr/lib64/php/modules"Also I updated the */etc/sysconfig/httpd* in order to export the specified set of OS environment variables. So I added the following lines at the end of the file
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
    LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib:/u01/app/oracle/product/11.2.0/db_1/network/lib
    LD_LIBRARY_PATH64=/u01/app/oracle/product/11.2.0/db_1/lib:/u01/app/oracle/product/11.2.0/db_1/network/lib
    TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin
    NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
    ORACLE_SID=db01In order to check that these values are actually taken into account by Apache, I run
    # service httpd restartThen I run a PHP script with phpinfo() and in the section Environment the above values were present in particular the LD_LIBRARY_PATH variable.
    However, as I said, there is no OCI8 entry in phpinfo() output. I checked the apache log file and I saw that there is a problem
    # cat /var/log/httpd/error_log
    [Thu Apr 04 16:02:13 2013] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
    [Thu Apr 04 16:02:13 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Thu Apr 04 16:02:13 2013] [notice] Digest: generating secret for digest authentication ...
    [Thu Apr 04 16:02:13 2013] [notice] Digest: done
    PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/oci8.so' - libclntsh.so.11.1: cannot open shared object file: No such file or directory in Unknown on line 0
    [Thu Apr 04 16:02:13 2013] [warn] mod_wsgi: Compiled for Python/2.7.2.
    [Thu Apr 04 16:02:13 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
    [Thu Apr 04 16:02:13 2013] [notice] Apache/2.2.23 (Unix) DAV/2 PHP/5.4.13 mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
    #What I understand from the above log is that the shared library libclntsh.so.11.1 cannot be found. Yet I checked and I saw that it is present in LD_LIBRARY_PATH
    # locate libclntsh.so
    /u01/app/oracle/product/11.2.0/db_1/inventory/Scripts/ext/lib/libclntsh.so.11.1
    /u01/app/oracle/product/11.2.0/db_1/inventory/backup/2012-06-25_12-08-41PM/Scripts/ext/lib/libclntsh.so.11.1
    /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so
    /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.10.1
    /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
    # So the last line, shows that the specified library exists in */u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1*.
    So I don't really seem what is the problem and the more strange thing is that in command line PHP seem to detect my oracle server parameters.
    $ php --ri oci8
    oci8
    OCI8 Support => enabled
    Version => 1.4.9
    Revision => $Id: e2241cffb72c940cb2ca267b7a6a0ce436de7e5e $
    Active Persistent Connections => 0
    Active Connections => 0
    Oracle Run-time Client Library Version => 11.2.0.1.0
    Oracle Version => 11.2
    Compile-time ORACLE_HOME => /u01/app/oracle/product/11.2.0/db_1
    Libraries Used => -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/lib -L/u01/app/oracle/product/11.2.0/db_1/lib  -lclntsh
    Temporary Lob support => enabled
    Collections support => enabled
    Directive => Local Value => Master Value
    oci8.max_persistent => -1 => -1
    oci8.persistent_timeout => -1 => -1
    oci8.ping_interval => 60 => 60
    oci8.privileged_connect => Off => Off
    oci8.statement_cache_size => 20 => 20
    oci8.default_prefetch => 100 => 100
    oci8.old_oci_close_semantics => Off => Off
    oci8.connection_class => no value => no value
    oci8.events => Off => Off
    $ I thought maybe there are several different php.ini and the one used within GUI is not the same used in CLI but a search showed that there is just one php.ini file
    # locate php.ini
    /etc/php.ini
    # php -i | grep Configuration
    Configuration File (php.ini) Path => /etc
    Loaded Configuration File => /etc/php.ini
    Configuration
    #It is almost 3 days that I'm googling without success to find the solution to this problem.
    So, could someone help me, what is the problem? Why the OCI8 module cannot be loaded by PHP and become visible in the phpinfo() output?
    Thanks in advance,
    Regards,
    Dariyoosh

    cj wrote:
    Try disabling SELinux. On Oracle Linux you would edit /etc/selinux/config, set SELINUX to DISABLED, and reboot. Also see the setenforce command.Yes !!!!!!!!
    Thanks man it worked !! It was SELinux which was blocking the library load. Now I have OCI8 entry in phpinfo(). At the same time as we saw before the PHP in command line could detect OCI8, maybe this means that SELinux doesn't have the same impact in CLI as in GUI. Conclusion, you were totally correct about defining the environment variables in /etc/syscnfig/httpd. The variables were actually defined (with a slight difference in syntax that I will show below), yet SELinux prevented PHP from loading the oracle libraray.
    I also wrote a test SQL script (SELECT employee_id FROM employees WHERE department_id = 100) and the result was printed on the screen perfectly.
    So for those who may have encountered the same problem with the same environment parameters I'm going to give a summary of how I proceeded in the case where it might be helpful for others.
    My environment
    OS: Linux Fedora Core 17 (X86_64)
    Oracle version: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit
    Apache version (httpd): Apache 2.0
    PHP version: 5.4.13
    Before the installation
    Before the installation I disabled SELinux. At the time of writing I'm not an expert of SELinux so I don't know any rule modification in order to modify SELinux policy accordingly allowing to OCI8 module to load oracle libraries. As a result I finally disabled completely the SELinux on my system which may have serious security impacts! This can be done in the following way (being as root)
    # vim  /etc/selinux/configThe file content is something similar to the following
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted So what I did was that I put a comment at the beginning of the line SELINUX=enforcing and instead I added a new line right after that line which was SELINUX=disabled.
    Finally I rebooted the system.
    Installation:
    - Make sure that all oracle environment variables are defined in ~/.bash_profile of the user who installs OCI8. Otherwise you will have to enter manually the path to $ORACLE_HOME. I tested both ways and each method works pretty well. Yet I find the first one more elegant because it detects automatically everything
    - In my case, PHP, Apache and Oracle server were all on the same physical machine, therefore I didn't need to install the Oracle Instant client*. All the required oracle libraries for OCI8 were therefore already available.
    - being as ROOT, I run the following (I don't know whether this was mandatory but I prefered to stop httpd before installing OCI8)
    # pecl install oci8(On my machine pecl was already there, if not you can install it by using yum)
    - Once installation is over, at the end of the installation report in the terminal you will get something like this
    >
    Build process completed successfully
    Installing '/usr/lib64/php/modules/oci8.so'
    install ok: channel://pecl.php.net/oci8-1.4.9
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=oci8.so" to php.ini
    >
    The two bold lines above shows what you have to put in your php.ini file (on my computer this file is in */etc/php.ini* )
    So I updated the php.ini file in the following way:
    ; Dynamic Extensions ;
    ; If you wish to have an extension loaded automatically, use the following
    ; syntax:
    ;   extension=modulename.extension
    extension=oci8.so
    ; Paths and Directories ;
    ; UNIX: "/path1:/path2"
    extension_dir="/usr/lib64/php/modules"Then you have to define the required oracle environment variables for Apache. According to what I read in http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html and in several forums while I was googling for this problem and also based on my own tests, it seems to me that depending on which Apache version you're using, the syntax for declaring the environment variables in */etc/sysconfig/httpd* is not the same.
    Here is what I added at the end of the file /etc/sysconfig/httpd
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
    LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib:/u01/app/oracle/product/11.2.0/db_1/network/lib
    TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin
    NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
    ORACLE_SID=db01I tried to use the export keyword before the variable names but it didn't work for me, yet I saw in other forums that there were people who apparently had used that syntax successfully. So again it is a matter of personal observation. For me using Apache 2.0, only the above syntax works. Also if I use $ in order to expand the environment variables it doesn't work
    so for example instead of writing
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/libI had to write explicitly the expanded values myself, that is,
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
    LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib:/u01/app/oracle/product/11.2.0/db_1/network/libOnce this is done, restart httpd
    # service httpd startIf everything went well, normally you will see the OCI8 entry if you run phpinfo() in a test PHP script.
    Hope this may help others,
    Once again, thanks a lot to cj for his time and his valuable help for solving my problem.
    Regards,
    Dariyoosh

  • Q. How to get multiple results from a single column in a recordset using PHP

    Hi everyone
    Hope someone can help. I have a column called categories and about 5 categories listed. I want to show all products that are listed in say 2 categories. I only have basic php skills so only know how to pass a url value to show the products from 1 category e.g. 
    Select *
    FROM product
    WHERE category = colname
    $colname = $_GET['category'];
    URL...page.php?category=fruit
    Questions is how do I get the products from multiple categories to show e.g. all products from categories 'fruit', 'dairy', 'meat'
    Your help will be much appreciated as I am getting tired of beating my head against the wall. (should invent a PHP wall pillow and sell it online)
    Thanks

    $colname1 = $_GET['category1'];
    $colname2 = $_GET['category2'];
    $colname3 = $_GET['category3'];
    Select *
    FROM product
    WHERE category IN  ('$colname1', '$colname2', '$colname3')
    >Your help will be much appreciated as I am getting tired of beating my head against the wall
    My guess is that you are trying to build a web application without having first learned the basics on PHP and SQL. That's certainly the hard way.

  • How Can i use the key file Generated by RSACryptoServiceProvider to encrypt with php?

    I need to be able to encrypt data in PHP using a public key generate by .NET(RSACryptoServiceProvider).  I will then decrypt the data later in C# using the private key.
    Code Snippet
    <RSAKeyValue><Modulus>xU5JyaPNDKXI/h/uo5Vk89wZSz3zsB1+c+1IMYIQa+mCmuRCRPuoBI7ODSV2ndP6grfhdrWEzhpZtkI3SThbBh/3t+tfZ2PF8Iyv9ECN07V64nPCiJGhAnfENE+J9UD9Kw5czXHgZcBbpM5N0VfXmLSleaS65DDoNPtoStVy7ss=</Modulus><Exponent>AQAB</Exponent><P>4ScAjVrPZii/6lICAP2yDQiNEmNL74+5AcxNVDI0IombfDPIygrqEWmuDu0pngApQak7XnEnLbaDChILFiHPZQ==</P><Q>4FaYlse+cjrlPD/jk+GsTJeuP7yuQx8ztjVnQWVh6GKQP+uk1dAl6kcZOfLNR6LWwE3CSygt8PthTEw96Zbabw==</Q><DP>XvXtNLE9UjATqYeHEtXtV7Pok/3PVC3A8PIzFzTJaluxeXP51sU9rbRt1hvO9rXIsMnooU+GH7Cfmgq8JEyERQ==</DP><DQ>HXkC/vwq9xLpvuqd2XXSjxV2XQVK16Knxo5pjFvnawJX9S3eMADymj7Q/534firUj9snZXxX3MsJ015I3AFnnQ==</DQ><InverseQ>AM0fVCE3n2FKf2zb3CcDEge1Ko35VvMEL+LXgR87QwO2HScZSuLevGLi2SSAkB1vu8RSNzB028SZReeOZWnq4Q==</InverseQ><D>fI+GKdRNOTTYhQZnw8Im74T+OvArjf2wvUMJlqfD8jyDBYIhDCfL1MTK9KW4Er+moSuxHR5Pb0ZXaKa4/HKlk0aJ1jB2C+jg7zTSuPRNuS16BpVHaJYsQurCwZwElXMum+GxeXK/h3wXWq5HwebjqZr0aLUMZKRcweDPRoVFiRE=</D></RSAKeyValue>
    As you see this code snippet is a xml format private key. at .net platform,which can use encrypt or dencrypt.
    i have try the Extension Crypt RSA ( http://pear.php.net/reference/Crypt_RSA-1.0.0/elementindex_Crypt_RSA.html ) to help me encrypt data by php.but it haven't return a currect result. the data encrypted by php cann't dencrypt by c#.
    does the RSA algorithm provider by Crypt_RSA can give a stand result as c#?
    BTW :i just use the xmlkeystring like this.
    Code Snippet
    <?php
    require_once("Crypt/RSA.php");
    require_once("includes/Utils.class.php");
        $public_key_string = simplexml_load_string("<RSAKeyValue><Modulus>xU5JyaPNDKXI/h/uo5Vk89wZSz3zsB1+c+1IMYIQa+mCmuRCRPuoBI7ODSV2ndP6grfhdrWEzhpZtkI3SThbBh/3t+tfZ2PF8Iyv9ECN07V64nPCiJGhAnfENE+J9UD9Kw5czXHgZcBbpM5N0VfXmLSleaS65DDoNPtoStVy7ss=</Modulus><Exponent>AQAB</Exponent><P>4ScAjVrPZii/6lICAP2yDQiNEmNL74+5AcxNVDI0IombfDPIygrqEWmuDu0pngApQak7XnEnLbaDChILFiHPZQ==</P><Q>4FaYlse+cjrlPD/jk+GsTJeuP7yuQx8ztjVnQWVh6GKQP+uk1dAl6kcZOfLNR6LWwE3CSygt8PthTEw96Zbabw==</Q><DP>XvXtNLE9UjATqYeHEtXtV7Pok/3PVC3A8PIzFzTJaluxeXP51sU9rbRt1hvO9rXIsMnooU+GH7Cfmgq8JEyERQ==</DP><DQ>HXkC/vwq9xLpvuqd2XXSjxV2XQVK16Knxo5pjFvnawJX9S3eMADymj7Q/534firUj9snZXxX3MsJ015I3AFnnQ==</DQ><InverseQ>AM0fVCE3n2FKf2zb3CcDEge1Ko35VvMEL+LXgR87QwO2HScZSuLevGLi2SSAkB1vu8RSNzB028SZReeOZWnq4Q==</InverseQ><D>fI+GKdRNOTTYhQZnw8Im74T+OvArjf2wvUMJlqfD8jyDBYIhDCfL1MTK9KW4Er+moSuxHR5Pb0ZXaKa4/HKlk0aJ1jB2C+jg7zTSuPRNuS16BpVHaJYsQurCwZwElXMum+GxeXK/h3wXWq5HwebjqZr0aLUMZKRcweDPRoVFiRE=</D></RSAKeyValue>");
        $key =new Crypt_RSA_Key(base64_decode($public_key_string->Modulus),base64_decode($public_key_string->Exponent),"public");
        echo "<pre>";
        print_r($key);
        echo "</pre>";
        $rsa_obj = new Crypt_RSA();
        //try encrypt data
        echo "encrypted result is:<br/>".$rsa_obj->encrypt("this is a smple text.",$key)
        ?>
    but the encrypted data cann't decrypt by c#?where is the problem?what should i do with php codes?

    thank you for your reply, i also found this article by google.but this does not meet scene,  thank you all the same.
    i have already solved the problem now,i'd like to post the Solution .infact it's so easy to use rsakey file generated by .net .
    -------------rsa.class.php-------------------
    Code Snippet
    <?php
     * Some constants
    define("BCCOMP_LARGER", 1);
    class RSA
      * PHP implementation of the RSA algorithm
      * (C) Copyright 2004 Edsko de Vries, Ireland
      * Licensed under the GNU Public License (GPL)
      * This implementation has been verified against [3]
      * (tested Java/PHP interoperability).
      * References:
      * [1] "Applied Cryptography", Bruce Schneier, John Wiley & Sons, 1996
      * [2] "Prime Number Hide-and-Seek", Brian Raiter, Muppetlabs (online)
      * [3] "The Bouncy Castle Crypto Package", Legion of the Bouncy Castle,
      *      (open source cryptography library for Java, online)
      * [4] "PKCS #1: RSA Encryption Standard", RSA Laboratories Technical Note,
      *      version 1.5, revised November 1, 1993
      * Functions that are meant to be used by the user of this PHP module.
      * Notes:
      * - $key and $modulus should be numbers in (decimal) string format
      * - $message is expected to be binary data
      * - $keylength should be a multiple of 8, and should be in bits
      * - For rsa_encrypt/rsa_sign, the length of $message should not exceed
      *   ($keylength / 8) - 11 (as mandated by [4]).
      * - rsa_encrypt and rsa_sign will automatically add padding to the message.
      *   For rsa_encrypt, this padding will consist of random values; for rsa_sign,
      *   padding will consist of the appropriate number of 0xFF values (see [4])
      * - rsa_decrypt and rsa_verify will automatically remove message padding.
      * - Blocks for decoding (rsa_decrypt, rsa_verify) should be exactly
      *   ($keylength / 8) bytes long.
      * - rsa_encrypt and rsa_verify expect a public key; rsa_decrypt and rsa_sign
      *   expect a private key.
      * rsa encrypt data
      * @param binary string $message
      * @param unknown_type $public_key
      * @param numbers $modulus
      * @param numbers $keylength
      * @return binary data
     function rsa_encrypt($message, $public_key, $modulus, $keylength)
      $padded = RSA::add_PKCS1_padding($message, true, $keylength / 8);
      $number = RSA::binary_to_number($padded);
      $encrypted = RSA::pow_mod($number, $public_key, $modulus);
      $result = RSA::number_to_binary($encrypted, $keylength / 8);
      return $result;
     function rsa_decrypt($message, $private_key, $modulus, $keylength)
      $number = RSA::binary_to_number($message);
      $decrypted = RSA::pow_mod($number, $private_key, $modulus);
      $result = RSA::number_to_binary($decrypted, $keylength / 8);
      return RSA::remove_PKCS1_padding($result, $keylength / 8);
     function rsa_sign($message, $private_key, $modulus, $keylength)
      $padded = RSA::add_PKCS1_padding($message, false, $keylength / 8);
      $number = RSA::binary_to_number($padded);
      $signed = RSA::pow_mod($number, $private_key, $modulus);
      $result = RSA::number_to_binary($signed, $keylength / 8);
      return $result;
     function rsa_verify($message, $public_key, $modulus, $keylength)
      return RSA::rsa_decrypt($message, $public_key, $modulus, $keylength);
     function rsa_kyp_verify($message, $public_key, $modulus, $keylength)
      $number = RSA::binary_to_number($message);
      $decrypted = RSA::pow_mod($number, $public_key, $modulus);
      $result = RSA::number_to_binary($decrypted, $keylength / 8);
      return RSA::remove_KYP_padding($result, $keylength / 8);
      * The actual implementation.
      * Requires BCMath support in PHP (compile with --enable-bcmath)
     // Calculate (p ^ q) mod r
     // We need some trickery to [2]:
     //   (a) Avoid calculating (p ^ q) before (p ^ q) mod r, because for typical RSA
     //       applications, (p ^ q) is going to be _WAY_ too large.
     //       (I mean, __WAY__ too large - won't fit in your computer's memory.)
     //   (b) Still be reasonably efficient.
     // We assume p, q and r are all positive, and that r is non-zero.
     // Note that the more simple algorithm of multiplying $p by itself $q times, and
     // applying "mod $r" at every step is also valid, but is O($q), whereas this
     // algorithm is O(log $q). Big difference.
     // As far as I can see, the algorithm I use is optimal; there is no redundancy
     // in the calculation of the partial results.
     function pow_mod($p, $q, $r)
      // Extract powers of 2 from $q
      $factors = array();
      $div = $q;
      $power_of_two = 0;
      while(bccomp($div, "0") == BCCOMP_LARGER)
       $rem = bcmod($div, 2);
       $div = bcdiv($div, 2);
       if($rem) array_push($factors, $power_of_two);
       $power_of_two++;
      // Calculate partial results for each factor, using each partial result as a
      // starting point for the next. This depends of the factors of two being
      // generated in increasing order.
      $partial_results = array();
      $part_res = $p;
      $idx = 0;
      foreach($factors as $factor)
       while($idx < $factor)
        $part_res = bcpow($part_res, "2");
        $part_res = bcmod($part_res, $r);
        $idx++;
       array_push($partial_results, $part_res);
      // Calculate final result
      $result = "1";
      foreach($partial_results as $part_res)
       $result = bcmul($result, $part_res);
       $result = bcmod($result, $r);
      return $result;
     // Function to add padding to a decrypted string
     // We need to know if this is a private or a public key operation [4]
     function add_PKCS1_padding($data, $isPublicKey, $blocksize)
      $pad_length = $blocksize - 3 - strlen($data);
      if($isPublicKey)
       $block_type = "\x02";
       $padding = "";
       for($i = 0; $i < $pad_length; $i++)
        $rnd = mt_rand(1, 255);
        $padding .= chr($rnd);
      else
       $block_type = "\x01";
       $padding = str_repeat("\xFF", $pad_length);
      return "\x00" . $block_type . $padding . "\x00" . $data;
     // Remove padding from a decrypted string
     // See [4] for more details.
     function remove_PKCS1_padding($data, $blocksize)
      assert(strlen($data) == $blocksize);
      $data = substr($data, 1);
      // We cannot deal with block type 0
      if($data{0} == '\0')
      die("Block type 0 not implemented.");
      // Then the block type must be 1 or 2
      assert(($data{0} == "\x01") || ($data{0} == "\x02"));
      // Remove the padding
      $offset = strpos($data, "\0", 1);
      return substr($data, $offset + 1);
     // Remove "kyp" padding
     // (Non standard)
     function remove_KYP_padding($data, $blocksize)
      assert(strlen($data) == $blocksize);
      $offset = strpos($data, "\0");
      return substr($data, 0, $offset);
     // Convert binary data to a decimal number
     function binary_to_number($data)
      $base = "256";
      $radix = "1";
      $result = "0";
      for($i = strlen($data) - 1; $i >= 0; $i--)
       $digit = ord($data{$i});
       $part_res = bcmul($digit, $radix);
       $result = bcadd($result, $part_res);
       $radix = bcmul($radix, $base);
      return $result;
     // Convert a number back into binary form
     function number_to_binary($number, $blocksize)
      $base = "256";
      $result = "";
      $div = $number;
      while($div > 0)
       $mod = bcmod($div, $base);
       $div = bcdiv($div, $base);
       $result = chr($mod) . $result;
      return str_pad($result, $blocksize, "\x00", STR_PAD_LEFT);
    ?>
    -------------RSAProcessor.class.php------------------------
    Code Snippet
    <?php
    require_once("rsa.class.php");
    class RSAProcessor
     private $public_key = null;
     private $private_key = null;
     private $modulus = null;
     private $key_length = "1024";
     public function __construct($xmlRsakey=null,$type=null)
             $xmlObj = null;
       if($xmlRsakey==null)
               $xmlObj = simplexml_load_file("xmlfile/RSAKey.xml");
              elseif($type==RSAKeyType::XMLFile)
               $xmlObj = simplexml_load_file($xmlRsakey);
              else
               $xmlObj = simplexml_load_string($xmlRsakey);
             $this->modulus = RSA::binary_to_number(base64_decode($xmlObj->Modulus));
       $this->public_key = RSA::binary_to_number(base64_decode($xmlObj->Exponent));
       $this->key_length = strlen(base64_decode($xmlObj->Modulus))*8;
      * get public key
      * @return string public key
     public function getPublicKey()
      //return base64_encode(RSA::number_to_binary($this->public_key,($this->key_length)/8));
      return $this->public_key;
     public function getPrivateKey()
      //return base64_encode(RSA::number_to_binary($this->private_key,($this->key_length)/8));
      return $this->private_key;
     public function getKeyLength()
      return $this->key_length;
     public function getModulus()
      return $this->modulus;
      * encrypt data
      * @param string $data
      * @return base64 encoded  binary string
     public function encrypt($data)
      return base64_encode(RSA::rsa_encrypt($data,$this->public_key,$this->modulus,$this->key_length));
     public function dencrypt($data)
      return RSA::rsa_decrypt($data,$this->private_key,$this->modulus,$this->key_length);
     public function sign($data)
      return RSA::rsa_sign($data,$this->private_key,$this->modulus,$this->key_length);
     public function verify($data)
      return RSA::rsa_verify($data,$this->public_key,$this->modulus,$this->key_length);
    class RSAKeyType
     const XMLFile = 0;
     const XMLString = 1;
    ?>
    -------------- encrypt data with public key-----------------
    Code Snippet
    <?php
    require_once("RSAProcessor.class.php");
    $processor = new RSAProcessor
    ("<RSAKeyValue><Modulus>m6ljoeWhmnd0oRnsVEH5iNw3B8+vKVu7v7CVfMyf6bnKEzHa62TRmT/baJiSevoI/vgm2ph/s1JrQQTaGiErHicigwSC
    Aw7+i05WFbnz7tOyiiJJVMfsdd+v7Xan9Hiud05FzxoMbM8vpiMHPEIDbGJ1MiXyupTVkz2WcMHyBoJ4S189opktZ43pviUhy0PeuWkyoU7zR54akPmK
    Yg+z5Zr1r7K8lUZ1a3TThfJGxTQR/uZMtZz/q8QF0AANVQ/eyahTv9icBzBoDuncS0Y5l3vqogW1C/ltJvhJpvSn/OgjbRjuixCAptOUmRd13sDWU95/
    x0bMq+Lg68lj2OjJ1Q==</Modulus><Exponent>AQAB</Exponent><P>zfvdBsMLlmo+4PAUYLgSV2xyyVa7ZqFjkJaAE4EbYuH24EoZjrzeiJR++D
    FUT/GUhjfZ5eZ/5e29dXwk0sKUw6nHzBdBtOPp5fr4t5SKLEcWY+J+zLUSOlhG9NUkohFf6+Miy2Y7BLpXVrcl6UwXV0ak8KkTPB2l/aIMwYj5dgc=</
    P><Q>wXV0sA3nDzoSDQA/4QSu/WIlBhkA3jZ7K7G9Z9rpP1A0vH+bZeyCIyo52u8ahGuYbubaizF1XMp+Xv3Mh2KmRbt7+UptwEwbFAUiiad2a312mqm
    j7IJd7gRjGkyzKEm+6fpNeY3NFLNVNhccBqzhNkRoM22xnvQcImD10XVAakM=</Q><DP>wd1HdCLEWCfc0DYE59a2pINUMXyo2foRTDbpifHcRZ+ojAY
    Rsc6+nsssCQnccXVMNVqBgSgEvfGYe+eAfMBX5SN5APPuioJrVGF2DsoFlZC+WPoGH0JYSoNlHO8yEDrMDaXzzH2GFHgQ1XOAged0nFbHzB1FFjJNVL5
    cxRXWu6c=</DP><DQ>QDKuCk5SwubOXqoaiJ15RHRxPNjHRPZnYVSWOgSXKn9/QJ5H/0bA2NKGaHS4JAFgkEzjcRV0kNpRnUwztymxa6qPtWZRjWK0Ca
    y6jVuZHIqB9UkeMLoCWZ3zFSMmwNPYGuUJGLFJwPjR6iU5E64C/nMs8QQR0WHIhFAQwvVZ7uk=</DQ><InverseQ>JckMSlJR10VZdnp83VPjrZ/Z+63
    CGu3tWHm7f4DJ8IwjJWr8FlCpbSwiP6a4e9Upv6bUn/tOj2gY6MMq5G5yTKm2SCRvpUKRu4NCmWAt7vlFv0Z6pkXlTOpzvVjv3v16+dIZOA5Zn+v7+r1
    xbdYdH20KRAbiBO3MfQP7s+VJJvM=</InverseQ><D>W1xrBr2hQOj1wgxWAgoK7IHbprEFrK+TnWmGA46SGPsbmHJ9fAVbY6fwHg7Wgmk4WHXLUCeLY
    /Nu0eWIISfwh60Oe3ls2WC2k4qxyeSvQDBuLNb81U7WAUT9m9E1uK4QMCP3oxs1ybM80zTh7UMNgVK0WG+fbFUomVffcWTTqW+Fu12PEIO+UR/85oq+x
    qVlTzYAEzt1OE9IhkYiRzi99ePXeH2gFltzJ/fb/7jLsDTkhM2eiYTGyOTZmBnen6c6a8b9LFTY4Bc0bGpk5ezHkub6F8p2ZgL/JgIOJMyRZICjDjs+9
    k9PTmMTFsCF6xzHY15Fg25xIDYzIyx1rrRUjQ==</D></RSAKeyValue>",RSAKeyType::XMLString);
    $rs =  $processor->encrypt("Hello,It's Works.");
    echo $rs;
    ?>
    with the front codes.you can easy to encrypt data by public key generate by .net programe.

  • Error message when I run searches on my website (PHP/MySQL help)

    Hey guys, can someone tell me why this is happening in my PHP? I run a search on my website and get this error message ye sI filled the hostname, username and password)
    Results for
    PHP Error Message
    Warning:  mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a8295382/public_html/Search Results.php on line 233
    Couldn't execute query
    Here is my PHP code:
    <?php
    $hostname_logon = "host" ;
    $database_logon = "hostname" ;
    $username_logon = username" ;
    $password_logon = "password" ;
    //open database connection
    $connections = mysql_connect($hostname_logon, $username_logon, $password_logon) or die ( "Unabale to connect to the database" );
    //select database
    mysql_select_db($database_logon) or die ( "Unable to select database!" );
    //specify how many results to display per page
    $limit = 15;
    //get the search variable from URL
    $var = mysql_real_escape_string(@$_REQUEST['q']);
    //get pagination
    $s = mysql_real_escape_string($_REQUEST['s']);
    //set keyword character limit
    if(strlen($var) < 3){
        $resultmsg =  "<p>Search Error</p><p>Keywords with less then three characters are omitted...</p>" ;
    //trim whitespace from the stored variable
    $trimmed = trim($var);
    $trimmed1 = trim($var);
    //separate key-phrases into keywords
    $trimmed_array = explode(" ",$trimmed);
    $trimmed_array1 = explode(" ",$trimmed1);
    // check for an empty string and display a message.
    if ($trimmed == "") {
        $resultmsg =  "<p>Search Error</p><p>Please enter a search...</p>" ;
    // check for a search parameter
    if (!isset($var)){
        $resultmsg =  "<p>Search Error</p><p>We don't seem to have a search parameter! </p>" ;
    // Build SQL Query for each keyword entered
    foreach ($trimmed_array as $trimm){
    // EDIT HERE and specify your table and field names for the SQL query
    // MySQL "MATCH" is used for full-text searching. Please visit mysql for details.
    $query = "SELECT * , MATCH (field1, field2) AGAINST ('".$trimm."') AS score FROM table_name WHERE MATCH (field1, field2) AGAINST ('+".$trimm."') ORDER BY score DESC";
    // Execute the query to  get number of rows that contain search kewords
    $numresults=mysql_query ($query);
    $row_num_links_main =mysql_num_rows ($numresults);
    //If MATCH query doesn't return any results due to how it works do a search using LIKE
    if($row_num_links_main < 1){
        $query = "SELECT * FROM table_name WHERE field1 LIKE '%$trimm%' OR field2 LIKE '%$trimm%'  ORDER BY field3 DESC";
        $numresults=mysql_query ($query);
        $row_num_links_main1 =mysql_num_rows ($numresults);
    // next determine if 's' has been passed to script, if not use 0.
    // 's' is a variable that gets set as we navigate the search result pages.
    if (empty($s)) {
         $s=0;
      // now let's get results.
      $query .= " LIMIT $s,$limit" ;
      $numresults = mysql_query ($query) or die ( "Couldn't execute query" );
      $row= mysql_fetch_array ($numresults);
      //store record id of every item that contains the keyword in the array we need to do this to avoid display of duplicate search result.
      do{
          $adid_array[] = $row[ 'field_id' ];
      }while( $row= mysql_fetch_array($numresults));
    } //end foreach
    //Display a message if no results found
    if($row_num_links_main == 0 && $row_num_links_main1 == 0){
        $resultmsg = "<p>Search results for: ". $trimmed."</p><p>Sorry, your search returned zero results</p>" ;
    //delete duplicate record id's from the array. To do this we will use array_unique function
    $tmparr = array_unique($adid_array);
    $i=0;
    foreach ($tmparr as $v) {
       $newarr[$i] = $v;
       $i++;
    //total result
    $row_num_links_main = $row_num_links_main + $row_num_links_main1;
    // now you can display the results returned. But first we will display the search form on the top of the page
    echo '<form action="search.php" method="get">
            <div>
            <input name="q" type="text" value="'.$q.'">
            <input name="search" type="submit" value="Search">
            </div>
    </form>';
    // display an error or, what the person searched
    if( isset ($resultmsg)){
        echo $resultmsg;
    }else{
        echo "<p>Search results for: <strong>" . $var."</strong></p>";
        foreach($newarr as $value){
        // EDIT HERE and specify your table and field unique ID for the SQL query
        $query_value = "SELECT * FROM newsight_articles WHERE field_id = '".$value."'";
        $num_value=mysql_query ($query_value);
        $row_linkcat= mysql_fetch_array ($num_value);
        $row_num_links= mysql_num_rows ($num_value);
        //create summary of the long text. For example if the field2 is your full text grab only first 130 characters of it for the result
        $introcontent = strip_tags($row_linkcat[ 'field2']);
        $introcontent = substr($introcontent, 0, 130)."...";
        //now let's make the keywods bold. To do that we will use preg_replace function.
        //Replace field
          $title = preg_replace ( "'($var)'si" , "<strong>\\1</strong>" , $row_linkcat[ 'field1' ] );
          $desc = preg_replace ( "'($var)'si" , "<strong>\\1</strong>" , $introcontent);
          $link = preg_replace ( "'($var)'si" , "<strong>\\1</strong>" ,  $row_linkcat[ 'field3' ]  );
            foreach($trimmed_array as $trimm){
                if($trimm != 'b' ){
                    $title = preg_replace( "'($trimm)'si" ,  "<strong>\\1</strong>" , $title);
                    $desc = preg_replace( "'($trimm)'si" , "<strong>\\1</strong>" , $desc);
                    $link = preg_replace( "'($trimm)'si" ,  "<strong>\\1</strong>" , $link);
                 }//end highlight
            }//end foreach $trimmed_array
            //format and display search results
                echo '<div class="search-result">';
                    echo '<div class="search-title">'.$title.'</div>';
                    echo '<div class="search-text">';
                        echo $desc;
                    echo '</div>';
                    echo '<div class="search-link">';
                    echo $link;
                    echo '</div>';
                echo '</div>';
        }  //end foreach $newarr
        if($row_num_links_main > $limit){
        // next we need to do the links to other search result pages
            if ($s >=1) { // do not display previous link if 's' is '0'
                $prevs=($s-$limit);
                echo '<div class="search_previous"><a href="'.$PHP_SELF.'?s='.$prevs.'&q='.$var.'">Previous</a>
                </div>';
        // check to see if last page
            $slimit =$s+$limit;
            if (!($slimit >= $row_num_links_main) && $row_num_links_main!=1) {
                // not last page so display next link
                $n=$s+$limit;
                echo '<div  class="search_next"><a href="'.$PHP_SELF.'?s='.$n.'&q='.$var.'">Next</a>
                </div>';
        }//end if $row_num_links_main > $limit
    }//end if search result
    ?>
    Anyone got any ideas as to why this is happening?
    Also, I have not created any tables in my database... is this why it doesn't display any search results from my website?

    Sorry, but it doesn't help JTANNA.
    What is your definition of "more efficiently"? If it's limitation of search results, branded search, and limitation of styling your results then google search is more efficient. Real developers rely on their own developments. For example: how can google search display results from a password-protected site? They can't.
    best,
    Shocker

  • My  PHP  form no longer works?

    Hi
    http://www.collegestudentvoice.com/form/form.php
    1. Programmer says there is no coding errors.  Nothing has changed.
    2. Host says there must be coding errors.
    3. There may version incompetibilities with Perl script between the form and the host version.
    these are 3 files:
    Sendform:
    <?php
    // Pear library includes
    // You should have the pear lib installed
    include_once('Mail.php');
    include_once('Mail/mime.php');
    //Settings
    $max_allowed_file_size = 10000000; // size in KB
    $allowed_extensions = array("jpg", "jpeg", "gif", "bmp");
    $upload_folder = 'files/'; //<-- this folder must be writeable by the script
    $your_email = '[email protected]';//<<--  update this to your email address
    $errors ='';
    if(isset($_POST['submit']))
        //Get the uploaded file information
        $name_of_uploaded_file =  basename($_FILES['uploaded_file']['name']);
        //get the file extension of the file
        $type_of_uploaded_file = substr($name_of_uploaded_file,
                                strrpos($name_of_uploaded_file, '.') + 1);
        $size_of_uploaded_file = $_FILES["uploaded_file"]["size"]/1024;
        ///------------Do Validations-------------
        if(empty($_POST['name'])||empty($_POST['email']))
            $errors .= "\n Name and Email are required fields. ";   
        if(IsInjected($visitor_email))
            $errors .= "\n Bad email value!";
        if($size_of_uploaded_file > $max_allowed_file_size )
            $errors .= "\n Size of file should be less than $max_allowed_file_size";
        //------ Validate the file extension -----
        $allowed_ext = false;
        for($i=0; $i<sizeof($allowed_extensions); $i++)
            if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)
                $allowed_ext = true;       
        if(!$allowed_ext)
            $errors .= "\n The uploaded file is not supported file type. ".
            " Only the following file types are supported: ".implode(',',$allowed_extensions);
        //send the email
        if(empty($errors))
            //copy the temp. uploaded file to uploads folder
            $path_of_uploaded_file = $upload_folder . $name_of_uploaded_file;
            $tmp_path = $_FILES["uploaded_file"]["tmp_name"];
            if(is_uploaded_file($tmp_path))
                if(!copy($tmp_path,$path_of_uploaded_file))
                    $errors .= '\n error while copying the uploaded file';
            //send the email
            $name = $_POST['name'];
            $visitor_email = $_POST['email'];
            $user_message = $_POST['message'];
            $to = $your_email;
            $subject="New form submission";
            $from = $your_email;
            $text = "A user  $name has sent you this message:\n $user_message";
            $message = new Mail_mime();
            $message->setTXTBody($text);
            $message->addAttachment($path_of_uploaded_file);
            $body = $message->get();
            $extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email);
            $headers = $message->headers($extraheaders);
            $mail = Mail::factory("mail");
            $mail->send($to, $headers, $body);
            //redirect to 'thank-you page
            header('Location: thank-you.html');
    ///////////////////////////Functions/////////////////
    // Function to validate against any email injection attempts
    function IsInjected($str)
      $injections = array('(\n+)',
                  '(\r+)',
                  '(\t+)',
                  '(%0A+)',
                  '(%0D+)',
                  '(%08+)',
                  '(%09+)'
      $inject = join('|', $injections);
      $inject = "/$inject/i";
      if(preg_match($inject,$str))
        return true;
      else
        return false;
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <title>File upload form</title>
    <!-- define some style elements-->
    <style>
    label,a, body
        font-family : Arial, Helvetica, sans-serif;
        font-size : 12px;
    </style>   
    <!-- a helper script for vaidating the form-->
    <script language="JavaScript" src="scripts/gen_validatorv31.js" type="text/javascript"></script>   
    </head>
    <body>
    <?php
    if(!empty($errors))
        echo nl2br($errors);
    ?>
    <form method="POST" name="email_form_with_php"
    action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data">
    <p>
    <label for='name'>Name: </label><br>
    <input type="text" name="name" >
    </p>
    <p>
    <label for='email'>Email: </label><br>
    <input type="text" name="email" >
    </p>
    <p>
    <label for='message'>Message:</label> <br>
    <textarea name="message"></textarea>
    </p>
    <p>
    <label for='uploaded_file'>Select A File To Upload:</label> <br>
    <input type="file" name="uploaded_file">
    </p>
    <input type="submit" value="Submit" name='submit'>
    </form>
    <script language="JavaScript">
    // Code for validating the form
    // Visit http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
    // for details
    var frmvalidator  = new Validator("email_form_with_php");
    frmvalidator.addValidation("name","req","Please provide your name");
    frmvalidator.addValidation("email","req","Please provide your email");
    frmvalidator.addValidation("email","email","Please enter a valid email address");
    </script>
    <noscript>
    <small><a href='http://www.html-form-guide.com/email-form/php-email-form-attachment.html'
    >How to attach file to email in PHP</a> article page.</small>
    </noscript>
    </body>
    </html>
    FORM:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>College Student</title>
    <link rel="stylesheet" type="text/css" href="css/view.css" media="all">
    <script type="text/javascript" src="js/view.js"></script>
    <script src="js/forms.js" type="text/javascript"></script>
    </head>
    <body id="main_body" >
        <div id="form_container">
    <form action="formaction.php" method="post" enctype="multipart/form-data" name="contactus" id="contactus"  style="border:none;" onsubmit="return validateForm()">
                        <div class="form_description">
                <h2><img src="CSVlogo.GIF" width="269" height="97" alt="Logo" /></h2>
                <p>Please type in your first and last names along with our school email address (i.e., [email protected]) when submitting your articles or photographs.</p>
    <p>Select the category that best describes the subject of  your article or photograph. (i.e., Business, Politics, Sports, Humor, etc.)</p>
    <p>When writing about a sporting event please include the name of the sport in the ‘Subject’ line of your email along with the date of the event and the names of the teams. (i.e., Basketball 01-15-11 L.A. Lakers vs.Detroit Pistons)</p>
            </div>       
            <div>
                    <?php
    if (isset($_GET['suc'])) {
    echo "<div style='color:#F00; padding:15px; display:block; margin:10px 0 10px 0;'> ";
    echo "Thank you for your submission!";
    echo "</div>";
    } else {
    ?>
    </div>
                <ul >
                        <li id="li_5" >
            <label class="description" for="Business">Business </label>
            <div>
            <select class="element select medium" name="Business">
                <option value="" selected="selected"></option>
    <option value="Classified" >Classified</option>
    <option value="careertips" >Career Tip</option>
            </select>
            </div>
            </li>        <li id="li_6" >
            <label class="description" for="ProfessionalSports">Professional Sports </label>
            <div>
            <select class="element select medium" name="ProfessionalSports">
                <option value="" selected="selected"></option>
    <option value="NBA" >NBA</option>
    <option value="NFL" >NFL</option>
    <option value="MLB" >MLB</option>
    <option value="otherprosports" >Other</option>
            </select>
            </div>
            </li>        <li id="li_7" >
            <label class="description" for="Humor101">Humor 101</label>
            <div>
            <select class="element select medium" name="Humor101">
                <option value="" selected="selected"></option>
    <option value="Cartoons" >Cartoons</option>
    <option value="Jokes" >Jokes</option>
    <option value="Stories" >Stories</option>
    <option value="Photographs" >Photographs</option>
            </select>
            </div>
            </li>        <li id="li_8" >
            <label class="description" for="CollegeSports">College Sports</label>
            <div>
            <select class="element select medium" name="CollegeSports">
                <option value="" selected="selected"></option>
    <option value="basketballcollege" >Basketball</option>
    <option value="baseballcollege" >Baseball</option>
    <option value="Footballcollege" >Football</option>
    <option value="Softball" >Softball</option>
    <option value="othercollege" >Other</option>
            </select>
            </div>
            </li>        <li id="li_9" >
            <label class="description" for="Politics">Politics</label>
            <div>
            <select class="element select medium" name="Politics">
                <option value="" selected="selected"></option>
    <option value="statelocal" >State/Local</option>
    <option value="National" >National</option>
    <option value="World" >World</option>
            </select>
            </div>
            </li>        <li id="li_1" >
            <label class="description" for="element_1">Name </label>
            <span>
                <input id="First" name="First" class="element text" maxlength="255" size="40" value=""/>
                <label>First</label>
            </span>
            <span>
                <input id="Last" name= "Last" class="element text" maxlength="255" size="40" value=""/>
                <label>Last</label>
            </span>
            </li>       
            <li id="li_sub" >
            <label class="description" for="Subject">Subject </label>
            <div>
                <input id="Subject" name="Subject" class="element text medium required" type="text" maxlength="255" value=""/>
            </div>
            </li>   
            <li id="li_2" >
            <label class="description" for="Email">Email </label>
            <div>
                <input id="Email" name="Email" class="element text medium required email" type="text" maxlength="255" value=""/>
            </div>
            </li>        <li id="li_3" >
            <label class="description" for="EmailC">Confirm Email </label>
            <div>
                <input id="EmailC" name="EmailC" class="element text medium" type="text" maxlength="255" value=""/>
            </div>
            </li>        <li id="li_4" >
            <label class="description" for="Suggestions">Suggestions </label>
            <div>
                <textarea id="Suggestions" name="Suggestions" class="element textarea medium"></textarea>
            </div>
            </li>
          <li id="li_5" >
            <label class="description" for="Upload">Upload File </label>
    <input type="file" name="uploaded_file">
            <div>
              </div>
            </li>
            <li id="li_6" >
            <label class="description" for="Upload">Are you human?</label>
            <?php
            require_once('recaptchalib.php');
              $publickey = "6LfwwsISAAAAAA7UTKJcDATLiK-e55gPFW1Opfrq"; // you got this from the signup page
              echo recaptcha_get_html($publickey);
            ?>
            <div>
              </div>
            </li>
                        <li class="buttons">
                    <input type="submit" name="Submit" value="Submit" class="button" />
    </li>
                </ul>
    </form>
    <!--        <div id="footer">
            </div>
    -->    </div>
    </body>
    </html>
    FORMACTION
    <?php
      require_once('recaptchalib.php');
    $privatekey = "6LfwwsISAAAAAAPShkJ6nV3qkgLDHCe2uXj9RTWw";
      $resp = recaptcha_check_answer ($privatekey,
                                    $_SERVER["REMOTE_ADDR"],
                                    $_POST["recaptcha_challenge_field"],
                                    $_POST["recaptcha_response_field"]);
      if (!$resp->is_valid) {
        die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
      else {
    include_once('Mail.php');
    include_once('Mail/mime.php');
    $errors ='';
    $max_allowed_file_size = 10000000; // size in KB
    $allowed_extensions = array("jpg", "jpeg", "gif", "bmp");
    $upload_folder = 'files/';
        $name_of_uploaded_file =  basename($_FILES['uploaded_file']['name']);
        $type_of_uploaded_file = substr($name_of_uploaded_file,
                                strrpos($name_of_uploaded_file, '.') + 1);
        $size_of_uploaded_file = $_FILES["uploaded_file"]["size"]/1024;
        if($size_of_uploaded_file > $max_allowed_file_size )
            $errors .= "\n Size of file should be less than $max_allowed_file_size";
        $allowed_ext = false;
        for($i=0; $i<sizeof($allowed_extensions); $i++)
            if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)
                $allowed_ext = true;       
        if(!$allowed_ext)
            $errors .= "\n The uploaded file is not supported file type. ".
            " Only the following file types are supported: ".implode(',',$allowed_extensions);
        if(empty($errors))
            $path_of_uploaded_file = $upload_folder . $name_of_uploaded_file;
            $tmp_path = $_FILES["uploaded_file"]["tmp_name"];
            if(is_uploaded_file($tmp_path))
                if(!copy($tmp_path,$path_of_uploaded_file))
                    $errors .= '\n error while copying the uploaded file';
            $Business = Trim(stripslashes($_POST['Business']));
            $ProfessionalSports = Trim(stripslashes($_POST['ProfessionalSports']));
            $Humor101 = Trim(stripslashes($_POST['Humor101']));
            $CollegeSports = Trim(stripslashes($_POST['CollegeSports']));
            $Politics = Trim(stripslashes($_POST['Politics']));
            $EmailToBusiness = $Business . "@collegestudentvoice.net";
            $EmailToProfessionalSports = $ProfessionalSports . "@collegestudentvoice.net";
            $EmailToHumor101 =  $Humor101 ."@collegestudentvoice.net";
            $EmailToCollegeSports = $CollegeSports . "@collegestudentvoice.net";
            $EmailToPolitics = $Politics . "@collegestudentvoice.net";
            $EmailTo = "[email protected]";
            $EMailSubject = Trim(stripslashes($_POST['Subject']));
            $First = Trim(stripslashes($_POST['First']));
            $Last = Trim(stripslashes($_POST['Last']));
            $Email = Trim(stripslashes($_POST['Email']));
            $Suggestions = Trim(stripslashes($_POST['Suggestions']));
            $Body = "The following form has been filled";
            $Body .= "\n";
            $Body .= "---------------------------------------------------------------------------------";
            $Body .= "\n";
            $Body .= "\n";
            $Body .= "First Name: ";
            $Body .= $First;
            $Body .= "\n";
            $Body .= "Last Name: ";
            $Body .= $Last;
            $Body .= "\n";
            $Body .= "Email: ";
            $Body .= $Email;
            $Body .= "\n";
            $Body .= "Business: ";
            $Body .= $Business;
            $Body .= "\n";
            $Body .= "Professional Sports: ";
            $Body .= $ProfessionalSports;
            $Body .= "\n";
            $Body .= "Humor 101: ";
            $Body .= $Humor101;
            $Body .= "\n";
            $Body .= "College Sports: ";
            $Body .= $CollegeSports;
            $Body .= "\n";
            $Body .= "Politics: ";
            $Body .= $Politics;
            $Body .= "\n";
            $Body .= "Suggestions: ";
            $Body .= $Suggestions;
            $Body .= "\n";
            $Body .= "\n";
            $Body .= "---------------------------------------------------------------------------------\n";
            $Body .= "Emails sent to: " . strtolower($EmailToBusiness) . " / " .strtolower($EmailToProfessionalSports). " / " .strtolower($EmailToHumor101). " / " .strtolower($EmailToCollegeSports). " / ".strtolower($EmailToPolitics). "";
            $to = "[email protected]";
            $subject= $EMailSubject;
            $from = "[email protected]";
            $text = "\n $Body";
            $message = new Mail_mime();
            $message->setTXTBody($text);
            $message->addAttachment($path_of_uploaded_file);
            $body = $message->get();
            $extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$Email);
            $headers = $message->headers($extraheaders);
            $mail = Mail::factory("mail");
            $mail->send($to, $headers, $body);
            if ($Business != "")
                        $mail->send(strtolower($EmailToBusiness), $headers, $body);
            if ($ProfessionalSports != "")
                        $mail->send(strtolower($EmailToProfessionalSports), $headers, $body);
            if ($Humor101 != "")
                        $mail->send(strtolower($EmailToHumor101), $headers, $body);
            if ($CollegeSports != "")
                        $mail->send(strtolower($EmailToCollegeSports), $headers, $body);
            if ($Politics != "")
                        $mail->send(strtolower($EmailToPolitics), $headers, $body);
            print "<meta http-equiv=\"refresh\" content=\"0;URL=form.php?suc=y\">";
    ?>

    bregent,
    you have explained everything was is happening.
    Mine firewall setttings block the scrip so when I fill the form and submit it, I do not get any errors, but that form information does not go anywhere.
    All firewall setting should be OFF  when a form is submitted?
    dreamweavewr101.1

  • Goods Receipt Against Purchase Order

    Hi All,
             I am creating a report for goods receipt tracking against purchase order  within in date range .  If any material documant has been canceld ( 101 to 102 or 103 to 104 ) then it (101 or 103) should not be calculate receipt goods. if 105 is pending for any 103 still 103 qty should be add in receipt goods. Is there any Function module for do that or any other logic. plz tell.
    Thanks in Advance.
    Jitendra

    Hi
    Please take a look at the links for sample coding of the function module - BAPI_GOODSMVT_CREATE.
    http://www.sap-img.com/abap/bapi-goodsmvt-create-to-post-goods-movement.htm
    http://www.4ap.de/abap/bapi_goodsmvt_create.php
    <b>Reward points</b>
    Regards

  • What language would suit someone who hates anything that isn't PHP?

    Psst. Yes, this message is long, but so are my requirements. Please take the extra few seconds to read it
    First it was QBasic, then QuickBasic, then, of all things, Visual Basic... version 1.0. On Win98. Then XP.
    I made a lot of stuff with VB. 500 doesn't give a very good indication of how many things I made with VB 1.0, but I remember having more items than that in my c:\vbwin folder. VB might not look all that great visually, but it had a few things I've not found in any other language/environment, namely simplicity, freedom of use, speed, flexibility, hackability, and speed. Definately speed. It wasn't great on memory usage however - after my projects started creating 80KB binaries, VB would start to get crashy.
    But VB had simplicity because it didn't use the 2873598734-options 997341234-properties 897592873562874353469582743-functions mantra of VB 6.0 nor the 9-billion-of-everything mantra of .net. I could whip up an application in that environment within seconds - indeed, I became quite a master at configuring some defaults I liked for forms and adding a hidden button that responded to the ESC key in about 7 seconds. It had freedom of use because... I could do anything with it. I could, because I was just that patient enough, use 234 perfectly aligned pictureboxes to create "the Win95 look" in a program designed to work on Windows 3.1 (yes, VB 1.0 is 16-bit ), and VB had speed because those 234 pictureboxes appeared on my running program's form when I hit F5 faster than I could blink. It had flexibility because I could shove 12MB of BMPs into my EXE and it'd run fine. It had hackability because I could import the Win16 API and work around issues in the language itself to make my applications what I wanted them to be. Did I mention the speed? Well, it was copyrighted in 1991, so was written in the good old days of the 16MHz 486!
    However, all that fun was, sadly, from a while ago. Like, 8 months ago or so, probably more.
    What marked the end of that period was a conversation on IRC one day: someone gave me a 5-or-so line snippet of code in PHP. It wasn't very complicated, but it showed a clean solution to something I needed to do with web development, which I was just getting into at the time - I can't really remember what the actual issue was, but I do remember that my choices were either to use the code snippet, or go through some looong complex process to complete whatever it was I wanted to do manually.
    The code didn't look too scary, so I installed PHP and gave it a whirl. And I've liked, used, and abused PHP for many months following that initial "well maybe this isn't so bad". I don't mind PHP's use of 14 functions or more/less to do the same thing, or the fact that PHP isn't multithreaded. I probably wouldn't take advantage of multithreading in my code for a long time anyway, and PHP does have pcntl_fork() if I want to do two things at once in a controlled way.
    However... I'm starting to outgrow PHP, and I'm a bit homesick of VB's visual ease of use as well. I want an environment that lets me drag'n'drop a picturebox onto a form, shove a pile of pictureboxes inside of it, then programmatically manage them all. Yes, that's exactly the kind of thing I'd do with VB 1.0, and what do you know, I created something good from it - a simple but very usable media center-ish user interface complete with animation and it all ran fast on the PC I was using, a Pentium 3 clocked at 450MHz, with only 128MB RAM.
    Yes, PHP-GTK, PHP-QT and PHP-TK do exist, and they've all failed on my system at various points: PHP-GTK compiles and works absolutely fine, but breaks PHP-CGI. PHP-QT won't compile on my system, and its compile process is just too hard to tweak so I can't try gcc-3.4 on it. And anything involving PHP-TK that doesn't amount to creating a single, empty, lifeless window titled "PHP/TK" produces warnings or segfaults.
    So I'm looking for a programming language that gives me something comparable or equal to what VB 1.0 had - a visual drag'n'drop development environment that didn't visually overwhelm, compilation, and speed, and what PHP has - simplicity, readability, and bindings to/for everything that isn't desktop application development, without the VB syntax format. I'm past VB, and about to surpass PHP.
    Possible candidates for a new language are pretty much anything that includes both a compiler and interpreter, looks and feels like PHP, has nothing PHP doesn't have, but offers more power by using more functions, not weird, non-C-like ASCII character soup. So, if you were to take the PHP parsing engine and couple that with a bunch of libraries that adds sane stuff like native window support, the ability to manage boxes and squares in code, and so on. OR anything equivalent. So if something had ability XYZ which I couldn't figure out how to use, but also let me complete goal ABC while *not* using XYZ, it meets my requirements. And if something has just an compiler, you'll have a bit of a hard time convincing me to like it, but if it only has an interpreter, you'll really need to sell it to me, since I'm starting to get the compilation bug again, just like I did 7-8 years ago when I gazed at the wonder that was the EXE and wanted so badly to create my own.
    Also, before you list Perl, let me stop you: Perl has too many unreadabilities. "test ? abc : def" is about as far as I'm prepared to go; I far prefer English text over regular expressions, Awk and the like. Also, C is just too much. It is, probably unsurprisingly considering what you've just read, too cool for my artistic brain. I don't want a language that can do everything: I get inspired by difficulty, not being able to do whatever I want. Yes, that's how my brain works, and I need to go with the flow, not against it, so simply because C can do absolutely anything and everything, I can't use it.
    I will, however, note that I also like the Bash language, and the way it works, if only it wasn't so slow!
    So, to sum up, the best things I've written include a media center user interface in a language that's 17 years old (same age as me! ), a telnet server using PHP (I wrote the RFC-compliant telnet parser myself, from scratch), and lastly a textual taskbar, an IRC client, and some animations using Bash.
    I want a language that is readable and doesn't try to extend or expound on its own using syntax but lets me do the thinking my own way, so I have nothing stopping me from using it for what it wasn't used for. Because isn't that what we all do with programming languages anyway?
    -dav7

    As promised...
    A little simple at the moment, but it's the result of a dream... to create The Perfect Language. I just may end up calling it TPL if it works out.
    ; dav7's view of what The Perfect Language is
    ; Licensed under the Nonexistant Public License (NPL) - "do w/e you want w/ it, just give me a bit of credit."
    ; 30-sep-08 - ?-oct-08
    ; <[email protected]>
    ; /me invents comment blocks so he doesn't have to keep typing ;s
    There. :D
    Now, the problem with most common programming languages (I'm looking at you, C) is that they
    - are rather unreadable
    - are really hard to work with for the unknowledgable
    - impose a 32768-second wait on the impatient, ADHD-infused programmer as the code file(s) compile for the
    247th time
    - involve a lot of typing, some of it needing to be a specific case (CAPS or lowercase)
    - requires a lot of input to get something basic functional, and has a very high initial code to output
    ratio: at the beginning of a project a high percentage of code is required to get a reasonable amount of
    output, and only after there is a fairly decent amount of code present will the code / output ratio
    decrease so that only a relatively small amount of code is needed to produce the application-specific
    output desired
    - is not natively very image-oriented - to display an image in a window without 5GB of libraries, I need to
    know Xlib, how to decode PNGs and how to manage double-buffering
    So, I want to create a language that
    - is both readable AND easy to type. No, I'm not going to do a survey of what word groups are the easiest
    for the eye to pick up on, or go anywhere near that extreme; rather, my language will have two "modes".
    One is amazingly quick to type, and the other, while relatively minimalistic, actually uses ASCII characters
    to denote function, data and flow, and my compiler/interpreter combo will have a converter that will pass
    through and convert a code file from one "syntax mode" to the other.
    - can be both interpreted or emitted, depending on the situation ("emitted" here means that instead of working on
    something that can generate native code for 784598754 platforms myself, I'll just output C-- code or something)
    - has bindings for X
    - makes it very easy to debug a program
    From a result-, goal- or solution-based person like myself, I don't see language design the way most others would.
    I don't value a language based on its algorithmic efficiency, I value it based on ease of use. I don't see things
    from a procedural perspective, but rather a tokenized object oriented tree of constructs that I must feed to the
    computter to achieve the result I want. This language adheres to that principle.
    So, let's get started with this new language. As I go along, I explain points of interest / trivia about whatever
    I'm referring to.
    ; The ubiquitous "Hello World". To print something, you encase it with single or double quotes and don't assign
    ; any meaning to it by telling the language to set the string to a variable or test it against something. A
    newline is automatically added at the end of a line of such output produced by quoting.
    "Hello world!"
    ; variable assignment by usage. There's no "true" or "false" here. Everything uses plain, un-expounded (in that 0
    won't mean false or 1 true) integers to represent state or status.
    x = 1
    ; if/then - the '? var : abc : def' construct compares 'var', and if 'var' is 1, it executes 'abc', otherwise it
    ; executes 'def'. This'll print "x = 1!". This construct could be used to do anything - I'd want it to operate
    ; as much like the C preprocessor as possible.
    ? x = 1: "x = 1!" : "x = 0!"
    ; the previous line could also be written as:
    ? x: "x = 1!" : "x = 0!"
    ; or even:
    "'x' is equal to $x, which would equal"; ? x: "TRUE" : "FALSE"; "in a lot of other programming languages."
    ; calling a procedure. See the procedure declaration below for more info.
    test x
    ; a loop. Loops start with a '[' and end with a ']'. This language doesn't have any for or while loops - you
    ; construct those on your own.
    [ ;; this demos both nested comment blocks, and the fact that I stole C's add-1 method -> ;; x++
    ; the ! operator breaks out of a loop. I might change this.
    ? x > 5: !
    ; Print the current index, up to 5. Using a $ next to a known variable name in a quoted string will
    ; print that variable's contents.
    "$x"
    ; Now for a for-esque loop - very similar to the previous example. Note that at the beginning of the block, a
    ; semicolon isn't required to denote its seperation of the pre- or proceeding code behind and in front of it.
    z = 0 [ z++; ? z > 10: !
    "$z"
    ; procedure start. No definition of the function or parameters is required - variables are accessible inside
    ; the function as 'a', 'b', 'c', etc. When 'z' is reached the next variable is indexed as 'aa', then the next
    ; as 'ab', etc. Also, functions can be defined after they're called - the parser will have the entire program
    ; in memory before it executes a single line of it, and the compiler will likewise parse the entire program
    ; before outputting any C.
    test:
    ; Yes, it looks like I have the quotes wrong, but I don't. This language allows for Bash-style
    ; variable-string combination ;)
    "ohai from teh procedure! You passed "$a"!"
    ; procedure end. Note that I start with "proc:" and end with ":proc" - this makes it very easy to see
    ; what function I might be seeing the end of if it's long and I can see any function starts.
    :test
    ; Now for everything demoed here as a one-liner.
    "Hello world!"; x = 1; ? x: "x = 1!" : "x = 0!"; "'x' is equal to $x, which would equal"; ? x: "TRUE" : "FALSE"; "in a lot of other programming languages."; test; [ ? x > 5: !; "$x" ] z = 0 [ z++; ? z > 10: !; "$z" ] test: "ohai from teh procedure!" :test
    ; And now for everything in its slightly more readable form...
    "Hello world!"
    x = 1
    if x = 1 then "x = 1!" else "x = 0!"
    if x then "x = 1!" else "x = 0!"
    "'x' is equal to $x, which would equal"; if x then "TRUE" else "FALSE"; "in a lot of other programming languages."
    test
    [ x++
    if x is greater than 5 then break
    ; OR
    ; if x > 5 then break
    "$x"
    z = 0 [ z++; if z > 10 then !
    "$z"
    test:
    "ohai from teh procedure!"
    :test
    ; And now for this version as its oneliner:
    "Hello world!"; x = 1; if x then "x = 1!" else "x = 0!"; "'x' is equal to $x, which would equal"; ? x: "TRUE" : "FALSE"; "in a lot of other programming languages."; test; [ if x is greather than 5 then break; "$x" ] z = 0 [ z++; if z > 10 then break; "$z" ] test: "ohai from teh procedure!" :test
    That's about it.
    What do you think?
    What language has the closest syntax as mine?
    Is this language viable? Could it survive actually being developed?
    Please do let me know your opinions/comments/suggestions/flames.
    -dav7

  • SAPRFC / PHP 5.3.0 / MacOSX Snow Leopard

    <pre>(seems message parsing is not working..) Hello gurus !
    I've read with a great interrest almost all posts on this forum, and I must say it helped me a lot sorting
    out a nearly functional solution for installing SAPRFC PHP extension on a MacOSX Snow Leopard system.
    It seems i'm just having a problem with the RFCSDK from SAP not being of the appropriate architecture.
    Let me describe my installation process (maybe it can help other people willing to install SAPRFC on
    Macintosh plateform equally !)
    1. Installation of Macintosh developpement tools (Xcode)
    First step was to install XCode Package, from http://developer.apple.com/tools/xcode/ it's a 650Mb
    disk-image, that once installed is 2.5Gb on harddrive. This provided me with all php headers that I
    needed for the next steps.
    I made sure my Apache/PHP was functionnal on the Macintosh, this page helped me :
    http://www.mac4ever.com/articles/creation/1153/php_mysql_sous_snow_leopard_et_xdebug_eclipse/ (it's in french)
    2. Download of RFCSDK from SAP
    I was not totally sure which version to install on my system since no "MacOsX version", so I picked
    the "Linux on x86_64 64bit" package.
    3. Extracting files from the SAR archive
    As the binary of SAPCAR was not willing to execute properly, I downloaded a Windows version and
    extracted my files on a Windows system.
    4. Installing RFCSDK files on the system
    I created a folder "sap" in folder "/usr" :
    $> sudo mkdir /usr/sap
    I created a folder "rfcsdk" in folder "/usr/sap"
    $> sudo mkdir /usr/sap/rfcsdk
    I copied all files i extracted from the SAR archive into the "/usr/sap/rfcsdk folder" :
    $> sudo cp -R ~/Desktop/Linux\ on\ x86_64\ 64bit/ /usr/sap/rfcsdk/*
    After this in "/usr/sap/rfcsdk" i have now : 4 folders : bin, include, lib and text
    I changed access rights for all the files in sap directory:
    $> sudo chmod -R 755 /usr/sap
    5. Compiling SAPRFC extension for PHP
    I downloaded SAPRFC 1.4.1 from http://saprfc.sourceforge.net/
    I created a folder module under "/usr/sap" :
    $> sudo mkdir "/usr/sap/module"
    I unpacked the files from the saprfc-1.4.1.tar.gz archive into "/usr/sap/module/"
    I ran phpize while in folder "/usr/sap/module/"
    $> cd /usr/sap/module
    $> sudo phpize
    Configuring for:
    PHP Api Version:         20090626
    Zend Module Api No:      20090626
    Zend Extension Api No:   220090626
    (I made sure the phpize which was called was the one corresponding to the php version i was
    running with apache, "locate phpize" helped me to sort out if there was serveral phpize that could
    potentially be executed)
    I ran then the configuration script
    $> sudo ./configure
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for cc... cc
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    creating libtool
    appending configuration tag "CXX" to libtool
    configure: creating ./config.status
    config.status: creating config.h
    config.status: config.h is unchanged
    Then i ran the compilation :
    $> sudo make
    /bin/sh /usr/sap/module/libtool --mode=compile cc  -I. -I/usr/sap/module -DPHP_ATOM_INC
    -I/usr/sap/module/include -I/usr/sap/module/main -I/usr/sap/module -I/usr/include/php
    -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext
    -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include  -DHAVE_CONFIG_H  -g -O2  
    -c /usr/sap/module/saprfc.c -o saprfc.lo
    mkdir .libs
    cc -I. -I/usr/sap/module -DPHP_ATOM_INC -I/usr/sap/module/include -I/usr/sap/module/main
    -I/usr/sap/module -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend
    -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include -DHAVE_CONFIG_H -g -O2 -
    c /usr/sap/module/saprfc.c  -fno-common -DPIC -o .libs/saprfc.o
    /usr/sap/module/saprfc.c: In function '__callback_dispatch':
    /usr/sap/module/saprfc.c:263: warning: format not a string literal and no format arguments
    /bin/sh /usr/sap/module/libtool --mode=compile cc  -I. -I/usr/sap/module -DPHP_ATOM_INC
    -I/usr/sap/module/include -I/usr/sap/module/main -I/usr/sap/module -I/usr/include/php
    -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext
    -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include  -DHAVE_CONFIG_H  -g -O2  
    -c /usr/sap/module/rfccal.c -o rfccal.lo
    cc -I. -I/usr/sap/module -DPHP_ATOM_INC -I/usr/sap/module/include -I/usr/sap/module/main
    -I/usr/sap/module -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM
    -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include
    -DHAVE_CONFIG_H -g -O2 -c /usr/sap/module/rfccal.c  -fno-common -DPIC -o .libs/rfccal.o
    /usr/sap/module/rfccal.c: In function 'cal_allocate':
    /usr/sap/module/rfccal.c:36: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
    /usr/sap/module/rfccal.c:50: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
    /bin/sh /usr/sap/module/libtool --mode=link cc -DPHP_ATOM_INC -I/usr/sap/module/include -I/usr/sap/module/main -
    I/usr/sap/module -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend
    -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/sap/rfcsdk/include  -DHAVE_CONFIG_H  -g -O2  
    -o saprfc.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr/sap/module/modules 
    saprfc.lo rfccal.lo -Wl,-rpath,/usr/sap/rfcsdk/lib -L/usr/sap/rfcsdk/lib -lrfccm
    cc ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o .libs/saprfc.so -bundle 
    .libs/saprfc.o .libs/rfccal.o  -L/usr/sap/rfcsdk/lib -lrfccm -Wl,-rpath -Wl,/usr/sap/rfcsdk/lib
    +ld: warning: in /usr/sap/rfcsdk/lib/librfccm.so, file is not of required architecture+
    creating saprfc.la
    (cd .libs && rm -f saprfc.la && ln -s ../saprfc.la saprfc.la)
    /bin/sh /usr/sap/module/libtool --mode=install cp ./saprfc.la /usr/sap/module/modules
    cp ./.libs/saprfc.so /usr/sap/module/modules/saprfc.so
    cp ./.libs/saprfc.lai /usr/sap/module/modules/saprfc.la
    Libraries have been installed in:
       /usr/sap/module/modules
    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR'
    flag during linking and do at least one of the following:
       - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
         during execution
    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    Build complete.
    Don't forget to run 'make test'.
    And here seems the problem to be :
    ld: warning: in /usr/sap/rfcsdk/lib/librfccm.so, file is not of required architecture
    I continued anyway :
    $> sudo make install
    Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/
    6. Installing the PHP extension in the PHP.ini
    I went to /etc and stated editing php.ini :
    $> sudo vi /etc/php.ini
    I went to the extensions part and added the line :
    extension     = "/usr/lib/php/extensions/no-debug-non-zts-20090626/saprfc.so"
    +(for some reason, when setting extension = saprfc.so, i had some errors, while the
    extension folder was defined to extensions/no-debug-non-zts-20090626 ... no clue
    why, nevermind, works better with full path...)+
    ;   extension=/path/to/extension/msql.so
    ; If you only provide the name of the extension, PHP will look for it in its
    ; default extension directory.
    extension     = "/usr/lib/php/extensions/no-debug-non-zts-20090626/saprfc.so"
    ; Windows Extensions
    ; Note that ODBC support is built in, so no dll is needed for it.
    ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
    ; extension folders as well as the separate PECL DLL download (PHP 5).
    ; Be sure to appropriately set the extension_dir directive.
    ;extension=php_bz2.dll
    ;extension=php_curl.dll
    I saved my php.ini file forcing write of the read only file (Esc, ":wq!", enter)
    7. Testing the installation
    I restarted my apache server, and checked /var/log/apache2/error_log; at this time no
    error shows here yet.
    I put the saprfc_test.php file in my Sites/ folder to test it with http://localhost// and the page
    just load fine, and the php script seems to not fail on the test : if (! extension_loaded ("saprfc")),
    so.. normally the extension is loaded by php.
    After viewing the saprfc_test.php page, some errors appears in the /var/log/apache2/error_log :
    dyld: lazy symbol binding failed: Symbol not found: _RfcGetAllLibVersions
      Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/saprfc.so
      Expected in: flat namespace
    dyld: Symbol not found: _RfcGetAllLibVersions
      Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/saprfc.so
      Expected in: flat namespace
    8. Trying to find out the issue
    I wanted to run LDD tool on saprfc.so to find out if the linking was correctly done with the library
    "/usr/sap/rfcsdk/lib/librfccm.so" but it appears that ldd is not available on MacOSX and Apple
    recommand using "otool -L" instead.
    Here we go :
    *$> cd /usr/lib/php/extensions/no-debug-non-zts-20090626
    *$> otool -L saprfc.so"
    saprfc.so:
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.0)
    Not very "verbose".. i tried the otool -l (minus L) to view any better info :
    *$> otool -l saprfc.so"
    saprfc.so:
    Load command 0
          cmd LC_SEGMENT_64
      cmdsize 552
      segname __TEXT
       vmaddr 0x0000000000000000
       vmsize 0x0000000000011000
      fileoff 0
    filesize 69632
       vmaddr 0x0000000000013000
       vmsize 0x0000000000006000
      fileoff 73728
    filesize 22088
      maxprot 0x00000007
    initprot 0x00000001
       nsects 0
        flags 0x0
    Load command 3
         cmd LC_UUID
    cmdsize 24
       uuid 0x21 0xea 0x9e 0x15 0xca 0x1c 0xd8 0xe8
            0x35 0x3e 0x54 0x86 0x3e 0x58 0xa1 0x8a
    Load command 4
                cmd LC_DYLD_INFO_ONLY
            cmdsize 48
         rebase_off 73728
        rebase_size 16
           bind_off 73744
          bind_size 1272
      weak_bind_off 0
    weak_bind_size 0
      lazy_bind_off 75016
    lazy_bind_size 2992
         export_off 78008
        export_size 1560
    Load command 5
         cmd LC_SYMTAB
    cmdsize 24
      symoff 79568
       nsyms 575
      stroff 89760
    strsize 6056
    Load command 6
                cmd LC_DYSYMTAB
            cmdsize 80
          ilocalsym 0
          nlocalsym 405
         iextdefsym 405
         nextdefsym 75
          iundefsym 480
          nundefsym 95
             tocoff 0
               ntoc 0
          modtaboff 0
            nmodtab 0
       extrefsymoff 0
        nextrefsyms 0
    indirectsymoff 88768
      nindirectsyms 247
          extreloff 0
            nextrel 0
          locreloff 0
            nlocrel 0
    Load command 7
              cmd LC_LOAD_DYLIB
          cmdsize 56
             name /usr/lib/libSystem.B.dylib (offset 24)
       time stamp 2 Thu Jan  1 01:00:02 1970
          current version 125.0.0
    compatibility version 1.0.0
    Load command 8
              cmd LC_RPATH
          cmdsize 32
             path /usr/sap/rfcsdk/lib (offset 12)
    OK this time, seems there is at least 1 mention of my RFCSDK in the last line, but .. just a path to the
    lib folder, no mention to the library file it self.. i'm just a bit confused now !
    Thank you for reading all this, now, maybe you if already managed to have a MacOSX SAPRFC
    working or have any clue where I can find a RFCSDK library (or compilable sources) that would
    just work on a Mac OSX system.. Thanks for your kind advices
    Edited by: Lemmus on Dec 22, 2009 1:59 PM
    Edited by: Julius Bussche on Dec 22, 2009 4:05 PM
    Fixed formating a bit </pre>

    Hey that is one crazy message Lemmus. If you want people to respond a little human parsing and indenting maybe required.
    I have one thought.
    What version on SAP are you connecting to? If it is ECC6 or a netweaver system I would get hold of the sapnwrfc library. (Google is your friend)
    It is designed to work with the new netweaver rfc interface.
    Cheers,
    Nigel

  • Using variable in select statement (php)

    I am having difficulty using a variable in a select
    statement.
    The following manual query (using a static date) works fine:
    $query_Recordset1 = "SELECT * FROM academyClasses WHERE
    classDate > '2006-06-01' ";
    However, If I use the following:
    $dateVar = date('Y-m-d');
    mysql_select_db($database_mw, $mw);
    $query_Recordset1 = "SELECT * FROM academyClasses WHERE
    classDate > $dateVar ";
    ALL records are returned, which means the $dateVar variable
    is not being recognized. I have compared the $dateVar values
    <?php echo $datetime; ?> against the actual value of my date
    field <?php echo $row_Recordset1['classDate']; ?> in my
    results table and it seems that the values are indeed accurate in
    terms of a date 2006-06-04 for example.
    My date field "classDate" is of a "date" type within the
    mysql database. I'm using Dreamweaver MX 2004 with Mac OSX 10.3.9.
    I'm sure this is just a syntax problem, at least I hope it
    is.
    Any help is greatly appreciated.

    On Wed, 7 Jun 2006 04:49:57 +0000 (UTC), "mgwaters"
    <[email protected]> wrote:
    >Thanks Gary. That did seem to get the select statement
    working, but I had to
    >enter a manual date as before $dateVar = '2006-06-01'; on
    the previous line of
    >code to actually get it to filter my records. So... it
    looks like my setting of
    >the date variable:
    > $dateVar = date('Y-m-d');
    > does not seem to be recognized within the SELECT
    statement.
    Try this:
    $query_Recordset1 = "SELECT * FROM academyClasses WHERE
    classDate>'$dateVar'";
    print $query_Recordset1;
    See what is in the SQL statement.
    Gary

  • PHP email form - issue with who it's from

    Hi,
    I've got a referral page on my site where the user puts in their details and a friends details and the form fires off a email to the friend. The form is in HTML and posts it to a PHP file. The problem is I get in the email for who it's from:
    from
    "Scott Bradshaw"@server74.ukservers.net
    I don't want the
    @server74.ukservers.net
    in their.
    Is this an issue with PHP files and forms or is their a way round it? I know I could do a mailto: form but don't want to. What are my options?
    Thanks, Scott

    I'm making the website for someone and they had the hosting set up already but thanks for telling me. I think this is right what I've done:
    function detectSuspect($val, &$ok) {
      if (preg_match('/Content-Type:|Cc:|Bcc:/i', $val)) {
        $ok = false;
    $YourName = Trim(stripslashes($_POST['YourName']));
    $YourEmail = Trim(stripslashes($_POST['YourEmail']));
    $RefName = Trim(stripslashes($_POST['RefName']));
    $RefEmail = Trim(stripslashes($_POST['RefEmail']));
    $EmailFrom = $YourEmail;
    $Subject = $RefName;
    $EmailTo = $RefEmail;
    // validation
    $validationOK=true;
    detectSuspect($YourName, $validationOK);
    detectSuspect($YourEmail, $validationOK);
    detectSuspect($RefName, $validationOK);
    detectSuspect($RefEmail, $validationOK);
    if (!$validationOK) {
      print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
      exit;
    // prepare email body text
    $Body = "Hi $RefName,
    $YourName thought you would be interested in viewing this online video called A
    tale of 2 customers (< 3 mins).
    www.easybench.org/ataleof2customers3";
    $Body2 = "";
    $Body2 .= "User Name: ";
    $Body2 .= $YourName;
    $Body2 .= "\n";
    $Body2 .= "User Email: ";
    $Body2 .= $YourEmail;
    $Body2 .= "\n";
    $Body2 .= "Referral Name: ";
    $Body2 .= $RefName;
    $Body2 .= "\n";
    $Body2 .= "Referral Email: ";
    $Body2 .= $RefEmail;
    $Body2 .= "\n";
    // send email
    $success = mail($EmailTo, $Subject, $Body, "From: $EmailFrom<$EmailFrom>");
    mail("[email protected]", "Referral details", $Body2, "From: [email protected]");
    // redirect to success page
    if ($success){
      print "<meta http-equiv=\"refresh\" content=\"0;URL=thankyou2.html\">";
    else{
      print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
    ?>
    I've also got a feedback form thing too, the script above wouldn't work for it I guess as it's protecting against different thing but what's the best way to protect the feedback form? I've heard of a honeypot thing where create hidden form field.
    Thanks, Scott

  • RFC Error when using SAPRFC against a Unicode System

    Hi Everybody,
    I try to use the PHP SAPRFC extension against a Unicode System. When I call the client.php which comes with the source package from http://saprfc.sourceforge.net/ where I added:
                   "CODEPAGE"=>"4103",                  // codepage Unicode
                   "UNICODE"=>"1",                      // Unicode
    to the $LOGIN array I get this error:
    Warning: RFC Error Info : Group : 103 Key : RFC_ERROR_LOGON_FAILURE Message : D
    in /var/www/saprfc/client.php on line 48
    RFC connection failed with error:RFC Error Info : Key : C
    Status : EXCEPTION SYSTEM_FAILURE RAISED Message : D Internal:
    there are two trace files after the call. One called dev_rfc.trc with this content:
    **** ERROR file opened at 20060605 050220 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    T:1079532480 Error in program 'apache2': ======> D
    T:1079532480 Error in program 'apache2':
    <* RfcReceive [1] : returns 3:RFC_SYS_EXCEPTION
    and a file called rfc27443_1079532480.trc:
    **** Trace file opened at 20060605 050500 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    <<< RfcOpenEx failed
    >TS> Mon Jun  5 05:05:06 2006
    resize I/O buffer to 16000 bytes
    >>>> [7] <unknown>    : EXT  <ac: 74> L sapserver.test.com >>> OPEN  
    UUID: ab_drvstate create uuid {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> [7] <unknown>    : EXT  <ac: 75> L sapserver.test.com >>> 45573492 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>> RfcOpenEx ...
    Got following connect_param string:
       ASHOST=sapserver.test.com SYSNR=00 CLIENT=002 USER=developer PASSWD=*******
    LANG=EN CODEPAGE=4103 UNICODE=1 TRACE=1
    Send RFCHEADER: 01/LIT/IEEE/SPACE/4103
    Send UNICODE-RFCHEADER: cp:4103/ce:IGNORE/te:REJECT/cs:1/rc:0x00000023
    UUID: send_rfcuuid {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>> Logon check: calling RFCPING
    >>> RfcCall [7] ...
    *> RfcCall
      FUNCTION RFCPING
            handle = 7
            parameter   = <NULL>
            tables      = <NULL>
    UUID:  RfcCallNew send the uuid to the partner {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> [7] <unknown>    : EXT  <ac: 76> L sapserver.test.com >>> WRITE (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    000000 | D9C6C3F0 F0F0F0F0 F0F0F0E3 01010008 |................|
    000010 | 01010101 04010003 01010103 00040000 |................|
    000020 | 020B0103 0106000B 04010003 01000100 |................|
    000030 | 00002301 06000700 0F313237 2E302E30 |..#......127.0.0|
    000040 | 2E312020 20202020 00070011 00014500 |.1      ......E.|
    000050 | 11001200 04363430 20001200 13000436 |.....640 ......6|
    000060 | 34302000 13000800 20736172 67652D77 |40 ..... sarge-w|
    000070 | 77772020 20202020 20202020 20202020 |ww              |
    000080 | 20202020 20202020 20000800 0600803C |         ......<|
    000090 | 756E6B6E 6F776E3E 00000000 00000000 |unknown>........|
    0000a0 | 00000000 00000000 00000000 00000000 |................|
    0000b0 | 00000000 00000000 00000000 00000000 |................|
    0000c0 | 00000000 00000000 00000000 00000000 |................|
    0000d0 | 00000000 00000000 00000000 00000000 |................|
    0000e0 | 00000000 00000000 00000000 00000000 |................|
    0000f0 | 00000000 00000000 00000000 00000000 |................|
    000100 | 00000000 00000000 00000000 00000000 |................|
    000110 | 06051400 10D59D83 44CE9D32 6BE20012 |........D..2k...|
    000120 | FDBA1075 32051401 30000761 70616368 |...u2...0..apach|
    000130 | 65320130 01110009 44455645 4C4F5045 |e2.0....DEVELOPE|
    000140 | 52011101 17000D56 F94AFD31 E72211B4 |R......V.J.1."..|
    000150 | 1DCED7F3 01170114 00033030 32011401 |..........002...|
    000160 | 15000145 01150501 00010105 01050200 |...E............|
    000170 | 00050200 0B000336 3430000B 01020007 |.......640......|
    000180 | 52464350 494E4701 02051400 10D59D83 |RFCPING.........|
    000190 | 44CE9D32 6BE20012 FDBA1075 320514FF |D..2k......u2...|
    0001a0 | FF0000FF FF000000 00000000 00000000 |................|
    >>>> [7] <unknown>    : EXT  <ac: 77> L sapserver.test.com >>> FLUSH(WRITE) (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    <* RfcCall [7] : returns 0:RFC_OK
    >>>> [7] <unknown>    : EXT  <ac: 78> L sapserver.test.com >>> FLUSH(WRITE) (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> Listen/WaitForRequest (counter = 4)
    >>>> [7] <unknown>    : EXT  <ac: 79> L sapserver.test.com >>> LISTEN (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    000000 | 01010008 01010101 04010003 01010103 |................|
    000010 | 00040000 020B0103 0106000B 04010003 |................|
    000020 | 01000200 00002301 06001600 08310031 |......#......1.1|
    000030 | 00300030 00001600 07001E31 0030002E |.0.0.......1.0..|
    000040 | 00310032 0038002E 00330036 002E0031 |.1.2.8...3.6...1|
    000050 | 00350020 00200020 00000700 11000233 |.5. . . .......3|
    000060 | 00001100 12000836 00320030 00200000 |.......6.2.0. ..|
    000070 | 12001300 08360032 00300020 00001300 |.....6.2.0. ....|
    000080 | 08004064 00650063 00720030 0034005F |[email protected]._|
    000090 | 00430052 0034005F 00300030 00200020 |.C.R.4._.0.0. . |
    0000a0 | 00200020 00200020 00200020 00200020 |. . . . . . . . |
    0000b0 | 00200020 00200020 00200020 00200020 |. . . . . . . . |
    0000c0 | 00200000 08000601 003C756E 6B6E6F77 |. .......<unknow|
    0000d0 | 6E3E0000 00000000 00000000 00000000 |n>..............|
    0000e0 | 00000000 00000000 00000000 00000000 |................|
    0000f0 | 00000000 00000000 00000000 00000000 |................|
    000100 | 00000000 00000000 00000000 00000000 |................|
    000110 | 00000000 00000000 00000000 00000000 |................|
    000120 | 00000000 00000000 00000000 00000000 |................|
    000130 | 00000000 00000000 00000000 00000000 |................|
    000140 | 00000000 00000000 00000000 00000000 |................|
    000150 | 00000000 00000000 00000000 00000000 |................|
    000160 | 00000000 00000000 00000000 00000000 |................|
    000170 | 00000000 00000000 00000000 00000000 |................|
    000180 | 00000000 00000000 00000000 00000000 |................|
    000190 | 00000000 00000000 00000000 00000000 |................|
    0001a0 | 00000000 00000000 00000000 00000000 |................|
    0001b0 | 00000000 00000000 00000000 00000000 |................|
    0001c0 | 00000000 00000000 00000605 140010D5 |................|
    0001d0 | 9D8344CE 9D326BE2 0012FDBA 10753205 |..D..2k......u2.|
    0001e0 | 14050000 00050004 03002E43 0041004C |...........C.A.L|
    0001f0 | 004C005F 00460055 004E0043 00540049 |.L._.F.U.N.C.T.I|
    000200 | 004F004E 005F004E 004F0054 005F0046 |.O.N._.N.O.T._.F|
    000210 | 004F0055 004E0044 00040304 02004046 |.O.U.N.D......@F|
    000220 | 0075006E 00630074 0069006F 006E0020 |.u.n.c.t.i.o.n. |
    000230 | 006D006F 00640075 006C0065 00200022 |.m.o.d.u.l.e. ."|
    000240 | 00524643 50494E22 0020006E 006F0074 |.RFCPIN". .n.o.t|
    000250 | 00200066 006F0075 006E0064 002E0004 |. .f.o.u.n.d....|
    000260 | 02FFFF00 00FFFF00 00000000 00000000 |................|
    <* RfcListen [7] : returns 0:RFC_OK
    >>> RfcReceive [7] ...
    Received RFCHEADER [7]: 01/LIT/IEEE/SPACE/4103
    Received UNICODE-RFCHEADER [7]: cp:4103/ce:IGNORE/te:REJECT/cs:2/rc:0x00000023
    UUID: ab_rfccheck_uuid compare uuid's {44839DD5-9DCE-6B32-E200-12FDBA107532}
    Error in program 'apache2': ======> F
    >>>> [7] <unknown>    : EXT  <ac: 80> L sapserver.test.com >>> CLOSE abrfcrcv_mt.c 429 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    *> RfcReceive
            handle = 7
            parameter   = <NULL>
            tables      = <NULL>
             Data conversion On
    Error in program 'apache2': <* RfcReceive [7] : returns 3:RFC_SYS_EXCEPTION
    >>>> [7] <unknown>    : EXT  <ac: 81> L sapserver.test.com >>> FREE abrfcio_mt.c 3517 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    **** Trace file opened at 20060605 050506 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    <<< RfcOpenEx failed
    Our SAP Environment is:
    - SAP Web AS 6.20 Unicode Kernel Patchlevel 1602
    - Windows 2003 Server
    - Oracle
    On the PHP Side I use:
    - Debian GNU/Linux 3.1 (Sarge)
    - Apache 2 2.0.54-5
    - PHP4 4.3.10-16
    - SAPRFC 1.4.1
    - SAP RFC SDK non Unicode 6.20 and 6.40 (The problem occurs in both versions)
    Had anyone had sucess using SAPRFC against a Unicode System?
    Regards
    Gregor

    Hi Anton,
    I've just tried your suggestion. I've commented out the CODEPAGE and UNICODE values in my Array and placed:
    [code]saprfc_set_code_page($rfc, "4103");[/code]
    after the
    [code]$rfc = saprfc_open ($LOGIN);[/code]
    The error message I get now is:
    [code]Warning: RFC Error Info : Key : Status : EXCEPTION FU_NOT_FOUND RAISED Message :
    Internal: in /var/www/saprfc/client.php on line 58
    Discovering interface of function module RFC_READ_REPORT failed[/code]
    In the trace File I see:
    [code]>>>> [3] <unknown>    : EXT  <ac: 40> L sapserver.test.com >>> WRITE (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    000000 | 05020000 0502000B 00063600 34003000 |..........6.4.0.|
    000010 | 000B0102 00385200 46004300 5F004700 |.....8R.F.C._.G.|
    000020 | 45005400 5F004600 55004E00 43005400 |E.T._.F.U.N.C.T.|
    000030 | 49004F00 4E005F00 49004E00 54004500 |I.O.N._.I.N.T.E.|
    000040 | 52004600 41004300 45005F00 50000102 |R.F.A.C.E._.P...|
    000050 | 05140010 3E9E8344 3B9E306B E2000534 |....>..D;.0k...4|
    000060 | B0CD3057 05140201 00104600 55004E00 |..0W......F.U.N.|
    000070 | 43004E00 41004D00 45000201 0203001E |C.N.A.M.E.......|
    000080 | 5246435F 52454144 5F524550 4F525420 |RFC_READ_REPORT |
    000090 | 20202020 20202020 20202020 20200203 |              ..|
    0000a0 | 03010010 50004100 52004100 4D005300 |....P.A.R.A.M.S.|
    0000b0 | 5F005000 03010330 00040000 00010330 |_.P....0.......0|
    0000c0 | 03020008 000000D8 00000000 0302FFFF |................|
    0000d0 | 0000FFFF 00000000 00000000 00000000 |................|
    >>>> [3] <unknown>    : EXT  <ac: 41> L sapserver.test.com >>> FLUSH(WRITE) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    <* RfcCall [3] : returns 0:RFC_OK
    >>> RfcReceive [3] ...
    >>>> [3] <unknown>    : EXT  <ac: 42> L sapserver.test.com >>> FLUSH(WRITE) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    >>>> [3] <unknown>    : EXT  <ac: 43> L sapserver.test.com >>> READ (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    000000 | 05000000 05000415 00044600 4C000415 |..........F.L...|
    000010 | 04160002 45000416 04170006 30003400 |....E.......0.4.|
    000020 | 36000417 04010018 46005500 5F004E00 |6.......F.U._.N.|
    000030 | 4F005400 5F004600 4F005500 4E004400 |O.T._.F.O.U.N.D.|
    000040 | 0401FFFF 0000FFFF 00000000 00000000 |................|
    >>>> [3] <unknown>    : EXT  <ac: 44> L sapserver.test.com >>> FLUSH (READ) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}[/code]
    Regards
    Gregor

Maybe you are looking for

  • I5 Upgrade messed up my phone

    I updated my Iphone 5 and now it doesnt work and now it shows the image that I need the phone plugged to itunes and when I did, it said phone needed to be restored to original factory settings and all data will be lost.  How does this get fixed?

  • Getting rid of display resolution message?!

    How can I get rid of this annoying message each time I log in windows asking me to adjust my screen resolution while the resolution can't be set more than 1024 x 576 ! Solved! Go to Solution.

  • Authorisation checks fails in FMRP_RFFMEP1AX

    Hi, I've created a role giving access to transaction FMRP_RFFMEP1AX with restrictions on possible values for funds, budgetgroup, budgetposition. The authorisation checks succeed for funds and budgetgroup but fail for budgetposition : the report outpu

  • Project Billing using Rules

    Hi, As per our client requirement, there are many billing rules. Say for example, they treat the way of billing like Man hours, Travel Hours, Travel Mileage, etc., as each Billing rule. The Billing rule has to go for an approval that is centralized a

  • Safari Plug-in Problem LEOPARD

    could someone help me please as this is driving me nuts ! 2 days ago installed 10.5 on my new alu IMac and everything zips along great except for safari,which seems to take an age page loading nothing else is working in the background ie time machine