Checkbox als Pflicht geht nicht?

Shorty1968

Erfahrenes Mitglied
Hallo,
ich möchte in meinem Shop eine Checkbox einbauen so das man erst weiter kommt wen man den Hacken auch gesetzt hat,ich habe es mit folgendem Code versucht.
HTML:
{if $REVOCATION}
    <div class="highlightbox">
    <table>
        <tr>
        <input type="checkbox" name="privacy_accept" required="required">
        <label for="privacy_accept">
        Bitte best&auml;tigen Sie, dass Sie unsere Datenschutzrichtlinien zur Kenntnis genommen haben!<br />Ihre Daten Name, Adresse werden zum Zwecke der Buchhaltung von uns an den Steuerberater sowie zum Zwecke der Auslieferung an den Lieferanten oder Hersteller &uuml;bermittelt. <a href="https://schnaepchenpiet.shop/Privatsphaere-und-Datenschutz:_:2.html">[Mehr Info]</a> *        
        {$TEXT_AGB_CHECKOUT} *
        </label>
      </tr>
    </table>
    </div>
    {/if}
Aber ich kann auf den Button klicken ohne das ich den Hacken gesetzt habe,was habe ich falsch?
 

basti1012

Erfahrenes Mitglied
Eigentlich sollte das ja schon so gehen wie du hier siehst LqXNYQ
Ist das ein Original Module von Shop oder baust du da gerade was eigenes ?
 

Shorty1968

Erfahrenes Mitglied
Das hatte ich schon mal da hat es auch Funktioniert,aber nun mit einemal geht es nicht mehr und ich weiss nicht woran es liegt.

Das von dir geht,aber bei mir nicht obwohl es beides das gleiche ist.
 

ComFreek

Mod | @comfreek
Moderator
Hast du einen HTML5-Doctype? Übrigens ist das "required" nur clientseitig und das Formular kann auch ohne abgesendet werden, wenn man etwa mit DevTools das "required" entfernt. Jetzt frage ich mich, ob man rechtlich serverseitig überprüfen muss, ob das Feld tatsächlich angeklickt wurde :unsure:

Aber wenn jemand einen (sehr) alten Browser ohne "required"-Support verwendet, hat man dasselbe Problem. Der könnte dann wohl rechtliche Schritte einleiten (?)
 

basti1012

Erfahrenes Mitglied
Ich denke mit rechliche meint er das du als Shop besitzer auch nach weisen kannst ob das checkbox kästchen auch wirklich angeklickt wurde. Wie @ComFreek ja schon sagte kann man das required ohne probleme umgehen ohne das man es angeklickt hat. So könnte dein Käufer ja einfach sagen ich habe es nicht angeklickt und deswegen zählt das auch nicht was da drinne steht für ihn . Wenn du dir also sicher sein willst das das Checkbox Kästchen wirklich angeklickt wurde , muß man es wohl mit Php absichern ,weil Html und Js könnte jeder in Browser Manipulieren.
 

Shorty1968

Erfahrenes Mitglied
Ich versuche es gerade mit PHP um zu setzen,aber es wird nichts angezeigt.
PHP:
if (DISPLAY_REVOCATION_VIRTUAL_ON_CHECKOUT == 'true'
    && ($_SESSION['cart']->content_type == 'virtual'
        || $_SESSION['cart']->content_type == 'mixed')
    )
{
  $shop_content_data = $main->getContentData(REVOCATION_ID);
  $smarty->assign('REVOCATION', '<div class="agbframe">' . $shop_content_data['content_text'] . '</div>');
  $smarty->assign('REVOCATION_LINK', $main->getContentLink(REVOCATION_ID, MORE_INFO,'SSL'));
  $smarty->assign('REVOCATION_checkbox', '<input type="checkbox" value="revocation" name="revocation" id="revocation"'.(isset($_GET['step']) && $_GET['step'] == 'step2' ? ' checked="checked"' : '').' />');
}
Template
Code:
{if $smarty.const.DISPLAY_REVOCATION_VIRTUAL_ON_CHECKOUT == 'true'}
            <div class="panel-body">
                <div class="checkoutconditions checkbox">
                    <label for="conditions">{$AGB_checkbox} <strong>{#text_accept_agb#}</strong></label>&nbsp;{$AGB_LINK}
                </div>
                {if isset($REVOCATION_checkbox)}
                    <div class="checkoutconditions">
                        <label for="revocation">{$REVOCATION_checkbox} <strong>{#text_privacy_accept#}</strong></label>&nbsp;{$REVOCATION_LINK}
                    </div>
                {/if}
            </div>
        {/if}