mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 01:26 Benutzername: Passwort: Auto-Login

Thema: formular senden vom 05.03.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> formular senden
Autor Nachricht
samuk
Threadersteller

Dabei seit: 01.06.2006
Ort: Upper-Eastside Helvetia
Alter: 48
Geschlecht: Männlich
Verfasst Mo 05.03.2007 12:56
Titel

formular senden

Antworten mit Zitat Zum Seitenanfang

guten morgen
habe folgendes problem: ich habe ein formular, welches vor dem versand überprüft werden sollte. dies habe ich gemacht, jedoch erst im nachhinein. das fenster geht auf, in welchem gezeigt wird, welche felder noch ausgefüllt werden sollten, das formular wird jedoch im hintergrund abgeschickt.

hat das was mit der reihenfolge der strings zu tun?


das habe ich eingefügt:

"MM_validateForm('Firma','','R','Vorname','','R','Name','','R','Strasse','','R','PLZ','','R','Telefon','','R');return document.MM_returnValue">

<FORM ACTION="http://www.xxx.ch/sendform.php" METHOD="POST" name="Anfrage" id="Anfrage" onSubmit="return chkFormular()">


danke schon mal... samuk
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mo 05.03.2007 16:25
Titel

Antworten mit Zitat Zum Seitenanfang

daran kann man doch gar nichts erkennen.

Code:
onSubmit="return chkFormular()"

ich sehe nur, daß hier beim abschicken des formulars eine funktion aufgerufen wird. die sollte dann wohl checken und einen rückgabewert liefern. ist dieser false wird das formular nicht abgeschickt...

Code:
MM_validateForm('Firma','','R','Vorname','','R','Name','','R','Strasse','','R','PLZ','','R','Telefon','','R');return document.MM_returnValue">

und das ist nur ein funktionsaufruf. da kann man auch nichts dran erkennen...
aber merkwürdigerweise übergibst du hier feste werte... sollten die nicht aus dem formular kommen..?

in jedem fall müßtest du mal den richtigen code posten, damit man dir helfen könnte.

BTW: machst du das nur mit javascript? das wäre dann ja verdammt unsicher. in jedem fall sollten die daten serverseitig geprüft werden, bevor mails verschickt werden.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
samuk
Threadersteller

Dabei seit: 01.06.2006
Ort: Upper-Eastside Helvetia
Alter: 48
Geschlecht: Männlich
Verfasst Mo 05.03.2007 17:46
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
ich sehe nur, daß hier beim abschicken des formulars eine funktion aufgerufen wird. die sollte dann wohl checken und einen rückgabewert liefern. ist dieser false wird das formular nicht abgeschickt...


die funktion der validation ist:

{
if(document.mega_anfrage.Firma.value == "") {
alert("Das Feld <Firma> steht leer");
document.mega_anfrage.Firma.focus();
return false;
}
if(document.mega_anfrage.Vorname.value == "") {
alert("Das Feld <Vorname> steht leer");
document.mega_anfrage.Vorname.focus();
return false;
}
if(document.mega_anfrage.Name.value == "") {
alert("Das Feld <Name> steht leer");
document.mega_anfrage.Name.focus();
return false;
}
if(document.mega_anfrage.Strasse.value == "") {
alert("Das Feld <Strasse> steht leer");
document.mega_anfrage.Strasse.focus();
return false;
}
if(document.mega_anfrage.PLZ.value == "") {
alert("Das Feld <PLZ> steht leer");
document.mega_anfrage.PLZ.focus();
return false;
}if(document.mega_anfrage.Telefon.value == "") {
alert("Das Feld <Telefon> steht leer");
document.mega_anfrage.Telefon.focus();
return false;


---> das funktioniert ja auch prima, aber das formular sendet es frech im hintergrund ab. das ist ja das komische.


Zitat:
und das ist nur ein funktionsaufruf. da kann man auch nichts dran erkennen...
aber merkwürdigerweise übergibst du hier feste werte... sollten die nicht aus dem formular kommen..?


hier die funktion:


function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');




ein grosses hmmmmm....
  View user's profile Private Nachricht senden
ma1973

Dabei seit: 17.02.2006
Ort: borken
Alter: 51
Geschlecht: Männlich
Verfasst Mo 05.03.2007 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

mmh ich bentutze das ... und hierbei wird erstmal nur
gecheckt ...



Code:


<script type="text/javascript"><!--

function chkFormularEintrag() {
   if(document.Eintrag.email.value == "") {
      alert("Sie muessen eine E-Mail-Adresse eingeben!");
      document.Eintrag.email.focus();
      return false;
   }
         if(document.Eintrag.telefon.value == "") {
      alert("Sie muessen ihre Telefonnummer eingeben!");
      document.Eintrag.telefon.focus();
      return false;
   }
         if(document.Eintrag.firma.value == "") {
      alert("Sie muessen ihr Firmenname eingeben!");
      document.Eintrag.firma.focus();
      return false;
   }
   if(document.Eintrag.name.value == "") {
      alert("Sie muessen einen Namen eingeben!");
      document.Eintrag.name.focus();
      return false;
   }
   if(document.Eintrag.vorname.value == "") {
      alert("Sie muessen einen Vornamen eingeben!");
      document.Eintrag.vorname.focus();
      return false;
   }

}


// -->
</script>


und dann im Formularfeld

Code:


<form id="Eintrag" action="site" method="post" name="Eintrag" onsubmit="return chkFormularEintrag()">

  View user's profile Private Nachricht senden
samuk
Threadersteller

Dabei seit: 01.06.2006
Ort: Upper-Eastside Helvetia
Alter: 48
Geschlecht: Männlich
Verfasst Mo 05.03.2007 17:59
Titel

Antworten mit Zitat Zum Seitenanfang

werd das mal checken... danke schon mal...
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mo 05.03.2007 22:59
Titel

Antworten mit Zitat Zum Seitenanfang

das ist aber keine schöne funktion...
wenn man was nicht ausfüllt, dann geht ja ein alert-fenster nach dem anderen auf...
ich würde lieber einen text neben dem formularfeldern anzeigen lassen. das wirkt professioneller und ist nicht so nervig.

aber wie ich bereits erwähnt habe:
so eine clientseitige überprüfung ist ja ganz nett, aber keineswegs ausreichend. die versagt total, wenn ein user javascript im browser deaktiviert hat.
und das machen zur zeit immer mehr leute, weil man nur so dem ganzen werbekrams aus dem weg gehen kann. ein popupblocker hilft ja mittlerweile nicht mehr, weil mittlerweile überwiegend layer-werbung geschaltet wird.

aber in jedem fall solltest du den krams serverseitig checken, damit man dein script nicht eventuell zum spammen nutzen kann. mußt checken zumindest, daß da keiner mit escape-sequenzen oder ähnlichem irgendwie unschöne dinge übergeben kann...
ich weiß nicht, ob dein sendform.php das tut...

übrigens würde ich stark dazu raten, die überprüfung selbst zu schreiben. diese macromedia-funktionen sehen ja ganz gruselig aus. da kann man manuell oftmals kaum mehr was dran ändern, weil man kaum durch den code duchsteigt.


übrigens ist mir in deinem posting noch was aufgefallen:
Zitat:
das habe ich eingefügt:

"MM_validateForm('Firma','','R','Vorname','','R','Name','','R','Strasse','','R','PLZ','','R','Telefon','','R');return document.MM_returnValue">

ich weiß ja nicht, wo du das eingefügt hast, aber scheinbar rufst du da deine funktion auf und übergibst verschiedene werte. vermutlich wird das formular, weil die check-funktion in jedem fall werte geliefert bekommt, egal ob was im formular eingegeben wurde oder nicht.

oder es liegt daran, daß du hier den rückgabewert von chkFormular() reinpackst:
Code:
return chkFormular()

gibt es überhaupt eine funktion dieses namens?
scheinbar heißt die funktion doch MM_validateForm(), oder?
Code:
MM_validateForm(


wie gesagt: ich kann nicht allzuviel erkennen, weil der gepostete code nicht komplett ist...

ich würde wirklich dazu raten, die überprüfung selbst neu zu schreiben.
  View user's profile Private Nachricht senden
samuk
Threadersteller

Dabei seit: 01.06.2006
Ort: Upper-Eastside Helvetia
Alter: 48
Geschlecht: Männlich
Verfasst Mo 05.03.2007 23:42
Titel

Antworten mit Zitat Zum Seitenanfang

rob hat geschrieben:
aber in jedem fall solltest du den krams serverseitig checken, damit man dein script nicht eventuell zum spammen nutzen kann. mußt checken zumindest, daß da keiner mit escape-sequenzen oder ähnlichem irgendwie unschöne dinge übergeben kann...
ich weiß nicht, ob dein sendform.php das tut...


wie geht denn das überhaupt mit dem spammen (escape sequenzen)?
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Di 06.03.2007 00:50
Titel

Antworten mit Zitat Zum Seitenanfang

ach gott... da gibt es viele möglichkeiten...

wenn die werte, die dem mail-script übergeben werden, nicht serverseitig geprüft und eventuell bereinigt werden, dann ist es möglich, der mail-funktion böse daten zu futtern zu geben.

das erste beispiel, was ich auf die schnelle mit google gefunden habe:
http://www.drweb.de/webmaster/kontakt-formulare.shtml

hier wird z.b. in das absenderfeld folgendes eingegeben:
rgendjemand@irgendwo.xyz\nCc: spamopfer@sonstwo.xyz, nocheinopfer@anderswo.xzy

ohne serverseitige prüfung und bereinigung der daten würde dein formular dann mails an die verschiedenen leute verschicken.
und du bist dann derjenige der ärger bekommt, weil hunderttausend leute spam-mails von deinem formular erhalten.
dabei wolltest du vielleicht nur ein kleines script, damit man dir eine mail über deine website schicken kann...

und es gibt noch mehr möglichkeiten, "böse" daten an dein script zu übergeben. eine prüfung mit javascript hilft da auch nichts.
du mußt also serverseitig checken, daß z.b. beim absender nur buchstaben, ziffern, @-zeichen und punkt eingegeben werden. alles andere muß radikal rausgefiltert werden. usw. usf.
  View user's profile Private Nachricht senden
 
Ähnliche Themen PDF Formular an CC senden
[php] wie formular senden?
Formular mit Dateifeld senden
GoLive:Gästebuch und Formular senden
formular an 2 email Adressen senden
pdf-formular senden und serverseitig empfangen
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.