# Checkbox als Pflicht geht nicht?



## Shorty1968 (15. Februar 2019)

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.

```
{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 (15. Februar 2019)

Eigentlich sollte das ja schon so gehen  wie du hier siehst
**** Link entfernt, weil Seite nicht mehr erreichbar ****
Ist das ein Original Module von Shop oder baust du da gerade was Eigenes?


----------



## Shorty1968 (15. Februar 2019)

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.


----------



## Shorty1968 (16. Februar 2019)

Wie kann ich das mit PHP Realisieren?


----------



## Shorty1968 (16. Februar 2019)

Niemand eine idee warum das *required *in @basti1012 sein beispiel greift und in meinem Shop nicht?

Gibt es Alternativen das Funktionierend um zu setzen?


----------



## ComFreek (16. Februar 2019)

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 

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


----------



## Shorty1968 (16. Februar 2019)

Wie genau meinst du das Rechtliche Probleme,es soll doch alles gut sichbar und bestätigt werden beim Kauf?


----------



## basti1012 (16. Februar 2019)

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 (16. Februar 2019)

Ok wie könnte ich das mit php realisieren?


----------



## Shorty1968 (16. Februar 2019)

Ich versuche es gerade mit PHP um zu setzen,aber es wird nichts angezeigt.

```
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

```
{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 (17. Februar 2019)

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 ?


----------



## Shorty1968 (17. Februar 2019)

Das ist ein Code von den anderen php Dateien,aber ich habe eine lösung gefunden mit der ich leben kann danke für eure mühe und hilfe.


----------



## EuroCent (25. Februar 2019)

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 (25. Februar 2019)

Die Lösung ist leider nicht so einfach zu übernehmen,dazu würde z.b. Zwingend diese Shop Version von nöten sein.


----------



## EuroCent (25. Februar 2019)

Stelle Sie doch dennoch bereit. 
Man kann ja nie wissen


----------



## Shorty1968 (26. Februar 2019)

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.


----------

