mrmambo: Optionsschalter muss abgehackt werden

Hallo an alle,
ich bastle zurzeit eine Hompage und bin "eig" fast fertig und bin jetzt beim Bestellscript angelangt. Dieses ist eig eher einfach gehalten, da das aber meine erste HP ist habe ich eine frage zum script. und zwar möchte ich das die zahlungsart und die bestätigung für die agb angeklickt sien muss die aber mein script einfach übergeht und auch ohne dies anzuklicken das script abschicken möchte.
*grübel*
ich komm einfach nicht drauf und will euch fragen ob ihr es mir vervollständigen könnt.
Danke im vorraus, ich habe mal das bestellscript rausgenommen weils irgendwie eh nicht funktioniert hat.

*das script das ich jetzt mal geschreiben habe*

    <div style="font-size:25px;"><center>  
          Für Ihre Bestellungen bei uns gilt diese <a href="Infobox/AGB.pdf" target="_blank">AGB</a>  
        </center></div><br />  
  
<form action="bannert-illertissen@gmx.net" method="post" name="abfrage"  
id="abfrage" onReset="return sicher()" onSubmit="return formtest(); checkbox()">  
<div class="bestellung">  
Was und Wie viel möchten Sie von unseren Produkten?:*  
</div><br />  
<div class="bestellung">  
 <input name="Jen Fe Pflaster" type="checkbox" value="" />Jen Fe Pflaster &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="" type="text" size="12" maxlength="5" />St.<br />  
  
            <input name="Jen Fe Pflaster Plus" type="checkbox" value="" />Jen Fe Pflaster Plus &nbsp;<input name="" type="text" size="12" maxlength="5"  />St.<br />  
  
            <input name="Jen Fe Pflaster Plus" type="checkbox" value="" />Full Life One 12*60ml <input name="" type="text" size="12" maxlength="5"  />St.<br />  
  
            <input name="Jen Fe Pflaster Plus" type="checkbox" value="" />Full Life One 48*60ml <input name="" type="text" size="12" maxlength="5"  />St.<br />  
  
<input name="Jen Fe Pflaster Plus" type="checkbox" value="" />Full Life One 1*1l &nbsp;&nbsp;&nbsp;<input name="" type="text" size="12" maxlength="5"  />St.<br />  
  
<input name="Jen Fe Pflaster Plus" type="checkbox" value="" />Full Life One 4*1l  
&nbsp;&nbsp;&nbsp;<input name="" type="text" size="12" maxlength="5"  />St.  
</div>  
  
  
<br /><div class="bestellung">Anrede:* <select name="anrede" id="anrede" size="1">  
<option value="Herr">Herr</option>  
<option value="Frau">Frau</option>  
</select>  
</div>  
            <div class="bestellung">Zahlungsart:*  
            <input type="radio" name="zahlung" id="radio" value="radio" />Vorkasse</div>  
            <div class="bestellung">Vorname:*&nbsp;&nbsp;&nbsp;&nbsp;  
             <input name="vorname" type="text" id="vorname" maxlength="15" />  
        </div>  
            <div class="bestellung">Nachname:*&nbsp;&nbsp;&nbsp;  
              <input name="name" type="text" id="name" maxlength="15" />  
        </div>  
            <div class="bestellung">  
            Kundennummer:&nbsp;<input type="text" name="kunden" id="kunden" maxlength="4" />  
        </div>  
            <div class="bestellung">Firma:&nbsp;&nbsp;&nbsp;&nbsp;  
              <input name="firma" type="text" id="firma" size="30" maxlength="20" />  
        </div>  
            <div class="bestellung">Strasse/Nr.:* <input name="strasse" type="text" id="strasse" size="30" maxlength="30" />  
    </div>  
            <div class="bestellung">PLZ:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
              <input name="plz" type="text" id="plz" size="30" maxlength="10" />  
        </div>  
            <div class="bestellung">Ort:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
              <input name="ort" type="text" id="ort" size="30" maxlength="20" />  
        </div>  
            <div class="bestellung">Staat:*&nbsp;&nbsp;&nbsp;  
              <input name="staat" type="text" id="staat" size="30" maxlength="20" />  
        </div>  
            <div class="bestellung">Telefon:&nbsp;&nbsp;  
              <input name="tele" type="text" id="tele" size="30" maxlength="25" />  
</div>  
            <div class="bestellung">E-Mail:*&nbsp;&nbsp;  
              <input type="text" name="email" id="email" />  
            </div>  
            <div class="bestellung">Andere Kontaktdaten:  
              <input type="text" size="100" maxlength="10" name="name12" />  
            </div>  
            <div class="bestellung"><input name="agb" type="checkbox" id="agb" value="" />Stimmen Sie unsere AGB zu? Dann machen Sie einen Hacken.*</div>  
            <div style=""> Unsere Konto Daten werden Ihnen mit einer Bestätigungs Mail zugesendet. Weitere Instruktionen werden per E-Mail geregelt.  
            <div style="font-family:'Courier New', Courier, monospace; font-size:13px; color:#666">Die Felder mit einem * müssen ausgefüllt werden!</div>  
            <input type="submit" value="Send"> <input type="reset" value="Cancel" />  
        </div>  
 <script>  
function sicher() {  
var antwort;  
antwort=confirm("Sind Sie sicher, dass Sie den Formularinhalt löschen wollen?");  
return antwort;  
}  
</script>  
  
<script>  
function formtest() {  
  
var vorname, name, email, plz, strasse, ort, staat, zahlung, kont;  
vorname=document.abfrage.vorname.value;  
name=document.abfrage.name.value;  
email=document.abfrage.email.value;  
plz=document.abfrage.plz.value;  
strasse=document.abfrage.strasse.value;  
ort=document.abfrage.ort.value;  
staat=document.abfrage.staat.value;  
if (name=="" || vorname=="" || email=="" || plz=="" || strasse=="" || ort=="" || staat=="") {  
alert("Bitte füllen Sie alle Felder mit einem * aus!")  
return false;  
}  
  
return confirm("Sind Sie sicher, dass Sie das Formular jetzt abschicken wollen?");  
}  
</script>  
  
</form>  
  
      </div>
  1. die aber mein script einfach übergeht und auch ohne dies anzuklicken das script abschicken möchte.

    Sobald das hier jemand versteht, kriegst du sicherlich eine Antwort.
    Du könntest es aber beschleunigen indem du einen lesbaren Satz draus machst ;-)

    1. hi, ja okay, is echt irgendwie verwirrend was ich da geschrieben habe:-D^^..

      ich wollte mit diesem "satz" eigentlich nur sagen das, wenn ich auf senden drücke (der hacken aber nicht gesetzt ist bei den AGB) er das formular einfach abschicken möchte.

  2. Hallo,

    du erwartest jetzt nicht wirklich, dass sich jemand hier jede Codezeile genau durchliest, oder? Schon gleich zweimal nicht bei so einer Problembeschreibung.

    Ich habe jetzt beim überfliegen erkannt, dass du wohl ein Javascript Problem hast

    if (name=="" || vorname=="" || email=="" || plz=="" || strasse=="" || ort=="" || staat=="") {
    alert("Bitte füllen Sie alle Felder mit einem * aus!")

    Hier Fragst du keine AGB-Felder ab.

    Kann es daran liegen?
    Wenn nein, wäre eine bessere Problembeschreibung angebracht. Vor allem ob es sich um JavaScript, PHP, oder was auch immer dreht...

    Wenn das deine Lösung war, will ich dich hier nur noch warnen, dass du tunlichst auch eine serverseitige Überprüfung vornimmst, weil alles andere leicht umgehbar ist.

    Gruß
    Alex

    1. Hallo,

      du erwartest jetzt nicht wirklich, dass sich jemand hier jede Codezeile genau durchliest, oder? Schon gleich zweimal nicht bei so einer Problembeschreibung.

      Ich habe jetzt beim überfliegen erkannt, dass du wohl ein Javascript Problem hast

      if (name=="" || vorname=="" || email=="" || plz=="" || strasse=="" || ort=="" || staat=="") {
      alert("Bitte füllen Sie alle Felder mit einem * aus!")

      Hier Fragst du keine AGB-Felder ab.

      Kann es daran liegen?
      Wenn nein, wäre eine bessere Problembeschreibung angebracht. Vor allem ob es sich um JavaScript, PHP, oder was auch immer dreht...

      Wenn das deine Lösung war, will ich dich hier nur noch warnen, dass du tunlichst auch eine serverseitige Überprüfung vornimmst, weil alles andere leicht umgehbar ist.

      Gruß
      Alex

      hallo, danke für die schnelle antwort.
      naja das hab ich auch schon versucht, die agb dort einzubauen hat aber irgendwie net gefunkt

      1. Mahlzeit mrmambo,

        naja das hab ich auch schon versucht, die agb dort einzubauen hat aber irgendwie net gefunkt

        Aha. Das ist jetzt aber "irgendwie" keine Hilfe für potentielle Helfer ... was genau hast Du dort wie genau gemacht?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Ein <input type="hidden"> Feld hilft!
    Oder machs mit $_REQUEST:

    $agb = $_REQUEST['agb'];

    und dann halt eben if(!empty($agb)){...} else{...}

    So funktionierts mit php, js weiß ich allerdings nicht (denn ich liebe PHP, uh, ah, ich liebe PHP, uh, ah...)

    mfg xxxMaster

    1. hi, danke für die schnelle antwort
      ähhhhm ich bin grad n bisl überfordert, aber ich habs mal versucht einzubauen. Ich glaube aber ich muss hier

        
      <form action="bannert-illertissen@gmx.net" method="post" name="abfrage"  
      id="abfrage" onReset="return sicher()" onSubmit="return formtest(); checkbox()">  
      
      

      noch irgendwas reinschreiben das das php script überhaubt benutzt wird oder nicht?.. *sry, aber wie gesagt meine erste Homepage*:-D

      1. Hallo

        ... Ich glaube aber ich muss hier

        <form action="bannert-illertissen@gmx.net" method="post" name="abfrage"
        id="abfrage" onReset="return sicher()" onSubmit="return formtest(); checkbox()">

        
        > noch irgendwas reinschreiben das das php script überhaubt benutzt wird oder nicht?.. \*sry, aber wie gesagt meine erste Homepage\*:-D  
          
        Welches PHP-Skript meinst du? Das action-Attribut verweist auf eine Emailadresse und die kann die Daten bestimmt nicht verarbeiten. Hast du überhaupt ein PHP-Skript, das für die Verarbeitung der aus dem Formular stammenden Daten geeignet ist? Wenn ja, gehört dessen URL in das action-Attribut.  
          
        Zu den JavaScripten selbst kann ich dir nicht viel sagen, außer, dass du nicht auf die AGB-Checkbox prüfst (wie schon erwähnt wurde). Da die Checkbox selbst zudem einen leeren Value hat (warum eigentlich?) wird die Prüfung auf einen leeren Wert natürlich immer anschlagen, egal ob da ein Haken ist oder nicht.  
          
        \*btw\* Du kennst den Unterschied zwischen [Haken](http://images.google.de/images?hl=de&q=Haken&cr=countryDE&um=1&ie=UTF-8&sa=N&tab=wi) und [Hacken](http://images.google.de/images?um=1&hl=de&cr=countryDE&tbs=isch%3A1&sa=1&q=Hacken&btnG=Suche) (wobei mir in den Suchergebnissen auffällt, dass auffällig viele den Unterschied nicht kennen)?  
          
        Tschö, Auge  
        
        -- 
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.  
        Terry Pratchett, "Wachen! Wachen!"  
          
        [Veranstaltungsdatenbank Vdb 0.3](http://termindbase.auge8472.de/)
        
        1. Welches PHP-Skript meinst du? Das action-Attribut verweist auf eine Emailadresse und die kann die Daten bestimmt nicht verarbeiten. Hast du überhaupt ein PHP-Skript, das für die Verarbeitung der aus dem Formular stammenden Daten geeignet ist? Wenn ja, gehört dessen URL in das action-Attribut.

          Noi hab ich net wirklich:-D^^
          hmmmm

          Zu den JavaScripten selbst kann ich dir nicht viel sagen, außer, dass du nicht auf die AGB-Checkbox prüfst (wie schon erwähnt wurde). Da die Checkbox selbst zudem einen leeren Value hat (warum eigentlich?) wird die Prüfung auf einen leeren Wert natürlich immer anschlagen, egal ob da ein Haken ist oder nicht.

          okay...hmm

          *btw* Du kennst den Unterschied zwischen Haken und Hacken (wobei mir in den Suchergebnissen auffällt, dass auffällig viele den Unterschied nicht kennen)?

          :-D:-D:-D^^

          1. Hallo

            Welches PHP-Skript meinst du? Das action-Attribut verweist auf eine Emailadresse und die kann die Daten bestimmt nicht verarbeiten. Hast du überhaupt ein PHP-Skript, das für die Verarbeitung der aus dem Formular stammenden Daten geeignet ist? Wenn ja, gehört dessen URL in das action-Attribut.

            Noi hab ich net wirklich:-D^^

            Was soll denn passieren, wenn das Formular abgeschickt wird?

            Tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
            Terry Pratchett, "Wachen! Wachen!"
            Veranstaltungsdatenbank Vdb 0.3
            1. Was soll denn passieren, wenn das Formular abgeschickt wird?

              Hi, und zwar soll mir des ding ne e-mail schicken mit den daten wo der da ausgefüllt hat. mehr eig net.

              1. Hallo

                Was soll denn passieren, wenn das Formular abgeschickt wird?

                Hi, und zwar soll mir des ding ne e-mail schicken mit den daten wo der da ausgefüllt hat. mehr eig net.

                Dann lies bitte nach, wie man das <http://de.selfhtml.org/html/formulare/definieren.htm#bereich@title=im Formular festlegt> (beachte unbedingt "Beachten Sie"!) und als Fortführung von "Beachten Sie" den Abschnitt <http://de.selfhtml.org/html/formulare/verarbeiten.htm#email@title=Formulare als Email>. Damit sollten, so ein Emailprogramm angesprochen werden kann, die Eingaben an jenes übergeben werden.

                Ich halte das Vorgehen aber für unprofessionell. Einerseits musst du dich darauf verlassen können, dass dem Browser des Besuchers ein Emailprogramm bekannt ist, was wegen der zunehmenden Verbreitung von Webanwendungen (gerade im Emailbereich) nicht als sicher gelten kann und zweitens wird, da die Übergabe der Datein einzig und allein lokal (beim Benutzer) erfolgt, nur JavaScript zur Prüfung der Eingaben eingesetzt. Das ist als Dreingabe zu einer sowieso erfolgenden serverseitigen Prüfung gut, weil das Formular bei offensichtlichen Fehleingaben garnicht erst an den Server geschickt wird, als ausschließliche Prüfung ist es aber unzuverlässig, weil es abgeschaltet oder nicht vorhanden sein kann (auch wenn das wahrscheinlich relativ wenige Fälle betreffen wird).

                Damit kannst du nicht voraussetzen, dass bestimmte Pfilchtfelder ausgefüllt werden. Was machst du mit Bestellungen/Aufträgen, bei denen z.B. die Kenntnisnahme der AGB nicht übermittelt wurde? Ignorierst du sie? Fragst du händisch beim Besteller/Auftraggeber nach? Was wird der davon halten, dass du nachträglich etwas an den Bedingungen der Bestellung/des Auftrags ändern willst?

                Zum JavaScript-Problem an sich möge sich bitte jemand anderes äußern, da bin ich nicht firm.

                Tschö, Auge

                --
                Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                Terry Pratchett, "Wachen! Wachen!"
                Veranstaltungsdatenbank Vdb 0.3
                1. Dann lies bitte nach, wie man das <http://de.selfhtml.org/html/formulare/definieren.htm#bereich@title=im Formular festlegt> (beachte unbedingt "Beachten Sie"!) und als Fortführung von "Beachten Sie" den Abschnitt <http://de.selfhtml.org/html/formulare/verarbeiten.htm#email@title=Formulare als Email>. Damit sollten, so ein Emailprogramm angesprochen werden kann, die Eingaben an jenes übergeben werden.

                  Hier gleich mal die Anmerkung, dass ich z.B. gar kein Mailprogramm besitze, da ich grundsätzlich alles per Webmail mache und Dein Formular bei mir daher schon gar nichts macht, außer mich darauf hinzuweisen, dass mein Outlook nicht eingerichtet ist, was ich aber nicht ändern werde. Und jetzt rate mal, ob ich damit der einzige bin, der Dein Formular nicht nutzen kann...  ;)

                  Lösungsansatz: Verarbeite das Formular serverseitig (z.B. mit PHP). Alles andere wird immer bei sehr vielen Leuten nicht so funktionieren, wie Du es sicherlich gern hättest. Genauso wie sie Deine JavaScript-Formularprüfungen ganz locker umgehen können - und das ggf. sogar unbeabsichtigt.

                  Gruß,
                  Andreas

                  1. Ok ich werd es mal versuchen:-D

    2. $agb = $_REQUEST['agb'];

      Warum $_REQUEST und nicht dediziert $_POST oder $_GET?

      Warum wird die variable unsinnigerweise umrefernziert/kopiert wie auch immer?

      und dann halt eben if(!empty($agb)){...} else{...}

      empty() != isset()