Checkbox als Pflicht geht nicht?


Shorty1968

Erfahrenes Mitglied
#1
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?
 

Shorty1968

Erfahrenes Mitglied
#3
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
#6
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
#8
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
#10
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}
 

basti1012

Erfahrenes Mitglied
#11
Was meinst du den mit wird nicht angezeigt ? Ist deine Checkbox gar nicht zu sehen oder meinst du nach dem klick auf der Checkbox ?
Wenn das jetzt ein normaler php Code wäre hättest du bestimmt hier auch schon ne Lösung bekommen ,doch da es in dein Shop bzw im Template mit eingebaut werden muß ist das schon schwerer weil kaum einer den shop ( code ) kennt .
Es gibt in den Shop doch bestimmt mehrere Checkboxen die aktiviert werden müssen,damit es weiter geht . zb beim registrieren. Hast d da mal in den Code rein geschaut wie es da aussieht ?
 
#13
Würdest Du uns auch die Lösung mitteilen?
Kann ja sein, dass es mal jemanden gibt, der eventuell das ähnliche Problem hat. :)

PS: Du kannst Checkboxen überprüfen, ob sie angeklickt wurden oder nicht. Dazu ist JS nicht zwingend notwendig.

Da spielt es keine große Rolle wie veraltet sein Browser ist. :)
 

Shorty1968

Erfahrenes Mitglied
#16
Ok du hast ja recht,ich habe den Code aus der kontakt.php des Shops raus gesucht und ihn in die checkout_confirmation.php eingefügt und dann den Passenden Smart HTML Code aus der templates/dein_template/module/contact_us.html in die checkout_confirmation.html eingebaut.