cvs: /php4/sapi/servlet cookies.php servlet.c servlet.java sessions.php

From: Date: Thu, 09 Mar 2000 13:07:54 +0000
Subject: cvs: /php4/sapi/servlet cookies.php servlet.c servlet.java sessions.php
Groups: php.version4 
Request: Send a blank email to php-version4+get-11801@lists.php.net to get a copy of this message
rubys Thu Mar 9 05:07:54 2000 EDT Modified files: /php4/sapi/servlet cookies.php servlet.c servlet.java sessions.php Log: Both PHP and Java can't read Post data - let java do it and reconstruct for PHP. Index: php4/sapi/servlet/cookies.php diff -u php4/sapi/servlet/cookies.php:1.2 php4/sapi/servlet/cookies.php:1.3 --- php4/sapi/servlet/cookies.php:1.2 Mon Mar 6 05:19:57 2000 +++ php4/sapi/servlet/cookies.php Thu Mar 9 05:07:24 2000 @@ -16,19 +16,17 @@ } else { echo "Your browser is sending the following cookies:<br>\n"; - for ($cookie=current($cookies); $cookie; $cookie=next($cookies)) { + while (list($i,$cookie) = each($cookies)) { echo "Cookie Name: $cookie->name<br>Cookie value: $cookie->value<br>\n"; } } // set a cookie - $name = $request->getParameter("cookieName"); - if ($name) { - $value = $request->getParameter("cookieValue"); - $response->addCookie(new Java("javax.servlet.http.Cookie", $name, $value)); + if ($cookieName) { + $response->addCookie(new Java("javax.servlet.http.Cookie", $cookieName, $cookieValue)); echo "<p>You just sent the following cookie to your browser:<br>\n"; - echo "Name: $name<br>Value: $value<P>\n"; + echo "Name: $cookieName<br>Value: $cookieValue<P>\n"; } ?> Index: php4/sapi/servlet/servlet.c diff -u php4/sapi/servlet/servlet.c:1.22 php4/sapi/servlet/servlet.c:1.23 --- php4/sapi/servlet/servlet.c:1.22 Sun Mar 5 13:35:23 2000 +++ php4/sapi/servlet/servlet.c Thu Mar 9 05:07:24 2000 @@ -171,25 +171,29 @@ static int sapi_servlet_read_post(char *buffer, uint count_bytes SLS_DC) { - JNIEnv *jenv = ((servlet_request*)SG(server_context))->jenv; - jobject servlet = ((servlet_request*)SG(server_context))->servlet; + if (count_bytes == 0) { + return 0; + } else { + JNIEnv *jenv = ((servlet_request*)SG(server_context))->jenv; + jobject servlet = ((servlet_request*)SG(server_context))->servlet; - jclass servletClass = (*jenv)->GetObjectClass(jenv, servlet); - jmethodID readPost = (*jenv)->GetMethodID(jenv, servletClass, "readPost", - "(I)Ljava/lang/String;"); - jstring post = (*jenv)->CallObjectMethod(jenv, servlet, readPost, - count_bytes); - - const char *postAsUTF = (*jenv)->GetStringUTFChars(jenv, post, 0); - uint read_bytes=(*jenv)->GetStringLength(jenv, post); - if (read_bytes>count_bytes) read_bytes=count_bytes; - - memcpy(buffer, postAsUTF, read_bytes); - if (read_bytes<count_bytes) buffer[read_bytes]=0; - - (*jenv)->ReleaseStringUTFChars(jenv, post, postAsUTF); - - return read_bytes; + jclass servletClass = (*jenv)->GetObjectClass(jenv, servlet); + jmethodID readPost = (*jenv)->GetMethodID(jenv, servletClass, + "readPost", "(I)Ljava/lang/String;"); + jstring post = (*jenv)->CallObjectMethod(jenv, servlet, readPost, + count_bytes); + + const char *postAsUTF = (*jenv)->GetStringUTFChars(jenv, post, 0); + uint read_bytes=(*jenv)->GetStringLength(jenv, post); + if (read_bytes>count_bytes) read_bytes=count_bytes; + + memcpy(buffer, postAsUTF, read_bytes); + if (read_bytes<count_bytes) buffer[read_bytes]=0; + + (*jenv)->ReleaseStringUTFChars(jenv, post, postAsUTF); + + return read_bytes; + } } Index: php4/sapi/servlet/servlet.java diff -u php4/sapi/servlet/servlet.java:1.4 php4/sapi/servlet/servlet.java:1.5 --- php4/sapi/servlet/servlet.java:1.4 Sun Mar 5 13:35:23 2000 +++ php4/sapi/servlet/servlet.java Thu Mar 9 05:07:24 2000 @@ -19,6 +19,8 @@ package net.php; import java.io.IOException; +import java.net.URLEncoder; +import java.util.Enumeration; import javax.servlet.*; import javax.servlet.http.*; @@ -51,15 +53,22 @@ /******************************************************************/ String readPost(int bytes) { - try { - if (stream == null) stream=request.getInputStream(); - byte[] data = new byte[bytes]; - int len = stream.read(data, 0, bytes); - if (len <= 0) return ""; - return new String(data, 0, len); - } catch (IOException e) { - return ""; - } + String result; + if (!request.getMethod().equals("POST")) { + result = request.getQueryString(); + } else { + Enumeration e = request.getParameterNames(); + result=""; + String concat=""; + while (e.hasMoreElements()) { + String name = (String)e.nextElement(); + String value = request.getParameter(name); + result+=concat+name+"="+URLEncoder.encode(value); + concat="&"; + } + } + if (result == null) return ""; + return result; } String readCookies() { Index: php4/sapi/servlet/sessions.php diff -u php4/sapi/servlet/sessions.php:1.3 php4/sapi/servlet/sessions.php:1.4 --- php4/sapi/servlet/sessions.php:1.3 Wed Mar 8 20:04:04 2000 +++ php4/sapi/servlet/sessions.php Thu Mar 9 05:07:24 2000 @@ -19,11 +19,7 @@ // set session info if needed - $dataName = $request->getParameter("dataName"); - if ($dataName) { - $dataValue = $request->getParameter("dataValue"); - $session->setAttribute($dataName, $dataValue); - } + if ($dataName) $session->setAttribute($dataName, $dataValue); // print session contents

« previous php.version4 (#11801) next »