tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
4020
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Hallo zusammen

    Ich habe ein paar Eingabefelder. Wenn diese ausgefüllt sind werden sie in die Datenbank exportiert. Das ist auch alles kein Problem.
    Ich würde jetzt gerne eine Meldung bringen wenn ein bestimmtes Eingabefeld nicht ausgefüllt wurde. Ich weiss das das mit einer if geht. Aber alle Versuche leider erfolglos.
    Hier mein Quelltext wo die Daten exportiert werden:
    <%
    'Auslesen der Formularfelder
    addProduct =TRIM( Request("Anmelden"))

    productName =TRIM(Request( "productName"))
    productPrice =TRIM(Request( "productPrice"))
    productPicture =TRIM(Request( "productPicture"))
    name =TRIM(Request( "name"))
    vorname =TRIM(Request( "vorname"))

    'Standardwerte zuweisen
    IF productName= ""Then
    productName= "?"
    END IF
    IF productPrice= ""THEN
    productPrice= "?"
    END IF
    IF productPicture= ""THEN
    productPicture="?"
    END IF
    IF vorname= ""Then
    vorname= "?"
    END IF
    IF name= ""Then
    name= "?"
    END IF

    'Öffnen der Datenbankverbindung
    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    %>
    <html>
    <head><title>Manage Products</title></head>

    <%
    'Neues Produkt hinzufügen
    IF addProduct <> "" THEN

    sqlString = "INSERT INTO Products (product_name,product_price,product_picture,vorname,name) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"', '" &vorname &"', '" &name &"')"

    Con.Execute sqlString
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <p></p>
    <%
    END IF
    %>
    <a href="addproduct.asp">back</a>
    </body>
    </html>

    Ich denke das das nicht sehr schwer sein kann.
    LG
    Sunflower84
     

  2. #2
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hallo

    Du musst einfach etwas sauberer programmieren, sorry, aber das ist so.

    1. Sollte man bei Eingabefeldern (Text) unbedingt die Hochkomma ersetzen.
    2. Wenn ein Feld aus einem Formular übergeben wird, sollte man auch den Request.Form() nehmen. Das ist alles in allem performanter. Beim Request sucht der Server in allen Requests vom Cookie bis zu den Servervariablen.
    3. Datenbankverbindungen, die geöffnet worden sind, sollten wieder geschlossen werden und zwar so schnell wie möglich.
    4. Definiert man Variablen, sollte man durch dim deklarieren.

    Wenn Du jetzt Felder validierst, brauchst Du natürlich kein ? zu setzen, dann die Eingabe wird erzwungen. Wenn Du in Access die Leere Zeichenfolge auf "ja", ist auch die Eingabe auf nein, wird beim Insert von Textfeldern auch keine Eingabe erzwungen.

    Zur Feldüberprüfung ist es einfacher, Du setzt das Formular mit auf die Seite, wo Du auch das insert durchführst und zwar in die von mir beschriebenen Bereich. Das Formular wird an die gleiche Seite geschickt.

    Wie die Feldvalidierung abläuft und was man beachten muss, steht in den Kommentarzeilen des Scriptcodes.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Test</title>
    </head>
    <body>
    <%
    'Auslesen der Formularfelder
     
    ' --- immer hinzuschreiben, ob es sich um einen Form oder QueryString handelt, ist performanter
    ' --- Hochkomma sollten immer verdoppelt werden, sonst gibt Fehler
     
    dim addprodukt 
    addProduct = Replace(trim(Request.Form("Anmelden")),"'","''")
     
    productName =TRIM(Request( "productName"))
    productPrice =TRIM(Request( "productPrice"))
    productPicture =TRIM(Request( "productPicture"))
     
    ' --- name ist ein reserviertes Wort, könnte auch Probleme machen. 
    name =TRIM(Request( "name"))
    vorname =TRIM(Request( "vorname"))
     
    IF productPrice= ""THEN
    productPrice= "?"
    END IF
    IF productPicture= ""THEN
    productPicture="?"
    END IF
    IF vorname= ""Then
    vorname= "?"
    END IF
    IF name= ""Then
    name= "?"
    END IF
     
    ' --- Feldeingabe von Produktname erzwingen
    ' --- Abfrage nach Formularübergabe
    ' --- Stellen der Überprüfungvariablen auf 1
    ' --- Abfrage ob Feld gefüllt, wenn nicht, Variable auf 0 setzen, Felhertext
     
    if request.Form.Count >0 then
    dim allesok, FehlerProduktname
    FehlerProduktname = ""
    allesok = 1
    if produktname = "" or isnull(produktname) then
        allesok = 0
        Fehlerproduktname = "Bitte dieses Feld ausfüllen"
    end if 
    end if 
    if allesok then
     
    'Öffnen der Datenbankverbindung
     
    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    sqlString = "INSERT INTO Products (product_name,product_price,product_picture,vorname,name) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"', '" &vorname &"', '" &name &"')"
    Con.Execute sqlString
     
    ' --- Schließen der Verbindung nicht vergessen!
     
    con.close
    set con=nothing
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <a href="addproduct.asp">back</a>
    <% else %>
    <% = fehlerproduktname %>
    Hier gehört das Formular rein und wird an die gleiche Seite geschickt.
    <% end if %>
    </body>
    </html>
     
    liebe Grüße, die Luzie

  3. #3
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Hallo
    Also die Fehlermeldung funktioniert wenn ich nichts eingebe. Aber wie füge ich das Formular denn ein?
    Das Formular heisst:
    addProduct.asp

    Habe es schon versucht aber es klappt einfach nicht.
    Könntest du mir da vielleicht nochmal helfen? Wäre wirklich lieb von dir.

    lg
    Sunflower
     

  4. #4
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Da musst Du nochmal Deinen Scriptcode hier posten.
     
    liebe Grüße, die Luzie

  5. #5
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Hallo

    Der Scriptcode ist der gleiche wir du ihn mir korrigiert hast.
    Ich weiss einfach nicht wie ich das Formular einbinden soll.
    Noch was anderes. Du hast es jetzt so gemacht das immer eine Fehlermeldung kommt wenn der Benutzer nicht alle Felder ausgefüllt hat. Es sind aber nicht alles Pflichfelder. Wie mach ich denn das? Ich hatte es schon mal bei einem anderen Projekt gemacht mit einer if. Habe einfach geprüft ob der String leer ist und wenn ja eine Fehlermeldung ausgegeben. Aber das klappt hier irgendwie nicht.

    Lg
    Sunflower
     

  6. #6
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    das Formular kommt dort hin, wo ich es im Scriptcode hingeschrieben habe.

    Bitte denk daran, dass name ein reserviertes Wort ist. Das solltest Du nicht als Feldname laufen lassen.

    Ich habe jetzt im Beispiel die Validierung auf name und vorname gelegt und ein Beispielformular eingesetzt.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Test</title>
    </head>
    <body>
    <%
    'Auslesen der Formularfelder
     
    ' --- immer hinzuschreiben, ob es sich um einen Form oder QueryString handelt, ist performanter
    ' --- Hochkomma sollten immer verdoppelt werden, sonst gibt Fehler
     
    dim addprodukt
    dim productname 
    dim ProductPrice
    dim ProductPicture
     
    addProduct = Replace(trim(Request.Form("Anmelden")),"'","''")
    productName = Replace(trim(Request.Form("ProductName")),"'","''")
    productPrice = Replace(trim(Request.Form("ProductPrice")),"'","''")
    productPicture = Replace(trim(Request.Form("ProductPicture")),"'","''")
     
    dim Nachname, Vorname
     
    ' --- name ist ein reserviertes Wort, könnte auch Probleme machen. 
    name = Replace(trim(Request.Form("name")),"'","''")
    vorname =Replace(trim(Request.Form("vorname")),"'","''")
     
    IF productPrice= ""THEN productPrice= "?"
    IF productPicture= ""THEN productPicture="?"
     
    ' --- Feldeingabe von Produktname erzwingen
    ' --- Abfrage nach Formularübergabe
    ' --- Stellen der Überprüfungvariablen auf 1
    ' --- Abfrage ob Feld gefüllt, wenn nicht, Variable auf 0 setzen, Felhertext
     
    if request.Form.Count >0 then
    dim allesok
    dim FehlerName
    dim FehlerVorname
    FehlerName = ""
    FehlerVorname = ""
    allesok = 1
    if name = "" or isnull(name) then
        allesok = 0
        FehlerName = "<span style=""color:red"">Bitte dieses Feld Nachname ausfüllen</span>"
    end if 
    if Vorname = "" or isnull(Vorname) then
        allesok = 0
        FehlerVorname = "<span style=""color:red"">Bitte dieses Feld Vorname ausfüllen</span>"
    end if 
    end if 
    if allesok then
     
    'Öffnen der Datenbankverbindung
    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    sqlString = "INSERT INTO Products (product_name,product_price,product_picture,vorname,name) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"', '" &vorname &"', '" & name &"')"
    Con.Execute sqlString
     
    ' --- Schließen der Verbindung nicht vergessen!
     
    con.close
    set con=nothing
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <a href="addproduct.asp">back</a>
      <% else %>
     
    <h1>Formularbeispiel:</h1>
    <form name="form1" method="post" action="<% = Request.ServerVariables("SCRIPT_NAME")%>">
    Vorname <% = fehlerVorname %><br>
      <input name="vorname" type="text" id="vorname" value="<% = vorname %>">
      <br>
      Nachname <% = fehlername %><br>
      <input name="name" type="text" id="nachname" value="<% = name %>">
      <br>
      <br>
      <input type="submit" name="Submit" value="Abschicken">
    </form>
    <br>
    <% end if %>
    </body>
    </html>
     
    liebe Grüße, die Luzie

  7. #7
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Hallo
    Nochmal vielen Dank das du mir hilfst.
    Aber eigentlich soll nur eine Meldung kommen das man diese Felder noch ausfüllen soll, ohne eine Eingabe.
    Ich habe für mein Formular doch eine extra asp datei. Die addProduct.asp. Dort füllt man die Felder ja aus. Ich habe das jetzt auch nochmal versucht. Exportieren tut er die Daten aber es kommt wieder keine Meldung wenn ich was nicht ausgefüllt habe. Wäre lieb wenn du dir das mal anschauen kannst. Das müsste doch eigentlich gehen. Sorry wenn ich etwas schwer von Begriff bin.
    Code:
    <html>
    <head>
    <title></title>
    <meta name="author" content="nschlapp">
    <meta name="generator" content="Ulli Meybohms HTML EDITOR">
    </head>
    <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
    <%
    'Auslesen der Formularfelder
    addProduct =TRIM( Request("Anmelden"))
    %>
    <%
    productName = Request.Form("productName")
    productPrice= Request.Form("productPrice")
    productPicture= Request.Form("productPicture")
    if productName= "" Then productName= "false"
    if productPrice= "" Then productPrice = "false"
    if productPicture = "" Then productPicture = "false"

    '### Validation of Data
    if Request.QueryString("mode") = "val" then

    Err_Msg = ""

    if productName = "" then
    Err_Msg = Err_Msg & "<li>Please enter Your prname.</li>"
    end if
    if productPrice = "" then
    Err_Msg = Err_Msg & "<li>Please enter Your prprice.</li>"
    end if
    if productPicture = "" then
    Err_Msg = Err_Msg & "<li>Please enter Your prpicture.</li>"
    end if
    end if

    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    %>

    <html>
    <head><title>Manage Products</title></head>

    <%
    'Neues Produkt hinzufügen
    IF addProduct <> "" THEN

    sqlString = "INSERT INTO Products (product_name,product_price,product_picture) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"')"

    Con.Execute sqlString

    con.close
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <p></p>
    <%
    END IF
    %>
    <a href="addproduct.asp">back</a>
    </body>
    </html



    </body>
    </html>

    liebe Grüße
    Sunflower
     

  8. #8
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    und wo wird Err_Msg ausgegeben?
    Und wenn es ausgegeben wird, wo ist die Abfrage, dass nicht doch leere Felder eingetragen werden?

    Und wenn es auf der 2. Seite als Meldung ausgegeben wird, dann muss der User wieder zurück und die bereits ausgefüllten Formularfeld nochmals ausfüllen oder wie gibst Du die Daten wieder zurück?

    Wenn Du es auf 2 Seiten erledigen willst, dann gibts noch die Möglichkeit der Validierung in Javascirpt.
     
    liebe Grüße, die Luzie

  9. #9
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Ok du hast recht.
    Dann mache ich es lieber so wie du es mir gesagt hast. Ich habe jetzt deins mal übernommen und mit meinen Feldernamen ersetzt. Aber es funktioniert leider nicht.
    Bekomme leider keine Fehlermeldung wenn ich was nicht ausgefüllt habe.
    Könntest du vielleicht noch mal schauen?

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Test</title>
    </head>
    <body>
    <%
    'Auslesen der Formularfelder

    ' --- immer hinzuschreiben, ob es sich um einen Form oder QueryString handelt, ist performanter
    ' --- Hochkomma sollten immer verdoppelt werden, sonst gibt Fehler

    dim addprodukt
    dim productName
    dim productPrice
    dim productPicture

    addProduct = Replace(trim(Request.Form("Anmelden")),"'","''")
    productName = Replace(trim(Request.Form("ProductName")),"'","''")
    productPrice = Replace(trim(Request.Form("ProductPrice")),"'","''")
    productPicture = Replace(trim(Request.Form("ProductPicture")),"'","''")

    dim Nachname, Vorname

    ' --- name ist ein reserviertes Wort, könnte auch Probleme machen.
    productName = Replace(trim(Request.Form("productName")),"'","''")
    productPrice =Replace(trim(Request.Form("productPrice")),"'","''")
    productPicture =Replace(trim(Request.Form("productPicture")),"'","''")

    IF productName= ""THEN productName= "?"
    IF productPrice= ""THEN productPrice= "?"
    IF productPicture= ""THEN productPicture="?"

    ' --- Feldeingabe von Produktname erzwingen
    ' --- Abfrage nach Formularübergabe
    ' --- Stellen der Überprüfungvariablen auf 1
    ' --- Abfrage ob Feld gefüllt, wenn nicht, Variable auf 0 setzen, Felhertext

    if request.Form.Count >0 then
    dim allesok
    dim FehlerproductName
    dim FehlerproductPrice
    dim FehlerproductPicture
    FehlerproductName = ""
    FehlerproductPrice = ""
    FehlerproductPicture = ""
    allesok = 1
    if productName = "" or isnull(productName) then
    allesok = 0
    FehlerproductName = "<span style=""color:red"">Bitte dieses Feld productName ausfüllen</span>"
    end if
    if productPrice = "" or isnull(productPrice) then
    allesok = 0
    FehlerproductPrice = "<span style=""color:red"">Bitte dieses Feld productPrice ausfüllen</span>"
    end if
    if productPicture = "" or isnull(productPicture) then
    allesok = 0
    FehlerproductPicture = "<span style=""color:red"">Bitte dieses Feld productPicture ausfüllen</span>"
    end if
    end if
    if allesok then

    'Öffnen der Datenbankverbindung
    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    sqlString = "INSERT INTO Products (product_name,product_price,product_picture) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"')"
    Con.Execute sqlString

    ' --- Schließen der Verbindung nicht vergessen!

    con.close
    set con=nothing
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <a href="addproduct.asp">back</a>
    <% else %>

    <h1>Formularbeispiel:</h1>
    <form name="form1" method="post" action="<% = Request.ServerVariables("SCRIPT_NAME")%>">
    productName <% = fehlerproductName %><br>
    <input name="productName" type="text" id="productName" value="<% = productName %>">
    <br>
    productPrice <% = fehlerproductPrice %><br>
    <input name="productPrice" type="text" id="productPrice" value="<% = productPrice %>">
    <br>
    productPicture<% = fehlerproductPicture %><br>
    <input name="productPicture" type="text" id="productPicture" value="<% = productPicture %>">
    <br>
    <br>
    <input type="submit" name="Submit" value="Abschicken">
    </form>
    <br>
    <% end if %>
    </body>
    </html>

    Liebe Grüße
    Sunflower
     

  10. #10
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Ich habe gerade noch gemerkt das ich in Zeile 25 vergessen habe meine Namen zu deklarieren. Aber als ich das gemacht habe hat er mir die daten nicht mehr exportiert und folgenende Fehlermeldung gebracht:
    Kompilierungsfehler in Microsoft VBScript (0x800A0411)
    Name erneut definiert
    /ec/managerproducts.asp, Zeile 25, Spalte 4
    dim productName, productPrice, productPicture

    Ich hoffe du kannst mir helfen. Ich muss das für die Firma machen. Bin gerade im 1. Lehrjahr und in der FIrma kann keiner Programmieren.

    LG
    Sunflower
     

  11. #11
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    Variablen nur 1x deklarieren.

    Dann kann dies raus, zum einen hast Du es doppelt drin zum andern nützt Dir die ganze Validierung nix, wenn Du bei Nichtbefülles des Formulars Standardwerte vergibst.

    dim Nachname, Vorname

    ' --- name ist ein reserviertes Wort, könnte auch Probleme machen.
    productName = Replace(trim(Request.Form("productName")),"'","''")
    productPrice =Replace(trim(Request.Form("productPrice")),"'","''")
    productPicture =Replace(trim(Request.Form("productPicture")),"'","''")

    IF productName= ""THEN productName= "?"
    IF productPrice= ""THEN productPrice= "?"
    IF productPicture= ""THEN productPicture="?"
     
    liebe Grüße, die Luzie

  12. #12
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Achso.

    So müsste das doch auch gehen. Da macht er mir das mit den Fehlermeldungen. Aber er exportiert trotzdem. Trotz den Fehlermeldungen. Es kommen halt die Fehlermeldungen und unten steht direkt Anmeldung erfolreich. Man muss doch da nur noch was umstellen.
    Der Benutzer soll wenn die Fehlermeldung kommt auf back klicken damit er die Felder erneut ausfüllen soll. Das werden ja auch nur 4 Felder. Da mus er sie halt nochmal alle ausfüllen. Das macht nichts.

    Code:

    <%
    'Auslesen der Formularfelder
    addProduct =TRIM( Request("Anmelden"))

    productName =TRIM(Request( "productName"))
    productPrice =TRIM(Request( "productPrice"))
    productPicture =TRIM(Request( "productPicture"))
    name =TRIM(Request( "name"))
    vorname =TRIM(Request( "vorname"))

    'Standardwerte zuweisen
    IF productName= ""Then
    productName= "?"
    END IF
    IF productPrice= ""THEN
    productPrice= "?"
    END IF
    IF productPicture= ""THEN
    productPicture="?"
    END IF
    IF vorname= ""Then
    vorname= "?"
    END IF
    IF name= ""Then
    name= "?"
    END IF

    if Request.Form("productName")= "" THEN
    Response.Write("<li>Sie muessen den Produktnamen eingeben.</li>")
    END IF
    if Request.Form("productPrice")= "" THEN
    Response.Write("<li>Sie muessen den Produktpreis eingeben.</li>")
    END IF
    if Request.Form("productPicture")= "" THEN
    Response.Write("<li>Sie muessen das Produktbild eingeben.</li>")
    END IF

    'Öffnen der Datenbankverbindung
    Set Con = Server.CreateObject( "ADODB.Connection")
    Con.Open "accessDSN"
    %>
    <html>
    <head><title>Manage Products</title></head>

    <%
    'Neues Produkt hinzufügen
    IF addProduct <> "" THEN

    sqlString = "INSERT INTO Products (product_name,product_price,product_picture) VALUES ('" & productName & "', '" & productPrice &"', '" & productPicture &"')"

    Con.Execute sqlString
    %>
    <center>
    <table width="600" cellpadding="4" cellspacing="0">
    <tr>
    <td>
    Anmeldung erfolgreich
    </td>
    </tr>
    </table>
    </center>
    <p></p>
    <%
    END IF
    %>
    <a href="addproduct.asp">back</a>
    </body>
    </html>
     

  13. #13
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    Es klappt jetzt.
    Habe es so gemacht wie in dem letzten Beispiel. Habe nur noch ein else hinzufügen müsen.

    Trotzdem nochmal vielen vielen Dank das du dir die Mühe gemacht hast

    Liebe Grüße und noch einen schönen sonnigen Tag.

    sunflower
     

  14. #14
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    Was will er auch anders machen, das ist völlig korrekt!
    Jede Anweisung ist abgeschlossen und hat keine Auswirkungen auf das Insert-Statement.

    Und Widersinnig ist es auch

    Du vergibst Standardwerte in Form von ? und gleichzeitig möchtest Du für das Feld eine Feldvalidierung (einen Eingabezwang)

    Überleg Dir das einfach mal.
    Die Felder werden nie mit Fragezeichen beschrieben werden, außer, der User gibt sie selbst ein.

    Die ganze Fragezeichen-Geschichte kannst Du für die Felder vergessen, wo die Eingabe eh erzwungen wird.

    Hier ist mal ein Beispiel mit einer Feldvalidierung über Javascript. Vielleicht kommst Du damit besser klar. Nachteil ist halt, wenn Javascript abgestellt ist, findet keine Validierung statt. Vorteil ist, das Formular wird nicht immer neu geladen.

    HTML-Code:
    <html>
    <head>
    <title>Kontaktformular</title>
    </head>
    <script language="JavaScript">
    function Validation(theForm)
    {
    
      if (theForm.Name.value == "")
      {
        alert("Geben Sie einen Wert in das Feld 'Name' ein.");
        theForm.Name.focus();
        return (false);
      }
    
      if (theForm.Name.value.length < 2)
      {
        alert("Geben Sie mindestens 2 Zeichen in das Feld 'Name' ein.");
        theForm.Name.focus();
        return (false);
      }
    
      if (theForm.Vorname.value == "")
      {
        alert("Geben Sie einen Wert in das Feld 'Vorname' ein.");
        theForm.Vorname.focus();
        return (false);
      }
    
      if (theForm.Vorname.value.length < 3)
      {
        alert("Geben Sie mindestens 3 Zeichen in das Feld 'Vorname' ein.");
        theForm.Vorname.focus();
        return (false);
      }
     if (theForm.check.checked == false)
      {
        alert("Bitte checkbox check anklicken.");
        theForm.check.focus();
        return (false);
      }
    
    }
    
    function SetFocus_()
    {
       document.Form1.Name.focus();
    }
    </script>
    <body onLoad="SetFocus_()" bgcolor="#FFFFFF">
    <form METHOD="POST" ACTION="test.php" onsubmit="return Validation(this)" name="Form1">
    <p><font face="Arial" size="2">
    Bitte geben Sie die folgenden Kontaktinformationen ein.<br>
    Achten Sie dabei darauf die <b><i>fett gekennzeichneten Felder</i></b>
    auszufüllen.</font></p>
    <table>
    <tr>
    <td ALIGN="right" bgcolor="#B0CACA">
    <em><b><font face="Arial" size="2">Name</font></b></em></td>
    <td>
    <font face="Arial" size="2">
    <input NAME="Name" SIZE="35">
    </font>
    </td>
    </tr>
    <tr>
    <td ALIGN="right" bgcolor="#B0CACA">
    <em><b><font face="Arial" size="2">Vorname</font></b></em></td>
    <td>
    <font face="Arial" size="2">
    <input NAME="Vorname" SIZE="35">
    </font>
    </td>
    </tr>
    </table>
    <input name="check" type="checkbox" id="check" value="on">
    <hr color="#808080">
    <font face="Arial">
    <input type="hidden" name="subject" value="Testformular"><input TYPE="SUBMIT" VALUE="Abschicken">
    <input TYPE="RESET" VALUE="Zurücksetzen">
    </font>
    </form>
    <p>
    <font face="Arial" size="1">
    </font></body>
    </html>
    behohaus bedankt sich. 
    liebe Grüße, die Luzie

  15. #15
    Avatar von sunflower84
    sunflower84 sunflower84 ist offline Mitglied Brokat
    Registriert seit
    Apr 2005
    Ort
    Hettenleidelheim(Pfalz)
    Beiträge
    283
    hallo

    Stimmt, die Fragezeichen kann ich weg lassen. Danke das du dir die Mühe gemacht hast mit JavaScript. Ich schau mir das auch nochmal an. Besser ist es auf jeden Fall.

    LG
    Sunflower
     

Ähnliche Themen

  1. Prüfen, ob Arrayinhalt leer ist
    Von Sasser im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.10.08, 15:30
  2. Eingabefeld prüfen
    Von Bebre im Forum PHP
    Antworten: 3
    Letzter Beitrag: 13.02.08, 13:36
  3. Prüfen ob Eingabefeld aktiviert ist
    Von palatica im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.12.07, 13:12
  4. Eingabefeld prüfen
    Von Paulus120 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 08.10.05, 20:25
  5. Prüfen ob Variable leer ist
    Von MIniMe_ im Forum PHP
    Antworten: 3
    Letzter Beitrag: 21.12.01, 13:23