Forms md5

Hello.
I've been looking for some way to encrypt the passwords for database users. What I want is prevent them from logging on directly to the database with their username and password, so the password is encrypted before logging on to the database.
I'm curious how I could run a hashing function like md5 in forms (I'm not logged in to the database so I can't use dbms_obsfucation). I could only find one project for md5 in pl/sql but was discontinued because of the above mentioned package. Will I have to code the algorithm in pl/sql?

Well, you don't pass the component to the method. (The error message already told you that.) You need a String. (Your code tells you that.)
So how do you get a String from a JPasswordField? Well unfortunately that's a little more difficult that most text fields. Usually you do the obvious thing and call the getText() method, but in this case it's deprecated and you are supposed to use the getPassword() method. But it returns an array of chars.
Left as an exercise for the student to find out how to make an array of chars into a String.

Similar Messages

  • Problem to generate classes from a gsoap server's wsdl with wsimport

    Hello,
    I trie for a long time to generate my client classes from a wsdl file with wsimport. The wsdl file was generated by gsoap.
    Here, the wsdl file :
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="form"
    targetNamespace="https://enterprise-name-masked.com/form.wsdl"
    xmlns:tns="https://enterprise-name-masked.com/form.wsdl"
    xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
    xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:generic="generic"
    xmlns:xop="http://www.w3.org/2004/08/xop/include"
    xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
    xmlns:form="form"
    xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
    xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema targetNamespace="generic"
      xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
      xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:generic="generic"
      xmlns:xop="http://www.w3.org/2004/08/xop/include"
      xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
      xmlns:form="form"
      xmlns="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="unqualified"
      attributeFormDefault="unqualified">
      <import namespace="http://www.w3.org/2004/08/xop/include"/>
      <import namespace="http://www.w3.org/2004/11/xmlmime"/>
      <import namespace="http://www.w3.org/2003/05/soap-encoding"/>
      <simpleType name="service">
       <restriction base="xsd:string">
        <enumeration value="service-none"/><!-- enum const = 0 -->
        <enumeration value="service-ident"/><!-- enum const = 1 -->
        <enumeration value="service-pool"/><!-- enum const = 2 -->
        <enumeration value="service-hwr"/><!-- enum const = 3 -->
        <enumeration value="service-form"/><!-- enum const = 4 -->
        <enumeration value="service-document"/><!-- enum const = 5 -->
       </restriction>
      </simpleType>
      <simpleType name="result-code">
       <restriction base="xsd:string">
        <enumeration value="ok"/><!-- enum const = 0 -->
        <enumeration value="already-exists"/><!-- enum const = 1 -->
        <enumeration value="not-found"/><!-- enum const = 2 -->
        <enumeration value="cant-connect"/><!-- enum const = 3 -->
        <enumeration value="exception"/><!-- enum const = 4 -->
        <enumeration value="bad-conversion"/><!-- enum const = 5 -->
        <enumeration value="bad-values"/><!-- enum const = 6 -->
        <enumeration value="session-not-found"/><!-- enum const = 7 -->
        <enumeration value="initialization-failed"/><!-- enum const = 8 -->
       </restriction>
      </simpleType>
      <complexType name="result">
       <sequence>
         <element name="code" type="generic:result-code" minOccurs="1" maxOccurs="1"/>
         <element name="details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
    </schema>
    <schema targetNamespace="form"
      xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
      xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:generic="generic"
      xmlns:xop="http://www.w3.org/2004/08/xop/include"
      xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
      xmlns:form="form"
      xmlns="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="unqualified"
      attributeFormDefault="unqualified">
      <import namespace="http://www.w3.org/2004/08/xop/include"/>
      <import namespace="http://www.w3.org/2004/11/xmlmime"/>
      <import namespace="http://www.w3.org/2003/05/soap-encoding"/>
      <simpleType name="area-type">
       <restriction base="xsd:string">
        <enumeration value="area-type-text"/><!-- enum const = 0 -->
        <enumeration value="area-type-numeric"/><!-- enum const = 1 -->
        <enumeration value="area-type-date"/><!-- enum const = 2 -->
        <enumeration value="area-type-checkbox"/><!-- enum const = 3 -->
        <enumeration value="area-type-slider"/><!-- enum const = 4 -->
        <enumeration value="area-type-draw"/><!-- enum const = 5 -->
        <enumeration value="area-type-identifier"/><!-- enum const = 6 -->
       </restriction>
      </simpleType>
      <simpleType name="format">
       <restriction base="xsd:string">
        <enumeration value="A5"/><!-- enum const = 0 -->
        <enumeration value="A4"/><!-- enum const = 1 -->
        <enumeration value="A3"/><!-- enum const = 2 -->
        <enumeration value="A2"/><!-- enum const = 3 -->
        <enumeration value="A1"/><!-- enum const = 4 -->
        <enumeration value="A0"/><!-- enum const = 5 -->
       </restriction>
      </simpleType>
      <complexType name="area">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="x" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="y" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="width" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="height" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="comments" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="area-type" type="form:area-type" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-string">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="string" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-integer">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="integer" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-range">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="lower" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="upper" type="xsd:double" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="areas">
       <sequence>
         <element name="areas" type="form:area" minOccurs="0" maxOccurs="unbounded"/>
         <element name="string-areas" type="form:area-with-string" minOccurs="0" maxOccurs="unbounded"/>
         <element name="integer-areas" type="form:area-with-integer" minOccurs="0" maxOccurs="unbounded"/>
         <element name="range-areas" type="form:area-with-range" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="group">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
         <element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="background">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="md5" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="mime" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="pattern-type">
       <sequence>
         <element name="print-once" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
         <element name="has-identifier" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="page">
       <sequence>
         <element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
         <element name="format" type="form:format" minOccurs="1" maxOccurs="1"/>
         <element name="is-portrait" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
         <element name="background" type="form:background" minOccurs="1" maxOccurs="1"/>
         <element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
         <element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document-new">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
         <element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document">
       <sequence>
         <element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
         <element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document-info">
       <sequence>
         <element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="page-count" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="Data">
       <sequence>
         <element ref="xop:Include" minOccurs="1" maxOccurs="1"/>
       </sequence>
         <attribute ref="xmime4:contentType" use="optional"/>
      </complexType>
      <complexType name="login-response">
       <sequence>
         <element name="result" type="generic:result" minOccurs="1" maxOccurs="1"/>
         <element name="session" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <!-- operation request element -->
      <element name="login" type="xsd:string"/>
      <!-- operation request element -->
      <element name="password" type="xsd:string"/>
      <!-- operation response element -->
      <element name="result" type="generic:result"/>
      <!-- operation response element -->
      <element name="uuid" type="xsd:string"/>
      <!-- operation request element -->
      <element name="session" type="xsd:string"/>
      <!-- operation request element -->
      <element name="aform" type="form:document-new"/>
      <!-- operation response element -->
      <element name="form" type="form:document"/>
      <!-- operation request element -->
      <element name="md5" type="xsd:string"/>
      <!-- operation response element -->
      <element name="data" type="form:Data"/>
      <!-- operation response element -->
      <element name="exists" type="xsd:boolean"/>
      <!-- operation response element -->
      <element name="backgrounds" type="form:background"/>
      <!-- operation response element -->
      <element name="forms" type="form:document"/>
      <!-- operation response element -->
      <element name="forms-info" type="form:document-info"/>
    </schema>
    </types>
    <message name="login">
    <part name="login" element="form:login"/>
    <part name="password" element="form:password"/>
    </message>
    <message name="uuid-response">
    <part name="result" element="form:result"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="quit">
    <part name="session" element="form:session"/>
    </message>
    <message name="response">
    <part name="result" element="form:result"/>
    </message>
    <message name="new-form">
    <part name="session" element="form:session"/>
    <part name="aform" element="form:aform"/>
    </message>
    <message name="free-form">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="get-form">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="document-response">
    <part name="result" element="form:result"/>
    <part name="form" element="form:form"/>
    </message>
    <message name="get-file">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    </message>
    <message name="data-response">
    <part name="result" element="form:result"/>
    <part name="data" element="form:data"/>
    </message>
    <message name="set-file">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    <part name="data" element="form:data"/>
    </message>
    <message name="file-exists">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    </message>
    <message name="exists-response">
    <part name="result" element="form:result"/>
    <part name="exists" element="form:exists"/>
    </message>
    <message name="list-form-backgrounds">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="list-backgrounds-response">
    <part name="result" element="form:result"/>
    <part name="backgrounds" element="form:backgrounds"/>
    </message>
    <message name="list-forms">
    <part name="session" element="form:session"/>
    </message>
    <message name="list-forms-response">
    <part name="result" element="form:result"/>
    <part name="forms" element="form:forms"/>
    </message>
    <message name="list-forms-info">
    <part name="session" element="form:session"/>
    </message>
    <message name="list-forms-info-response">
    <part name="result" element="form:result"/>
    <part name="forms-info" element="form:forms-info"/>
    </message>
    <portType name="formPortType">
    <operation name="login">
      <documentation>Service definition of function form__login</documentation>
      <input message="tns:login"/>
      <output message="tns:uuid-response"/>
    </operation>
    <operation name="quit">
      <documentation>Service definition of function form__quit</documentation>
      <input message="tns:quit"/>
      <output message="tns:response"/>
    </operation>
    <operation name="new-form">
      <documentation>Service definition of function form__new_form</documentation>
      <input message="tns:new-form"/>
      <output message="tns:uuid-response"/>
    </operation>
    <operation name="free-form">
      <documentation>Service definition of function form__free_form</documentation>
      <input message="tns:free-form"/>
      <output message="tns:response"/>
    </operation>
    <operation name="get-form">
      <documentation>Service definition of function form__get_form</documentation>
      <input message="tns:get-form"/>
      <output message="tns:document-response"/>
    </operation>
    <operation name="get-file">
      <documentation>Service definition of function form__get_file</documentation>
      <input message="tns:get-file"/>
      <output message="tns:data-response"/>
    </operation>
    <operation name="set-file">
      <documentation>Service definition of function form__set_file</documentation>
      <input message="tns:set-file"/>
      <output message="tns:response"/>
    </operation>
    <operation name="file-exists">
      <documentation>Service definition of function form__file_exists</documentation>
      <input message="tns:file-exists"/>
      <output message="tns:exists-response"/>
    </operation>
    <operation name="list-form-backgrounds">
      <documentation>Service definition of function form__list_form_backgrounds</documentation>
      <input message="tns:list-form-backgrounds"/>
      <output message="tns:list-backgrounds-response"/>
    </operation>
    <operation name="list-forms">
      <documentation>Service definition of function form__list_forms</documentation>
      <input message="tns:list-forms"/>
      <output message="tns:list-forms-response"/>
    </operation>
    <operation name="list-forms-info">
      <documentation>Service definition of function form__list_forms_info</documentation>
      <input message="tns:list-forms-info"/>
      <output message="tns:list-forms-info-response"/>
    </operation>
    </portType>
    <binding name="form" type="tns:formPortType">
    <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="login">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="quit">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="new-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="free-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="get-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="get-file">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="set-file">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="file-exists">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-form-backgrounds">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-forms">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-forms-info">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    </binding>
    <service name="form">
    <documentation>gSOAP 2.7.10 generated service definition</documentation>
    <port name="form" binding="tns:form">
      <SOAP:address location="https://enterprise-name-masked.com/cgi-bin/form.fcgi"/>
    </port>
    </service>
    </definitions>And here, you can find the generated errors :
    wsimport -s Sources -b http://www.w3.org/2004/08/xop/includ
    e -b http://www.w3.org/2004/11/xmlmime form.wsdl
    parsing WSDL...
    [WARNING] src-resolve: Cannot resolve the name 'xmime4:contentType' to a(n) 'attribute declaration' component.
      line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] s4s-elt-invalid-content.1: The content of 'Data' is invalid.  Element 'attribute' is invalid, misplaced, or occurs too often.
      line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] src-resolve.4.2: Error resolving component 'generic:result'. It was detected that 'generic:result' is in namespace 'generic', but components
    from this namespace are not referenceable from schema document 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP
    /WSImport/Test/Form/form.wsdl#types?schema2'. If this is the incorrect namespace, perhaps the prefix of 'generic:result' needs to be changed. If this
    is the correct namespace, then an appropriate 'import' tag should be added to 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Re
    cherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2'.
      line 230 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] src-resolve: Cannot resolve the name 'xop:Include' to a(n) 'element declaration' component.
      line 213 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] Ignoring SOAP port "form": it uses non-standard SOAP 1.2 binding.
    You must specify the "-extension" option to use this binding.
      line 533 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
    [WARNING] Service "form" does not contain any usable ports. try running wsimport with -extension switch.
      line 531 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
    generating code...
    compiling code...Could you tell me how to correctly generate my classes in this case ?
    Thank you.
    Edited by: morphet on May 30, 2008 6:12 AM

    Alchemista,
    Not sure if you were able to solve your problem..but I was trying to do exactly what you were trying to do.. access a datasource from a simple Java client. However, you cannot do so by simply writing the Java class and running it. The simple Java client has to be deployed as a J2EE Application Client. The following tutorial shows how to create a J2EE Application Client using the non-J2EE Java class you have written.
    http://developer.java.sun.com/developer/technicalArticles/J2EE/appclient
    The article talks about accessing EJBs from a J2EE App. Client.. but since you only want to access the DataSource, just skip all the screens until it asks you to register the JNDI DataSource resources...
    Let me know if you have any questions. You can email me at [email protected]
    I hope this helps.

  • Form Authentication Servlet  and MD5

    Dear forum,
    I have the following servlet to authenticate a user via form. If you go to the root url you get the login html and the authentication works fine but if the user knows the url of a specific html just by typing the url gives access to the page without going through the authentication. The website is composed of htmls and servlets. How can I force the authentication for the htmls and the servlets. I included at the bottom how I added the Login servlet to the web.xml. I suspect that the servlet definition in the web.xml is the problem.
    Also I would like to use MD5 encryption, would someone suggest how this can be accomplished.
    Thanks.
    This is the code:
    import java.io.*;
    import java.util.*;
    import javax.servlet.http.*;
    import javax.servlet.*;
    import java.sql.*;
    import javax.sql.*;
    public class LoginServlet extends HttpServlet {
      public void doPost (
         HttpServletRequest     request,
         HttpServletResponse     response
        ) throws ServletException, IOException
      String item = request.getParameter("account");  
      doGet(request,response);
      public void doGet (
         HttpServletRequest     request,
         HttpServletResponse     response
        ) throws ServletException, IOException
       HttpSession session = request.getSession(true);
       PrintWriter out = response.getWriter();
         try {
              String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
              String dbUrl="jdbc:odbc:Virtual_Library_DB";
              Class.forName(driverName);
              Connection db =DriverManager.getConnection(dbUrl,"","");
              if ((session.getAttribute("user") == null) || (!session.getAttribute("ip").equals(request.getRemoteAddr()))){
                   PreparedStatement pStmt = db.prepareStatement("SELECT * FROM Login WHERE Login.account =? AND Login.password=? ");
                   pStmt.setString(1, request.getParameter("account"));
                   pStmt.setString(2, request.getParameter("password"));
                            pStmt.setString(3, request.getParameter("level"));
                   ResultSet rs = pStmt.executeQuery();
                    System.out.println("hello");
                   if(!rs.next()){
                        System.out.println("Account is not valid.");
                        request.setAttribute("msg", "Account is not valid.");
                        RequestDispatcher rd = request.getRequestDispatcher("LoginInvalid.html");
                        rd.forward(request, response);
                   else do {
                        int id = rs.getInt(1);
                        String account = rs.getString(2);
                        session.setAttribute("user", new Integer(id));
                        session.setAttribute("account", account);
                        session.setAttribute("ip", request.getRemoteAddr());
                        System.out.println("User " + session.getAttribute("user") +" has logged on.");
                        request.setAttribute("msg", "User has logged on.");
                        RequestDispatcher rd = request.getRequestDispatcher("index.html");
                        rd.forward(request, response);
                   } while(rs.next());
                   rs.close();
              else {
                   System.out.println("User has already logged on.");
                        request.setAttribute("msg", "User has already logged on.");
                        RequestDispatcher rd = request.getRequestDispatcher("index.html");
                        rd.forward(request, response);
              db.close();
         catch(Exception exp){
              System.out.println("Exception: "+ exp);
       out.close();
    web.xml
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>LoginServlet</servlet-class>
      </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
      </servlet-mapping>

    Check the session in the servlets that are allowed only for logged-in users.
    public class ServletUtils
        public static boolean checkLogin(HttpServletRequest request, HttpServletResponse response)
            HttpSession session = request.getSession(false); // false = don't create a new session if not logged in
            if (session != null)
                return true;
            Logging.log("tried to access page without login, redirecting to login");
            ...redirect to login.html...
            return false;
        // At the start of your doGet()'s:
        if (!checkLogin(request, response))
            return;Do you really need static documents to be authenticated? dot.gif's and all? Someone can make a zip file of them anyway and post it to their own web site or Kazaa.
    If you have a couple of html pages you want authenticated, easiest is to write them as servlets (+ maybe JSP's) and do the login check there.
    Ok, let's say you have ...what, an "image database" (heh) that you want available to logged-in users only. Write a servlet that serves those pages. That servlet checks the session, and then copies the appropriate file to the user (remember to set content type; consider caching the files if hit rate is very high.) The servlet would be called like /images/show?id=gerbilsex/closeup.gif to fetch the named file. Put the files outside the web server's document directory so they are not accessible except through the servlet. Perform strict checks on the file name to disallow nastiness like id=../../../etc/passwd. A similar database solution is also possible. Another variant is to map a servlet to a "virtual directory name" and get the actual file name from the URL path -- similar to the ?id= solution, except the URLs don't have parameters.
    About md5: md5 isn't an encryption algorithm, it is a hash algorithm (aka "message digest" or "fingerprint"). It can't be decrypted. What do you really want to accomplish - encryption or hashing?

  • Using md5 in a manul tabular form to compare if column value changed

    Version: Application Express 3.2.0.00.27
    Hello,
    I am creating a manul tabular form using apx_item in my select statment that is the source for the query in a report region. I am using a collection. The collection creation statement is:
        apex_collection.create_collection_from_query(
           p_collection_name => 'DELEG_COLL',
           p_query           => 'SELECT authid
                               ,empid empid
                               ,to_char(deldate,''DD-MON-YYYY'') deldate
                               ,delscope delscope
                               ,dellimits dellimits
                               ,subdelrights subdelrights
                               ,to_char(delexpiry,''DD-MON-YYYY'') delexpiry
                               ,to_char(datedelremoved,''DD-MON-YYYY'') datedelremoved
                               ,delremovalcomments delremovalcomments
                               ,delegator delegator
                               ,''O'' original_record
                               ,wwv_flow_item.md5(delscope, dellimits, subdelrights,
                                  to_char(delexpiry,''DD-MON-YYYY'') delexpiry,
                                  to_char(datedelremoved,''DD-MON-YYYY'') datedelremoved,
                                  delremovalcomments, delegator)
                               FROM tbl_delegations
                               where empid = v(''P12_EMPID'')',
           p_generate_md5     => 'YES');The above code is giving me an error in the function
    wwv_flow_item.md5(delscope, dellimits, subdelrights,
                                  to_char(delexpiry,''DD-MON-YYYY'') delexpiry,
                                  to_char(datedelremoved,''DD-MON-YYYY'') datedelremoved,
                                  delremovalcomments, delegator)It doesn't seem to like where I attempt to convert date column delexpiry and datedelremoved to a varchar. I am doing this as in the db they are dates and inorder to using the md5 function to compare if the values have changed and only update rows where the values changed.
    There error that I get is:
    ORA-20104: create_collection_from_query Error:ORA-20104: create_collection_from_query ParseErr:ORA-00907: missing right parenthesis
    In the collection I am trying to store the md5 hash result. I haved all the update and insert logic working expect for date type columns. THose give the above error.
    I thank you ahead of time for your assistance!
    A. Shalon

    Helen,
    Not sure I fully understand your goal.  We don't use "tasks" at all but if you are looking to have your workflow check certain valus and be able to send email messages to people based on whatever, then you can certainly do that (as long as your Sharepoint
    has the email setup.  We do this for alot of workflow tasks.
    So, in the workflow you can have a blanket statement like what I previously listed:
    if Current Item:hiddenStatus  not equals Current Item:Status
        .... do something
    or you can do something like:
    if Current Item:hiddenStatus equals "In-Progress"
        .... do something
    Else if Current Item:hiddenStatus  equals "Completed"
        .... do something
    or combine the two and do nested "if" statements.  Then you add an email statement wherever you need it like:
    if Current Item:hiddenStatus  equals "Completed"
       then email "these users"
    To add the email part, just type in "email" on the line where you want to add a statment.  There is only one option to choose from.  That will display the line "then email these users".   The "these users" will be a link.  When you
    click it you will get a popup to add the email info.  We typically will send the email to a user (or users) that are already listed in one of the PeoplePicker fields.  On the email form, you can type in your own text, designate that a value is based
    on a column value (like our PeoplePicker), designate that a value is based on a workflow variable, add a link to the current item, etc.  To get to these options you will click the button to the right of the fields or use the "Add or Change Lookup" button
    in the bottom-left for the text area.  There is alot you can set in the mail.
    Does this help answer your question?
    - Peter

  • How do i get my registration form to post with MD5

    Hi
    I have a registration form which posts to my, mysql database via this code:
    <?php
    define('DB_NAME','');
    define('DB_USER','');
    define('DB_PASSWORD','');
    define('DB_HOST','');
    define('DB_TABLE','user00');
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_TABLE);
    if (!$link){
              die ('Could not connect: ' . mysql_error());
    $db_selected = mysql_select_db(DB_NAME, $link);
    if (!$db_selected) {
              die('can\'t use' . DB_NAME . ': ' . mysql_error());
    $value1 = $_POST['Name'];
    $value2 = $_POST['EmailAddress'];
    $value3 = $_POST['Username'];
    $value4 = $_POST['Password'];
    $sql = "INSERT INTO user00 (Name, EmailAddress, Username, Password) VALUES ('$value1', '$value2', '$value3', '$value4')";
    echo 'connected successfully';
    if (!mysql_query($sql)){
              die('Error: ' . mysql_error());
    mysql_close();
    ?>
    The code works fine but i have just noticed that I have missed out the MD5 encryption that I want the password format to be in within the database.
    Any help would be appreaciated.

    AFAIK GoDaddy scripts do not provide support for anti-spam measures.  I'm pretty sure you would need to use a custom or 3rd party script.
    Or is there a better way to protect my form from spam bots?
    Yes.  IMO Captchas are not user friendly and should be used only as a last resort.
    The hidden Field Trick - Feeding an automated bot a field hidden with CSS. If it contains anything the message is deleted or flagged as spam.
    Form Timer - If the form is submitted too quickly (automated submission), it is deleted or marked as spam.
    See Formailer.php from DB Masters
    http://www.dbmasters.net/node/18
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists
    http://alt-web.com/
    http://twitter.com/altweb

  • [solved pacman4 & paccheck] pacman grabed md5's form different server

    Now GPG signed packages are the way to go, but what if pacman would grab the md5 hashes from a different server then the one it got the package from
    This thought is based on the assumption that if a package mirror got owned the attacker could upload a trojaned package along with a new hash. If pacman got the hash form a different server then it would also be providing security along with integrity checking.
    I am also assuming that this would be an easy thing to make pacman do.
    Last edited by hunterthomson (2011-10-18 11:30:09)

    karol wrote:
    wonder wrote:signatures are available on public keyservers. pick a keyserver and add it to /etc/pacman.d/gnupg/gpg.conf
    Is every package signed?
    no
    Do they work with pacman 3.5.4?
    no. pacman 4.0 only

  • Tabular Form: Conditional column based on another column in table/form?

    Hi!
    I have 4 columns in table A:
    number (the question number)
    question (the question to be asked)
    type (TEXT, LOV are the 2 valid values)
    answer (the answer with text or a selection from the lov table below)
    I have 2 columns in table B:
    number (the question number)
    values (a single value for the lov's)
    In table B there can be mutiple rows for each number. Table A and table B
    join on the number.
    I want to build a tablular form on table A where for each row either a text
    box or a select list is displayed depending on the contents of the type column.
    So row 1 would display a text box when the type value is text; row 2 would
    display a select list when the type value is lov.
    Is this even possible? How do I refer to the type column in the conditional for the
    answer column? I am guessing that I will need to have 2 answer columns one
    that displays when the type column is TEXT and one that displays when the
    type column contains LOV. This is OK. Setting up the conditional is display is the issue at this point.
    Hopefully I have explained this well enough! :)
    Thanks!
    Dave Venus

    Hi Dave,
    Sorry for not responding sooner - I finish work at 3pm GMT.
    I'll take your first question first (3:28PM posting according to my display - not sure if you are on GMT time?):
    As far as I understand it, using the select_list_from_query() function generates the options that are required in the select list as HTML tags. Each instance of this function should create a SELECT tag and the results of the query should generate one or more OPTION tags within it.
    Second question (4:20PM posting):
    The HTMLDB_ITEM functions are listed in the documentation - here's a link to the online version:
    http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14303/api.htm#sthref2524
    Most of the examples that I have seen have been on this forum - simply search for HTMLDB_ITEM or one of its functions.
    I tend to leave the generation of tabular forms to the wizard as much as possible. The only exceptions are when I need to have access to more than the Primary Key for a row but don't want to show the field on screen. There are examples on the forum about concatenating the HTMLDB_ITEM functions into a single value - this hides ID fields from the user but makes them available to PL/SQL code.
    Third question (5:29PM posting)
    I did try using DECODE in my questionnaire but not for the feature that you needed. Originally, I wanted to use this to display one of a number of different fields (ie, my date, number or string field as appropriate to the question) but this didn't help as I couldn't get back to the right field during the update. If you have decode working for the select lists, then that's great!
    The first column should be hidden or sitting behind a checkbox as this should be the Primary Key for the row and should not be editable by the user nor would it normally be displayed.
    As long as your select statement creates the correct output (albeit that you may need to work on the layout!), you should have an updatable form. However, you will need to have the MRU processes in place and the appropriate buttons that trigger these. When I did my questionnaire, I created the form using a wizard to get all of the processes and buttons and then changed the select statement. If you haven't got the processes and/or buttons, we can go through adding these onto your page.
    Last question (9:08PM posting)
    As explained above, column 1 should normally be hidden. The INPUT tag you detail above is what I would expect to see. The value="6" attribute indicates that 6 is the Primary Key for that row - every row will have the same tag but different values for the "value" attribute. So, if it is hidden and these are the tags you see doing a View Source on the page, then everything is correct.
    OK. So now we have the data on screen and (hopefully?) we have the correct processes and buttons on the page.
    The next step would be validation and update of the data.
    Validation of the data can be handled by a normal page process - I can let you have example code if you want to validate the data (this will also explain how to loop through the rows - there are also methods that you can use to do this in javascript if you want). Updates should be handled by the processes and buttons on the page - again, if you haven't got these we can go through adding them in (although, if you haven't yet formatted your page, you may find it quicker to copy your select statement and create the page again using the same select statement).
    ORA-20001 errors are user defined errors. Do you mean the "data has changed" errors? If so, you will probably need to include the MD5 checksum functionality (it's shown in the document linked above).
    Finally, we'll keep this thread going so that you have all of your workings and my responses in one place, if that's ok with you?
    Regards
    Andy

  • Bug in Tabular form Not Exist Validation, fails when creating multiple rows

    Hi,
    I have a Not Exist validation created for a Tabular form:
       select 1 from my_table where col1 = :col1 and col2 = :col2Execution State: For created and Modified Rows
    which is working fine when a row already there in DB
    and I am trying to enter a new row with same data.
    but when there's no data and I enter two rows with same data, validation does not fire, first row should allowed to enter
    but for second row it should give error that data already exists, which is not happening.
    for example,
    let's say I have a row in DB with: 1, 2, 3
    when I try to add a new row with same data ie. 1, 2, 3 validation fires and showing error, which is fine.
    but let's say there's no data in DB and I am entering two rows with:
    1, 2, 3
    1, 2, 3
    validation is not working this time, it is allowing to enter both the rows.
    do I need to create a manual validation for this or what?
    Apex 4.1.1.00.23
    Regards,
    Tauceef
    Edited by: Tauceef on Dec 6, 2012 10:09 AM
    Edited by: Tauceef on Dec 6, 2012 11:22 AM
    Edited by: Tauceef on Dec 6, 2012 11:27 AM

    Hello Tauceef,
    >> Now I got it, I was under impression that it will validate one by one row before insertion,
    >> but it's going to check all the rows first, then do the insertion.
    Just to clear things up, the APEX engine works exactly as you describe, but this is your problem.
    The APEX engine do check\validate all the rows first, one row at a time, and only if all the rows pass validation, the DML processes kick in. The DML processes work on the entire Tabular Form record set (per page view, of course).
    In order for your type of validation to work (the one that queries the database), as you want it, the validation and DML actions have to run together, row by row. This is not how things work, because it’s less efficient/optimal, and may lead to a situation where a certain row can fail validation, but other row(s) already been inserted/updated/deleted into/from the database. This could be a very tricky situation.
    Vikram has suggested to rely on a database constraint, and control the APEX error message. This is possible, although I’m not sure that in this case, the Tabular Form will retain all the user changes, in case of validation error. You should check it.
    Another option, which Marc hinted on, is to manipulate the G_Fxx arrays. In your case, you should loop through the new rows, compute their MD5, and make sure that all the rows have different MD5 values. This is on top of the current validation, which makes sure that the new rows do not already exist in the database.
    Regards,
    Arie.
    &diams; Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
    &diams; Author of Oracle Application Express 3.2 – The Essentials and More

  • Mail-form from dB Masters + reCaptcha - Things wont work the way i want.

    I used a mail-form from dB Masters because someone here gave me the tip.
    And its great! But it uses a simplefied Captcha script.
    I tryd to change the code myself and got to this: http://www.wientjesvoegwerk.nl/PHP/form.php
    If you try to send mail it wont work.....
    form.php
    <!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>Email Form</title>
    </head>
    <body>
    <center>
    <form id="form" method="post" action="../formmailer.php" enctype="multipart/form-data">
    <input type="hidden" name="action" value="verify">
    <table cellpadding="4">
    <tr><td  style="text-align: left;" valign=top><font size="2" FACE="Verdana" color="#000000">Uw naam:</font><small><span style="color:#E00000;" title="Required field">*</span></small></td><td align="left">
    <input type="text" name="Naam" value=""/>
    </td></tr>
    <tr><td  style="text-align: left;" valign=top><font size="2" FACE="Verdana" color="#000000">Email:</font><small><span style="color:#E00000;" title="Required field">*</span></small></td><td align="left">
    <input type="text" name="Email" value="" />
    </td></tr>
    <tr><td  style="text-align: left;" valign=top><font size="2" FACE="Verdana" color="#000000">Telefoonnummer:</font><small><span style="color:#E00000;" title="Required field">*</span></small></td><td align="left">
    <input type="text" name="Telefoonnummer" value="" />
    </td></tr>
    <tr><td  style="text-align: left;" valign=top><font size="2" FACE="Verdana" color="#000000">Onderwerp:</font><small><span style="color:#E00000;" title="Required field">*</span></small></td><td align="left">
    <select name="Onderwerp">
        <option value="0">Algemene Informatie</option>
        <option value="1">Offerte</option>
        <option value="2">Overige</option>
        </select>
    </td></tr>
    <tr><td  style="text-align: left;" valign=top><font size="2" FACE="Verdana" color="#000000">Bericht:</font><small><span style="color:#E00000;" title="Required field">*</span></small></td><td align="left">
    <textarea name="Bericht" rows="7" cols="40"></textarea>
    </td></tr>
    <tr><td align=right>CAPTCHA TXT</td>
    <td align="left">
    <form method="post" action="verify.php">
       <?php
         require_once('recaptchalib.php');
         $publickey = "I hide the key on this forum dont know if its ok to show";
         echo recaptcha_get_html($publickey);
       ?>
    </form>
    </td>
    </tr>
    <tr><td></td><td align="left">
    <input type="submit" name="submit" value="Submit" />
    <input type="reset" name="Reset" value="Clear Form" />
    <input type="hidden" name="config" value="0" />
    <input type="hidden" name="nospam" value="" />
    </td></tr>
    </table>
    <div style="height:1px; display: none; visibility: hidden;">
    <input type="text" name="email">
    </div>
    </form>
    </center>
    </body>
    </html>
    formmailer.php
    <?php
    // dB Masters' PHP FormM@iler, Copyright (c) 2007 dB Masters Multimedia
    // http://www.dbmasters.net/
    // FormMailer comes with ABSOLUTELY NO WARRANTY
    // Licensed under the AGPL
    // See license.txt and readme.txt for details
    // General Variables
         $check_referrer="no";
         $referring_domains="www.wientjesvoegwerk.nl";
    // options to use if hidden field "config" has a value of 0
    // recipient info
         $charset[0]="UTF-8";
         $tomail[0]="[email protected]";
         $cc_tomail[0]="";
         $bcc_tomail[0]="";
    // Mail contents config
         $subject[0]="Onderwerp van de Email";
         $reply_to_field[0]="Email";
         $reply_to_name[0]="Naam";
         $required_fields[0]="Naam,Email,Telefoonnummer,Onderwerp,Bericht";
         $required_email_fields[0]="Email";
         $attachment_fields[0]="";
         $return_ip[0]="yes";
         $mail_intro[0]="Er is een bericht gestuurd vanuit Wientjesvoegwerk.nl:";
         $mail_fields[0]="Naam,Email,Telefoonnummer,Onderwerp,Bericht";
         $mail_type[0]="text";
         $mail_priority[0]="1";
         $allow_html[0]="no";
    // Send back to sender config
         $send_copy[0]="yes";
         $copy_format[0]="vert_table";
         $copy_fields[0]="Naam,Onderwerp,Bericht";
         $copy_attachment_fields[0]="";
         $copy_subject[0]="Kopie van uw bericht naar Wientjesvoegwerk.nl";
         $copy_intro[0]="Dank u voor uw bericht!<br />Om veiligheidsredenen is uw email adres en telefoonnummer niet in deze mail te zien.<br /> Het volgende is verstuurd;";
         $copy_from[0]="[email protected]";
         $copy_tomail_field[0]="Email";
    // Result options
         $header[0]="";
         $footer[0]="";
         $error_page[0]="";
         $thanks_page[0]="";
    // Default Error and Success Page Variables
         $error_page_title[0]="Errors:";
         $error_page_text[0]="Ga a.u.b. terug naar de vorige pagina om alle benodigde velden in te vullen.";
         $thanks_page_title[0]="Bericht verzonden.";
         $thanks_page_text[0]="Dank u voor uw bericht!";
    // Antispam Options
         $empty_field[0]="nospam";
         $character_scan[0]="Bericht,Naam,Email,Telefoonnummer,Onderwerp";
         $time_delay[0]="2";
         $captcha_codes[0]="9C2449,EEADC8,77A585,D72838";
         $max_urls[0]="2";
         $max_url_fields[0]="Bericht";
         $flag_spam[0]="";
    // options to use if hidden field "config" has a value of 1
    // recipient info
         $charset[1]="";
         $tomail[1]="";
         $cc_tomail[1]="";
         $bcc_tomail[1]="";
    // Mail contents config
         $subject[1]="";
         $reply_to_field[1]="";
         $reply_to_name[1]="";
         $required_fields[1]="";
         $required_email_fields[1]="";
         $attachment_fields[1]="";
         $return_ip[1]="";
         $mail_intro[1]="";
         $mail_fields[1]="";
         $mail_type[1]="";
         $mail_priority[1]="";
         $allow_html[1]="";
    // Send back to sender config
         $send_copy[1]="";
         $copy_format[1]="";
         $copy_fields[1]="";
         $copy_attachment_fields[1]="";
         $copy_subject[1]="";
         $copy_intro[1]="";
         $copy_from[1]="";
         $copy_tomail_field[1]="";
    // Result options
         $header[1]="";
         $footer[1]="";
         $error_page[1]="";
         $thanks_page[1]="";
    // Default Error and Success Page Variables
         $error_page_title[1]="";
         $error_page_text[1]="";
         $thanks_page_title[1]="";
         $thanks_page_text[1]="";
    // Antispam Options
         $empty_field[1]="bait";
         $character_scan[1]="Naam,Email,Telefoonnummer,Onderwerp,Bericht";
         $time_delay[1]="";
         $captcha_codes[1]="";
         $max_urls[1]="";
         $max_url_fields[1]="";
         $flag_spam[1]="";
    // Don't muck around past this line unless you know what you are doing //
    ob_start();
    $config=$_POST["config"];
    $debug=0;
    $debug_text="";
    // fix for Windows email server security
    ini_set("sendmail_from",$tomail[$config]);
    // email validation regular expression
    $regex = "^[-a-z0-9!#$%&\'*+/=?^_`{|}~]+(\.[-a-z0-9!#$%&\'*+/=?^_`{|}~]+)*@(([a-z0-9]([-a-z0-9]*[a-z0-9]+)?){1,63}\.)+([a-z]([-a-z0-9]*[a-z0-9]+)?){2,63}$";
    $header_injection_regex = "(\r|\n)";
    if($header[$config]!="")
         include($header[$config]);
    if($_POST["submit"] || $_POST["Submit"] || $_POST["submit_x"] || $_POST["Submit_x"])
    // begin global functions //
    // get visitor IP
         function getIP()
              if(getenv(HTTP_X_FORWARDED_FOR))
                   $user_ip=getenv("HTTP_X_FORWARDED_FOR");
              else
                   $user_ip=getenv("REMOTE_ADDR");
              return $user_ip;
    // get value of given key
         function parseArray($key)
              $arrayvalue=$_POST[$key];
              $count=1;
              extract($array_value);
              foreach($array_value as $part_value)
                   if($count > 1){$value.=", ";}
                   $value.=$part_value;
                   $count=$count+1;
              return $value;
    // stripslashes and autolink url's
         function parseValue($value)
              $value=preg_replace("/(http:\/\/+.[^\s]+)/i",'<a href="\\1">\\1</a>', $value);
              return $value;
    // html header if used
         function htmlHeader()
              $htmlHeader="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n<html>\n<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$charset[$config]."\"></head>\n<body>\n<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"600\">\n";
              return $htmlHeader;
    // html footer if used
         function htmlFooter()
              $htmlFooter="</table>\n</body>\n</html>\n";
              return $htmlFooter;
    // build verticle table format
         function buildVertTable($fields, $intro, $to, $send_ip)
              $message=htmlHeader();
              if($intro != "")
                   $message.="<tr>\n<td align=\"left\" valign=\"top\" colspan=\"2\">".$intro."</td>\n</tr>\n";
              $fields_check=preg_split('/,/',$fields);
              $run=sizeof($fields_check);
              for($i=0;$i<$run;$i++)
                   $cur_key=$fields_check[$i];
                   $curvalue=$_POST[$cur_key];
                   if(is_array($cur_value))
                        $curvalue=parseArray($cur_key);
                   $curvalue=parseValue($cur_value);
                   if($allow_html[$config]=="no")
                        $curvalue=htmlspecialchars(nl2br($cur_value));
                   else
                        $curvalue=nl2br($cur_value);
                   $message.="<tr>\n<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>".$cur_key."</b></td>\n<td align=\"left\" valign=\"top\" width=\"100%\">".$cur_value."</td>\n</tr>\n";
              if($send_ip=="yes" && $to=="recipient")
                   $user_ip=getIP();
                   $message.="<tr>\n<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>Sender IP</b></td>\n<td align=\"left\" valign=\"top\" width=\"100%\">".$user_ip."</td>\n</tr>\n";
              $message.=htmlFooter();
              return $message;
    // build horizontal table format
         function buildHorzTable($fields, $intro, $to, $send_ip)
              $message=htmlHeader();
              $fields_check=preg_split('/,/',$fields);
              $run=sizeof($fields_check);
              if($intro != "")
                   $message.="<tr>\n<td align=\"left\" valign=\"top\" colspan=\"".$run."\">".$intro."</td>\n</tr>\n";
              $message.="<tr>\n";
              for($i=0;$i<$run;$i++)
                   $cur_key=$fields_check[$i];
                   $message.="<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>".$cur_key."</b></td>\n";
              if($send_ip=="yes" && $to=="recipient")
                   $message.="<td align=\"left\" valign=\"top\" style=\"white-space:nowrap;\"><b>Sender IP</b></td>\n";
              $message.="</tr>\n";
              $message.="<tr>\n";
              for($i=0;$i<$run;$i++)
                   $cur_key=$fields_check[$i];
                   $curvalue=$_POST[$cur_key];
                   if(is_array($cur_value))
                        $curvalue=parseArray($cur_key);
                   $curvalue=parseValue($cur_value);
                   if($allow_html[$config]=="no")
                        $curvalue=htmlspecialchars(nl2br($cur_value));
                   else
                        $curvalue=nl2br($cur_value);
                   $message.="<td align=\"left\" valign=\"top\">".$cur_value."</td>\n";
              $message.="</tr>\n";
              $message.="<tr>\n";
              if($send_ip=="yes" && $to=="recipient")
                   $user_ip=getIP();
                   $message.="<td align=\"left\" valign=\"top\">".$user_ip."</td>\n";
              $message.="</tr>\n";
              $message.=htmlFooter();
              return $message;
    // build plain text format
         function buildTextTable($fields, $intro, $to, $send_ip)
              $message="";
              if($intro != "")
                   $message.=$intro."\n\n";
              $fields_check=preg_split('/,/',$fields);
              $run=sizeof($fields_check);
              for($i=0;$i<$run;$i++)
                   $cur_key=$fields_check[$i];
                   $curvalue=$_POST[$cur_key];
                   if(is_array($cur_value))
                        $curvalue=parseArray($cur_key);
                   $curvalue=parseValue($cur_value);
                   if($allow_html[$config]=="no")
                        $curvalue=htmlspecialchars($cur_value);
                   else
                        $curvalue=$cur_value;
                   $message.="".$cur_key.": ".$cur_value."\n";
              if($send_ip=="yes" && $to=="recipient")
                   $user_ip=getIP();
                   $message.="Sender IP: ".$user_ip."\n";
              return $message;
    // get the proper build fonction
         function buildTable($format, $fields, $intro, $to, $send_ip)
              if($format=="vert_table")
                   $message=buildVertTable($fields, $intro, $to, $send_ip);
              else if($format=="horz_table")
                   $message=buildHorzTable($fields, $intro, $to, $send_ip);
              else
                   $message=buildTextTable($fields, $intro, $to, $send_ip);
              return $message;
    // referrer checking security option
         function checkReferer()
              if($check_referrer=="yes")
                   $ref_check=preg_split('/,/',$referring_domains);
                   $ref_run=sizeof($ref_check);
                   $referer=$_SERVER['HTTP_REFERER'];
                   $domain_chk="no";
                   for($i=0;$i<$ref_run;$i++)
                        $cur_domain=$ref_check[$i];
                        if(stristr($referer,$cur_domain)){$domain_chk="yes";}
              else
                   $domain_chk="yes";
              return $domain_chk;
    // checking required fields and email fields
         function checkFields($text_fields, $email_fields, $regex)
               $error_message="";
              if($debug==1)
                   $error_message.="<li>text_fields: ".$text_fields."<br />email_fields: ".$email_fields."<br />reply_to_field: ".$reply_to_field."<br />reply_to_name: ".reply_to_name."</li>";
              if($text_fields != "")
                   $req_check=preg_split('/,/',$text_fields);
                   $req_run=sizeof($req_check);
                   for($i=0;$i<$req_run;$i++)
                        $cur_field_name=$req_check[$i];
                        $cur_field=$_POST[$cur_field_name];
                        if($cur_field=="")
                             $error_message.="<li>You are missing the <b>".$req_check[$i]."</b> field</li>\n";
              if($email_fields != "")
                   $email_check=preg_split('/,/',$email_fields);
                   $email_run=sizeof($email_check);
                   for($i=0;$i<$email_run;$i++)
                        $cur_email_name=$email_check[$i];
                        $cur_email=$_POST[$cur_email_name];
                        if($cur_email=="" || !eregi($regex, $cur_email))
                             $error_message.="<li>You are missing the <b>".$email_check[$i]."</b> field or it is not a valid email address.</li>\n";
              return $error_message;
    // attachment function
         function getAttachments($attachment_fields, $message, $content_type, $border)
              $att_message="This is a multi-part message in MIME format.\r\n";
              $att_message.="--{$border}\r\n";
              $att_message.=$content_type."\r\n";
              $att_message.="Content-Transfer-Encoding: 7bit\r\n\r\n";
              $att_message.=$message."\r\n\r\n";
              $att_check=preg_split('/,/',$attachment_fields);
              $att_run=sizeof($att_check);
              for($i=0;$i<$att_run;$i++)
                   $fileatt=$_FILES[$att_check[$i]]['tmp_name'];
                   $fileatt_name=$_FILES[$att_check[$i]]['name'];
                   $fileatt_type=$_FILES[$att_check[$i]]['type'];
                   if (is_uploaded_file($fileatt))
                        $file=fopen($fileatt,'rb');
                        $data=fread($file,filesize($fileatt));
                        fclose($file);
                        $data=chunk_split(base64_encode($data));
                        $att_message.="--{$border}\n";
                        $att_message.="Content-Type: {$fileatt_type}; name=\"{$fileatt_name}\"\r\n";
                        $att_message.="Content-Disposition: attachment; filename=\"{$fileatt_name}\"\r\n";
                        $att_message.="Content-Transfer-Encoding: base64\r\n\r\n".$data."\r\n\r\n";
              $att_message.="--{$border}--\n";
              return $att_message;
    // function to set content type
         function contentType($charset, $format)
              if($format=="vert_table")
                   $content_type="Content-type: text/html; charset=".$charset."\r\n";
              else if($format=="horz_table")
                   $content_type="Content-type: text/html; charset=".$charset."\r\n";
              else
                   $content_type="Content-type: text/plain; charset=".$charset."\r\n";
              return $content_type;
    // end global functions //
    // begin procedural scripting //
         // anti-spam empty field check
         if($_POST[$empty_field[$config]] != "")
              $empty_message = "<li>This submission failed and was flagged as spam.</li>\n";
         // anti-spam character scan check
         if(strlen($character_scan[$config]) > 0)
              $spam_message="";
              $field_check=preg_split('/,/',$character_scan[$config]);
              $field_run=sizeof($field_check);
              for($i=0;$i<$field_run;$i++)
                   $cur_field_name=$field_check[$i];
                   $cur_field=$_POST[$cur_field_name];
                   if(preg_match("/<(.|\n)+?>/", $cur_field) || preg_match("/\[(.|\n)+?\]/", $cur_field))
                        $spam_message.="<li>This message contains disallowed characters.</li>\n";
         // anti-spam time delay check
         if((strlen($time_delay[$config]) > 0 && strlen($_POST["time"]) > 0) || (strlen($time_delay[$config]) > 0 && (strlen($_POST["time"]) == 0 || !$_POST["time"])))
              if((time() - $_POST["time"]) < $time_delay[$config])
                   $time_message = "<li>This has been stopped by the timer, and is likely spam.</li>\n";
         // anti-spam CAPTCHA check
         if(strlen($captcha_codes[$config]) > 0)
              $captcha_check=preg_split('/,/',$captcha_codes[$config]);
              if(strtolower($_POST["captcha_entry"]) != strtolower($captcha_check[$_POST["captcha_code"]]))
                   $captcha_message = "<li>CAPTCHA test did not match.</li>\n";
         // anti-spam max URL check
         if(strlen($max_url_fields[$config]) > 0)
              $max_url_message="";
              $field_check=preg_split('/,/',$max_url_fields[$config]);
              $field_run=sizeof($field_check);
              for($i=0;$i<$field_run;$i++)
                   $cur_field_name=$field_check[$i];
                   $cur_field=$_POST[$cur_field_name];
                   preg_match_all("/http:/", $cur_field, $matches);
                   if(count($matches[0]) > $max_urls[$config])
                        $max_url_message.="<li>This message contains too many URL's.</li>\n";
         // set anti-spam flagging option
         if(strlen($empty_message.$spam_message.$time_message.$captcha_message.$max_url_message) > 0 && strlen($flag_spam[$config]) == 0)
              $set_flag = 2;
         else if(strlen($empty_message.$spam_message.$time_message.$captcha_message.$max_url_message) > 0 && strlen($flag_spam[$config]) > 0)
              $set_flag = 1;
         else
              $set_flag = 0;
         // header injection check
            $security_filter="";
         if(strlen($_POST[$reply_to_field[$config]]) > 0)
              if(eregi($header_injection_regex,$_POST[$reply_to_field[$config]]))
                   $security_filter.="<li>Header injection attempt detected, mail aborted.</li>\n";
              else
                   $reply_to_field_checked=$_POST[$reply_to_field[$config]];
         if(strlen($_POST[$reply_to_name[$config]]) > 0)
              if(eregi($header_injection_regex,$_POST[$reply_to_name[$config]]))
                   $security_filter.="<li>Header injection attempt detected, mail aborted.</li>\n";
              else
                   $reply_to_name_checked=$_POST[$reply_to_name[$config]];
         // check domain referrer and continue
         $domain_chk=checkReferer();
         if($domain_chk=="yes")
              $error_message=checkFields($required_fields[$config], $required_email_fields[$config], $regex);
              if(strlen($error_message) < 1 && strlen($security_filter) < 1 && $set_flag < 2)
                   // build appropriate message format for recipient
                   $content_type=contentType($charset[$config], $mail_type[$config]);
                   $message=buildTable($mail_type[$config], $mail_fields[$config], $mail_intro[$config], "recipient", $return_ip[$config]);
                   // build header data for recipient message
                   //$extra="From: ".$_POST[$reply_to_field[$config]]."\r\n";
                   $extra="From: ".$reply_to_name_checked." <".$reply_to_field_checked.">\r\n";
                   if($cc_tomail[$config]!="")
                        $extra.="Cc: ".$cc_tomail[$config]."\r\n";
                   if($bcc_tomail[$config]!="")
                        $extra.="Bcc: ".$bcc_tomail[$config]."\r\n";
                   if($mail_priority[$config]!="")
                        $extra.="X-Priority: ".$mail_priority[$config]."\r\n";
                   // get attachments if necessary
                   if($attachment_fields[$config]!="")
                        $semi_rand=md5(time());
                        $border="==Multipart_Boundary_x{$semi_rand}x";
                        $extra.="MIME-Version: 1.0\r\n";
                        $extra.="Content-Type: multipart/mixed; boundary=\"{$border}\"";
                        $message=getAttachments($attachment_fields[$config], $message, $content_type, $border);
                   else
                        $extra.="MIME-Version: 1.0\r\n".$content_type;
                   // send recipient email
                   if($debug==1)
                        if($set_flag == 1)
                             $debug_text.="<p><b>Mail would have sent flagged for spam if not in debug mode.</b></p>";
                        else
                             $debug_text.="<p><b>Mail would have sent if not in debug mode.</b></p>";
                   else if($debug==0)
                        if($set_flag == 1)
                             $subject = $flag_spam[$config]." ".$subject[$config];
                        else
                             $subject = $subject[$config];
                        mail("".$tomail[$config]."", "".stripslashes($subject)."", "".stripslashes($message)."", "".$extra."");
                   // autoresponse email if necessary
                   if($send_copy[$config]=="yes")
                        // build appropriate message format for autoresponse
                        $content_type=contentType($charset[$config], $copy_format[$config]);
                        $message=buildTable($copy_format[$config], $copy_fields[$config], $copy_intro[$config], "autoresponder", $return_ip[$config]);
                        // build header data for autoresponse
                        $copy_tomail=$_POST[$copy_tomail_field[$config]];
                        $copy_extra="From: ".$copy_from[$config]."\r\n";
                        // get autoresponse  attachments if necessary
                        if($copy_attachment_fields[$config]!="")
                             $semi_rand=md5(time());
                             $border="==Multipart_Boundary_x{$semi_rand}x";
                             $copy_extra.="MIME-Version: 1.0\r\n";
                             $copy_extra.="Content-Type: multipart/mixed; boundary=\"{$border}\"";
                             $message=getAttachments($copy_attachment_fields[$config], $message, $content_type, $border);
                        else
                             $copy_extra.="MIME-Version: 1.0\r\n".$content_type;
                        // send autoresponse email
                        if($debug==1)
                             if($set_flag == 1)
                                  $debug_text.="<p><b>Autoresponder would have sent flagged for spam if not in debug mode.</b></p>";
                             else
                                  $debug_text.="<p><b>Autoresponder would have sent if not in debug mode.</b></p>";
                        else if($debug==0)
                             $send_copy = 1;
                             if($copy_tomail=="" || !eregi($regex,$copy_tomail))
                                  $send_copy = 0;
                             if($send_copy == 1)
                                  if($set_flag == 1)
                                       $copy_subject = $flag_spam[$config]." ".$copy_subject[$config];
                                  else
                                       $copy_subject = $copy_subject[$config];
                                  mail("$copy_tomail", "".$copy_subject."", "$message", "$copy_extra");
                   // showing thanks pages from a successful submission
                   if($thanks_page[$config]=="")
                        echo "<h3>".$thanks_page_title[$config]."</h3>\n";
                        echo "<p>".$thanks_page_text[$config]."</p>\n";
                        if(strlen($debug_text) > 0)
                             echo "<p><b><i>".$debug_text."</i></b></p>\n";
                   else
                        header("Location: ".$thanks_page[$config]);
              else
                   // entering error page options from missing required fields
                   if($error_page[$config]=="")
                        echo "<h3>".$error_page_title[$config]."</h3>\n";
                        echo "<ul>\n";
                        echo $security_filter.$empty_message.$error_message.$spam_message.$time_message.$captcha_message.$max_url_message;
                        echo "</ul>\n";
                        echo "<p>".$error_page_text[$config]."</p>\n";
                   else
                        header("Location: ".$error_page[$config]);
         else
              echo "<h3>".$error_page_title[$config]."</h3>\n";
              // message if unauthorized domain trigger from referer checking option
              echo "<p>Sorry, mailing request came from an unauthorized domain.</p>\n";
    // end procedural scripting //
    else
         echo "<h3>Error</h3>";
         echo "<p>No form data has been sent to the script</p>\n";
    if($footer[$config]!="")
         include($footer[$config]);
    ob_end_flush();
    ?>
    verify.php
    <?php
    require_once('recaptchalib.php');
    $privatekey = "i hide this on the forum";
    $resp = recaptcha_check_answer ($privatekey,
                                   $_SERVER["REMOTE_ADDR"],
                                   $_POST["recaptcha_challenge_field"],
                                   $_POST["recaptcha_response_field"]);
    if (!$resp->is_valid) {
       // What happens when the CAPTCHA was entered incorrectly
       die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
            "(reCAPTCHA said: " . $resp->error . ")");
    } else {
       // Your code here to handle a successful verification
    ?>
    We have a saying in the Netherlands; "Not being abled to see the tree's trough the forest"
    Well i dont see it anymore...
    I managed to get it in the code but it doesnt work.
    I hope someone can help me out!

    @Nancy O.
    Thanks for your support i appreciate it that you helped me out a many times.
    However i have read all of the topics you posted.
    I know in the mail form i can disable the "sort of Captcha". I wanted to disable it and insert reCaptcha instead.
    I will re-make the form because like you said (and i already figured it out myself) ;
    "b) Don't modify forms until you get a very basic form working on your server."
    And youre right, im taking too much work at once.
    @CowboyInAZ
    Im a hobbyist that learns really really fast.
    Before March 23 i never used CSS, Javascript and XHTML. And never combined them all together with PHP. (never ever created a php based file from scratch)
    The reason why i use other persons code is because i learn faster with examples, and because i dont need to reinvent the wheel if someone already invented it. The only thing i do with it is learn the workings, customise it and at last, rewrite the code when i understand it.
    If you look at my current site: http://www.wientjesvoegwerk.nl/
    You will notice that the site is validated by W3C with no errors and warnings.
    I think it was Nancy O. that gave me the link to the validator. Thats how i discovered the service.
    You need to know that in 1 day (from 63 errors and 12 warnings) i removed all errors. And i didnt knew much about it, and why errors happend while the site looks fine.
    So im just curious how things work and thats why i "steal" codes and adjust them to learn myself.
    I also want a education like you spoke of, but im interested in a different media.
    I want to be abled to create my dream project wich involves new ways for game studios to earn money.
    This is just a simple start, im also taking tutorials in C#, C++.

  • Update process does not work on Tabular Form

    Hello,
    I have 2 tabular forms on one page, which are using manual update processes.
    First form is created using wizard, and therefore works perfectly.
    The update process is as follows:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f01.COUNT
      LOOP
         lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*03*(i) || '|' || APEX_APPLICATION.G_f*04*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Second form is created manually, using the following code:
    SELECT apex_item.checkbox (30,
                               '#ROWNUM#',
                               'onclick="highlight_row(this,' || '#ROWNUM#'|| ')"',
                               NULL,
                               'f30_' || '#ROWNUM#'
                              ) delete_checkbox,
           CATALOG_ID,
              apex_item.hidden (31, CATALOG_ID)
           || apex_item.text (32,
                              LANG,
                              80,
                              100,
                              'style="width:100px"',
                              'f32_' || '#ROWNUM#'
           || apex_item.hidden (33, wwv_flow_item.md5 (LANG, DESCRIPTION)) LANG,
           apex_item.text (34,
                           DESCRIPTION,
                           80,
                           100,
                           'style="width:255px"',
                           'f34_' || '#ROWNUM#'
                          ) DESCRIPTION
      FROM V_CATALOGS
    UNION ALL
    SELECT     apex_item.checkbox
                              (30,
                               TO_NUMBER(9900 + LEVEL),
                               'onclick="highlight_row(this,' || '#ROWNUM#' || ')"',
                               NULL,
                               'f30_' || TO_NUMBER (9900 + LEVEL)
                              ) delete_checkbox,
               NULL,
                  apex_item.hidden (31, NULL)
               || apex_item.text (32,
                                  NULL,
                                  80,
                                  100,
                                  'style="width:100px"',
                                  'f32_' || TO_NUMBER (9900 + LEVEL)
               || apex_item.hidden (33, NULL) LANG,
               apex_item.text
                                               (34,
                                                NULL,
                                                80,
                                                100,
                                                'style="width:255px" '  ,
                                                'f34_'
                                                || TO_NUMBER (9900 + LEVEL)
                                               ) DESCRIPTION
          FROM DUAL
         WHERE :P18_TEMP = 'ADD_ROWS1'
    CONNECT BY LEVEL <= 1However, the update process does not work on this form.
    I created it using the first one as an example, but with the id's of the second form:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
         lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Also, both forms are opening in a modal pop-up dialog window.
    I use a Dialog Region plug-in for that.
    Please advise, what is causing a problem with update?

    Sloger,
    if this is your tabular form
    SELECT apex_item.checkbox (30,
    ...and this is your update statement
    FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
    ...Then you will only ever update records that have been checked. Unchecked checkboxes are not passed back in the global array. You need to have a hidden column with the ID's for the record and loop through that when you are updating/inserting. That is why the built in tabular form has a MRU and a MRD. the MRU loops through the hidden ID column. The MRD loops through the checkbox.
    Thanks,
    Tyson Jouglet

  • How to create a Form based on a dynamic table?

    Hello,
    The Select statement below creates a table based on a string (string is a value of an item):
    select * from table (pkg_util.fn_get_table (:P18_VALUE))I need to create a region on a page with a Form based on this table.
    I was able to create a Report, but not a Form.
    I need to create a Form, which would return updated string to the page item.
    How can I solve this please?

    Hello Gentlemen,
    I have created a Tabular Form, based on APEX_ITEM API, as you suggested, here is the code below:
    SELECT apex_item.checkbox (30,
                               CATALOG_ID,
                               'onclick="highlight_row(this,' || ROWNUM || ')"',
                               NULL,
                               'f30_' || LPAD (ROWNUM, 4, '0')
                              ) delete_checkbox,
           CATALOG_ID,
              apex_item.hidden (31, CATALOG_ID)
           || apex_item.text (32,
                              LANG,
                              80,
                              100,
                              'style="width:100px"',
                              'f32_' || LPAD (ROWNUM, 4, '0')
           || apex_item.hidden (33, wwv_flow_item.md5 (LANG, DESCRIPTION)) LANG,
           apex_item.text (34,
                           DESCRIPTION,
                           80,
                           100,
                           'style="width:255px"',
                           'f34_' || LPAD (ROWNUM, 4, '0')
                          ) DESCRIPTION
      FROM V_SYSTEM_CATALOGS_PR
    UNION ALL
    SELECT     apex_item.checkbox
                              (30,
                               TO_NUMBER(9900 + LEVEL),
                               'onclick="highlight_row(this,' || ROWNUM || ')"',
                               NULL,
                               'f30_' || TO_NUMBER (9900 + LEVEL)
                              ) delete_checkbox,
               NULL,
                  apex_item.hidden (31, NULL)
               || apex_item.text (32,
                                  NULL,
                                  80,
                                  100,
                                  'style="width:100px"',
                                  'f32_' || TO_NUMBER (9900 + LEVEL)
               || apex_item.hidden (33, NULL) LANG,
               apex_item.text
                                               (34,
                                                NULL,
                                                80,
                                                100,
                                                'style="width:255px" '  ,
                                                'f34_'
                                                || TO_NUMBER (9900 + LEVEL)
                                               ) DESCRIPTION
          FROM DUAL
         WHERE :P180_TEMP = 'ADD_ROWS1'
    CONNECT BY LEVEL <= 1however, the update process doe not work on that form:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Can you please see what's wrong with the code?
    Also, I tried to set a temp. item with the value, to see if the process returns something, like that:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
         :p18_temp := lc_string;
    END;and it did not work.
    Also, it is the second Tabular Form on this page. The first one is created using wizard, and it works perfect, with the same update process:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*01*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*03*(i) || '|' || APEX_APPLICATION.G_f*04*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Also, both forms are opening in a modal pop-up dialog window.
    I use a Dialog Region plug-in for that.
    May be this is causing a problem?
    But still, the first form works fine!?

  • How can I Create an individual MD5 file for each folder in a main directory?

    The specs for a file delivery I'm making require an individual MD5 file per folder, with the contents of that folder being inside the MD5 file. Such as:
    DAY_01 (MAIN FOLDER)
    A01
    -(files 1-1000)
    -md5 for files 1-1000
    A02
    -files 1001-2000
    -md5 for files 1001-2000
    And so on. Is there a script or program that can make those MD5 files automatically or do I hace to go and do each one individually? Thanks

    I don't know of any pre-existing solution to your question, but it isn't hard to write one:
    set theFolder to (choose folder)
    tell application "System Events"
              set subfolders to every folder of theFolder
              repeat with eachFolder in subfolders
                        set fPath to (POSIX path of eachFolder)
                        set fName to name of eachFolder
                        set md5Filename to quoted form of (fName & ".md5")
                        do shell script "cd " & quoted form of fPath & "; /sbin/md5 * > " & md5Filename
              end repeat
    end tell
    The idea here is that it asks for a folder to process. It then grabs a list of all the folders inside that folder (subfolders), then for each subfolder it extracts its POSIX path and the folder name, then it builds a shell command that actually goes to each folder, runs the md5 command (passing in all files), writing the output to a .md5 file named according to the folder.

  • How can i convert my encrypting file to a applet form to use it in IE?

    Hi, i m a little new in JAVA.
    I searched about encryting methods. And i decide to built a encrypter that reads a string from a textbox and writes the encrypted form to another textbox.. this code is working in eclipse. but i cannot convert this to applet form to use it in internet explorer .. i dont know why this not work. It says : "Applet password notinited" -> How can i solve this problem ???
    Please HELP ME ! Thanks alot..
    package yeni;
    import java.applet.*;
    import java.awt.*;
    import java.lang.*;
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    public class password extends java.applet.Applet
         SecretKeySpec keyS;
         SecretKey key;
         SecretKey key_s;
         String encrypted;
         String decrypted;
         KeyGenerator keyGen;
         Mac mac;
         byte[] utf8;
         byte[] digest;
         private Button b_open;
         private Button b_next;
         private TextField t_userID;
         private TextField t_password;
         private TextField re_userID;
         private TextField re_password;
         private Label l_title;
         private String root;
         private int col;
         private String title;
         private String buttontxt;
         private int bgcolor;
         private int fsize;
         private String fface;
         private String errorURL;
         /* Init */
         public void init()
              String att = getParameter("root");
              root = (att == null) ? this.getDocumentBase().toString() : att;
              att = getParameter("textfield");
              col = (att == null) ? 20 : (Integer.valueOf(att).intValue());
              att = getParameter("font_size");
              fsize = (att == null) ? 11 : (Integer.valueOf(att).intValue());
              att = getParameter("font_face");
              fface = (att == null) ? "Arial" : att;
              att = getParameter("color");
              bgcolor = (att == null) ? Color.white.getRGB() : (Integer.parseInt(att, 16));
              att = getParameter("title");
              title = (att == null) ? "" : att;
              att = getParameter("button");
              buttontxt = (att == null) ? "OPEN" : att;
              att = getParameter("wrong");
              errorURL = (att == null) ? "" : att;
              setFont(new Font(fface, Font.PLAIN, fsize));
              setBackground(new Color(bgcolor));
              b_open = new Button(buttontxt);
              b_next = new Button("NEXT");
              t_userID = new TextField(col);
              t_password = new TextField(col);
              re_userID = new TextField(col);
              re_password = new TextField(col);
              l_title = new Label(title);
              t_userID.setBackground(Color.white);
              t_password.setBackground(Color.white);
              t_password.setEchoCharacter('*');
              re_userID.setBackground(Color.YELLOW);
              re_password.setBackground(Color.YELLOW);
    //          re_password.setEchoCharacter('-');
              setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
              if(title.length()>0)
                   add(l_title);
              add(t_userID);
              add(t_password);
              add(b_next);          
              add(b_open);
              add(re_userID);
              add(re_password);
              t_userID.setText("User ID");
              t_password.setText("Password");
              //re_password.hide();
              //re_password.hide();
              show();
         /* Transfer - �ifreleleme */
         void transfer()
              if(t_userID.getText().length()>0)
                   re_userID.setText(t_userID.getText());
              else t_userID.setText("Enter Your USER ID!");
              if(t_password.getText().length()>0)
                   //Calling HMAC Function
                   re_password.setText(HMAC(t_password.getText()));
         /* HMAC Fonksiyonu - �ifreleme */
         public String HMAC(String values){
             String output = "";
             try {
                 //Generate a key for the HMAC-MD5 keyed-hashing algorithm;
                 key =  new SecretKeySpec( "istenen anahtar".getBytes("ASCII"), "HmacMD5");
                 // Create a MAC object using HMAC-MD5 and initialize with key
                 mac = Mac.getInstance("HmacMD5");
                 mac.init(key);
                 // Encode the string into bytes using utf-8 and digest it
                 utf8 = values.getBytes("UTF8");
                 digest = mac.doFinal(utf8);
                 //If desired, convert the digest into a string
                 String digestB64 = new sun.misc.BASE64Encoder().encode(digest);
                 output += digestB64;
             catch(Exception e){}
             return output;
         /* surfto_error Fonksiyonu - Hata durumu */
         void surfto_error()
              if(errorURL.length()>0)
                   try
                        getAppletContext().showDocument(new URL(errorURL),"_self");
                   catch (MalformedURLException e) {}
              else
                   re_password.setText("");
                   showStatus("Invalid password!");
         /* surfto Fonksiyonu - Bilgi Aktar�m� */
         void surfto()
              if(t_password.getText().length()>0)
                   try
                        URL surftoURL = new URL(root+t_password.getText()+".html");
                        InputStream in = surftoURL.openStream();
                        in.close();
                        getAppletContext().showDocument(surftoURL,"_self");
                   catch (MalformedURLException e) { surfto_error(); }
                   catch (SecurityException e) { surfto_error(); }
                   catch (IOException e) { surfto_error(); }
         /* Durum ��leme */
         public boolean handleEvent(Event evt)
              if(evt.id == Event.KEY_PRESS && evt.target == t_password && evt.key==10)
                   surfto();
                   return(true);
              return super.handleEvent(evt);
         /* Eylem ��leme  */
         public boolean action(Event evt, Object arg)
              if (evt.target == b_open)
                   surfto();
                   return true;
              if (evt.target == b_next)
                   transfer();
                   return true;
              return(super.action(evt,arg));
    }

    In method HMAC, you have towards the bottom
    catch(Exception e) {}please change this to
    catch(Exception e)
                e.printStackTrace();
            }Note that using the sun.* classes, including the sun.misc.BASE64Encoder class, requires elevated privileges (see http://forum.java.sun.com/thread.jspa?threadID=483223&messageID=2255882).
    It is not difficult to write your own encoder/decoder class, or borrow one from someone else. Just google on "java base64 encoder".

  • Is there a way to open page with a new Tabular Form row?

    Hi All,
    I have a (non-manual) Tabular Form that works great. My requirement is to have the new page to open with a new row already added.
    I tried      onLoad="onLoadProcess()";
         <script language="JavaScript" type="text/javascript">
         function onLoadProcess(){
         doSubmit('ADD');
         </script>
    but it hits every onload so it loops, each submit causing another submit.
    Anyway of getting the rowcount in the tabular form without making a manual one?
    Thanks, Bill

    Bill,
    Here's a short (hah!) example of how to do it with a manual form. No idea of how hard it may be to convert to a wizard form.
    select
    x.PERSON_ID,
    x.ck ck,
    x.PERSON_ROLE,
    x.del
    from (
    SELECT
    apex_item.select_list_from_lov(1,person_id,'PEOPLE') PERSON_ID,
    apex_item.hidden(2,issue_id)||
    apex_item.hidden(3,wwv_flow_item.md5(person_id,issue_id,person_role)) ck,
    apex_item.select_list_from_lov(4,person_role,'ROLES') PERSON_ROLE,
    apex_item.checkbox(5,person_id||issue_id) del
    FROM HT_ASSIGNMENTS
    WHERE ISSUE_ID = :P7_ISSUE_ID
    union all
    select apex_item.select_list_from_lov(1,NULL,'PEOPLE') PERSON_ID,
    apex_item.hidden(2,to_number(:P7_ISSUE_ID))||
    apex_item.hidden(3,null) ck,
    apex_item.select_list_from_lov(4,NULL,'ROLES') PERSON_ROLE,
    apex_item.checkbox(5,null) del
    from dual) x
    Bill Ferguson
    Message was edited by:
    wbfergus

  • Upload image in an html form to be emailed

    Hi everyone. Here is another one of my last minute, hurry up and wait requests.
    I have to create a form that will enable the viewer to upload an image and send the
    form on its way to a predetermined email address. This is for a contest starting tomorrow.
    The form has been made and works. The only thing I haven't worked out yet is the "upload image"
    feature. This is absolutely necessary and must be included. I have tested this several times and all the data
    comes thru. What I need is for an image to go along with the form fields and appear when the email is opened.
    With all due respect I do not have a very long learning curve here so if anyone can just provide
    me with the code, both html and php, instruct me exactly where to place it I would be
    extremely appreciative.
    here is the temporary link:
    Sirui/Argraph Wildlife-Landscape Photo Contest
    The image upload button will be in between the two horizontal rules towards the bottom of the form;
    above the submit/reset buttons.
    Thanks in advance as always.
    -Cliff-

    Below is the code and php for your complete form together with the file upload field and code. How you style the form and validate the form fields (if your going to) is down to you. Change the email address marked in red to that of the recipient you want the information to go to.
    You need to copy all the code and save it with a php extension so instead of:
    SiruiWildlifePhotoContestEntryForm.html
    This:
    SiruiWildlifePhotoContestEntryForm.php
    Obvioulsy being php it only works if the file is on a php enabled server so if you dont have a local testing server you need to upload it to your remote server before it will work.
    <?php
    if(isset($_POST['Submit']))
    //The form has been submitted, prep a nice thank you message
    $output = '<h1>Thanks for your file and message!</h1>';
    //Set the form flag to no display (cheap way!)
    $flags = 'style="display:none;"';
    //Deal with the email
    $to = 'yourEmailAddress.com';
    $subject = 'Competition Entry';
    $LastName = ($_POST['LastName']);
    $FirstName = ($_POST['FirstName']);
    $Email = ($_POST['Email']);
    $Phone = ($_POST['Phone']);
    $Address1 = ($_POST['Address1']);
    $Address2 = ($_POST['Address2']);
    $City = ($_POST['City']);
    $State = ($_POST['State']);
    $Zip = ($_POST['Zip']);
    $Dealer = ($_POST['Dealer']);
    $TripodMonopodHead = ($_POST['TripodMonopodHead']);
    $CameraLens = ($_POST['CameraLens']);
    $ImageEntry = ($_POST['ImageEntry']);
    $DepositWhere = ($_POST['DepositWhere']);
    $YouTubePage = ($_POST['YouTubePage']);
    $attachment = chunk_split(base64_encode(file_get_contents($_FILES['file']['tmp_name'])));
    $filename = $_FILES['file']['name'];
    $boundary =md5(date('r', time()));
    $headers = "From: [email protected]\r\nReply-To: [email protected]";
    $headers .= "\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"_1_$boundary\"";
    $message = "Last Name: $LastName\n\n";
    $message .= "First Name: $FirstName\n\n";
    $message .= "Email: $Email\n\n";
    $message .= "Phone: $Phone\n\n";
    $message .= "Address1: $Address1\n\n";
    $message .= "Address2: $Address2\n\n";
    $message .= "City: $City\n\n";
    $message .= "State: $State\n\n";
    $message .= "Zip: $Zip\n\n";
    $message .= "Dealer: $Dealer\n\n";
    $message .= "Tripod Monopod Head: $TripodMonopodHead\n\n";
    $message .= "Camera Lens: $CameraLens\n\n";
    $message .= "Deposit Where: $DepositWhere\n\n";
    $message .= "You Tube Page: $YouTubePage\n\n";
    $message.="This is a multi-part message in MIME format.
    --_1_$boundary
    Content-Type: multipart/alternative; boundary=\"_2_$boundary\"
    --_2_$boundary
    Content-Type: text/plain; charset=\"iso-8859-1\"
    Content-Transfer-Encoding: 7bit
    $message
    --_2_$boundary--
    --_1_$boundary
    Content-Type: application/octet-stream; name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment
    $attachment
    --_1_$boundary--";
    mail($to, $subject, $message, $headers);
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>MailFile</title>
    </head>
    <body>
    <?php echo $output; ?>
    <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" <?php echo $flags;?>>
    <p><label for="LastName" class="barheader">Last Name:</label>
    <input name="LastName" type="text" id="LastName" size="28" maxlength="50" />
    </p>
    <p><label for="FirstName" class="barheader">First Name:</label>
    <input name="FirstName" type="text" id="FirstName" size="28" maxlength="50" />
    </p>
    <p><label for="Email" class="barheader">Email:</label>
    <input name="Email" type="text" id="Email" size="50" maxlength="75" />
    </p>
    <p><label for="Phone" class="barheader">Phone:</label>
    <input name="Phone" type="text" id="Phone" size="12" maxlength="15" />
    </p>
    <p><label for="Address1" class="barheader">Address 1:</label>
    <input name="Address1" type="text" id="Address1" size="75" maxlength="100" />
    </p>
    <p><label for="Address2" class="barheader">Address 2:</label>
    <input name="Address2" type="text" id="Address2" size="75" maxlength="100" />
    </p>
    <p><label for="City" class="barheader">City:</label>
    <input name="City" type="text" id="City" size="33" />
    </p>
    <p><label for="State"><span class="barheader">State:</span></label>
    <input name="State" type="text" id="State" size="2" maxlength="2" />
    </p>
    <p><label for="Zip" class="barheader">Zip:</label>
    <input name="Zip" type="text" id="Zip" size="10" maxlength="10" />
    </p><label for="Dealer" class="barheader">Dealer:</label>
    <input name="Dealer" type="text" id="Dealer" size="100" maxlength="150" />
    </p>
    <p><label for="Tripod/Monopod/Head Used:" class="barheader">Tripod/Monopod/Head Used:</label>
    <input name="TripodMonopodHead" type="text" id="Tripod/Monopod/Head Used:" size="75" maxlength="100" />
    </p>
    <p><label for="YouTubePage" class="barheader">Camera/Lens Used:</label>
    <input name="CameraLens" type="text" id="Camera/Lens Used:" size="75" maxlength="100" />
    </p>
    <p><label for="Image/Entry:" class="barheader">Image/Entry #:</label>
    <input name="ImageEntry" type="text" id="Image/Entry:" size="25" maxlength="25" />
    </p>
    <p></p>Where will you deposit your entry?:</p>
    <p><label for="DepositWhere"></label>
    <input name="DepositWhere" type="text" id="DepositWhere:" size="20" maxlength="50" />
    </p>
    <p><label for="YouTubePage" class="barheader">For YouTube Videos: URL to your YouTube page:</label>
    <input name="YouTubePage" type="text" id="YouTubePage" size="50" maxlength="100" />
    </p>
    <p>
    <label for="file">Attach File</label> <input type="file" name="file" id="file"></p>
    <input type="submit" name="Submit" id="Submit" value="Submit" />
    <input type="reset" name="Reset" id="Reset" value="Reset" />
    </form>
    </body>
    </html>

Maybe you are looking for