[Solved] Javascript und Formulare

Begonnen von pyr0, 30 Oktober 2010, 11:01:40

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

pyr0

Da ich meine neuen Formulare alle mit der mooFloor Library für MooTools überprüfen lasse, stehe ich jetzt vor folgendem Problem:
Was mache ich wenn der Benutzer sein Javascript aus hat.

Ich weiß man kan eine Umlenkung bzw eine Überprüfung machen mit

<noscript>
<h1>JavaScript-Hinweis:</h1>
Bitte aktivieren sie JavaScript, damit die Seite korrekt angezeigt werden kann!
</noscript>


Oder auch eine Weiterleitung dort plazieren.(Zum Formular ohne Javascript Überprüfung, hier dann mit PHP das Formular prüfen)

Nur an welcher stelle im Formular muss ich dieses plazieren?

Und ist es sinnvoll die NoJavascript Besucher damit aus zuschliessen aber in der Zeit des WEB2.0 wo ja immer mehr auf Ajax setzt ...
gibt es bestimmt immer noch sehr viele Leute die trotzalledem Javascript aus geschaltet haben oder?

Hat da jemand einen Tip oder Rat?


Grüsse aus der kalten Schweiz pyr0


Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

xmjay

Moin !

ZitatNur an welcher stelle im Formular muss ich dieses plazieren?

Hab den JavaScript-Hinweis direkt nach dem Bodytag des Themes untergebracht.
CMS-Version: pragmaMx 1.12.3 | PHP-Version: 5.2.12 | MySQL-Version: 5.1.66

pyr0

Ja da nützt es mir nicht so viel,
denn ich möchte gerne auf eine andere Funktion verweisen wo dann das Formular ohne Javascript gepüft wird.

Und da das Formular dynamisch (mxFormular = Formulargenerator) aus der Datenbank kommt, würde ich halt gern noch ne Prüfung per PHP machen mit dieser Umleitung.
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

So hab das mal getestet,
und bin nicht so glücklich mit dem Ergebnis wenn ich folgenden Code einfüge

?>
<noscript>
   <meta http-equiv="refresh" content="0; URL=modules.php?name=<?php echo $module_name;?>& op=noscript&ID=<?php echo $formular_id?>">
</noscript>

<?php


landet man in einer Endlosschleife. Wenn ich jetzt aber diesen Code nehme

?>
<noscript>
   <meta http-equiv="refresh" content="0; URL=modules.php?name=<?php echo $module_name;?>& file=noscript&ID=<?php echo $formular_id?>">
</noscript>

<?php

geht es schon nur das ich in diesem Fall wohl das Sicherheitskonzept aushebeln würde oder?
Denn ich geh ja nicht mehr über die modules.php
Klar kann man Header und Fotter erinbinden und alles weiter benutzen, der Nachteil dabei ist halt das man diese Datei dann auch ausserhalb des prama starten kann.

Jetzt daher meine Frage ist es wirklich so schlimm, wenn es sich nur um ein Formular handelt? Oder sollte ich mir etwas anderes einfallen lassen?
Ja aber was denn nur?

Grüsse aus der Schweiz
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

Also scheinbar hebelt man so nicht das System aus, der einfache Versuch mit folgenden Code


defined( 'mxMainFileLoaded' ) or die( 'access denied' );


zeigt das es funktioniert...
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Andi

Moin :)

ich denke es ist nicht ganz klar, wie HTML-Formulare funktionieren.

Formulare haben eine onSubmit Ereignis-Eigenschaft, die ausgelöst wird, wenn man auf den normalerweise vorhandenen Submit-Button klickt. Die Daten des Formulars werden dann an den Webserver und das Script gesendet, welches im action-Attribut des Formulartags angegeben ist. Hier, auf dem Webserver, erfolgt dann die Weiterverarbeitung der Daten, z.B. weitersenden als eMail, oder in die Datenbank speichern. Hier erfolgt auch die wirkliche Validierung der Daten. Denn nur hier kannst du sicher sein, dass irgendwelche Filter und Sicherheitskontrollen auch wirklich ausgeführt werden.

Die Validierung über Javascript macht normalerweise nichts anderes, als diese onSubmit Eigenschaft abzufangen. Die Daten werden dann per Javascript "überprüft" und wenn alles ok ist, wird die onSubmit Eigenschaft ausgelöst und die Daten weiter geschickt. Ab zum Server, wo dann genau das Gleiche passiert wie oben beschrieben.

Ist Javascript abgeschaltet, wird das onSubmit Ereignis nicht abgefangen und die Daten ganz normal direkt zum Server geschickt. Irgendwelche Umleitungen sind nicht nötig.

Validierung per Javascript dient nur der Benutzerfreundlichkeit, mit Sicherheit hat diese Validierung absolut nichts zu tun.


PS.
Ich würde dir raten das jQuery Framework genauer anzusehen. jQuery ist in pragmaMx sehr tief integriert und es gibt sicher alles her, was auch die mootols oder andere Frameworks bieten. So vermeidest du Javascript Konflikte und sparst Resourcen.
gugg z.B. mal hier: http://www.blogrammierer.de/jquery-die-10-besten-formular-validierungsplugins/
schön´s Grüssle, Andi

pyr0

Klar hast Du damit recht das Javascript nicht die Überprüfung durch führt, sondern nur zur besseren Benutzung gedacht ist.
Ich möchte ja auch nur eine Verzweigung machen also javascript an dann das Formular mit jquery oder mootools und wenn javascript aus dann lade passende Seite ohne diese Framworks zuladen. Nur darum ging es mir.

Und wegen den Sache mit dem passenden jQuery zusatz hatte ich ja schon mal gefragt, da kam es dann dazu das die Fehleranzeige völlig zerlegt wurde.
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

pyr0

So Andi hab was passendes gefunden danke Deinem Link  :thumbup:

Und logisch das man noch eine Serverseitige Kontrolle der Eingaben macht  ;)
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!