Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
CGI + Java kombinieren?
Autor: fuxl
Datum: 10.06.2009 20:33:21
Hallo Leute,
ich kenne mich weder mit CGI noch mit Java besonders aus.
Vielleicht kann mir hier jemand helfen.
Ich habe ein CGI Script das mir ein Mail sendet, das von einer html Seite abgeschickt wird. Funktioniert eigentlich.
Nur hätte ich gerne, dass ein paar Eingabefelder überfrüft werden, ob etwas eingetragen ist. Mit einem Java Script funktioniert es. Ich schaffe es aber nicht, das Java Script in Kombination zum CGI ausführen zu lassen. Immer wenn ich das leere Formular absende, wird nichts überprüft, es kommt also keine Meldung, daß man etwas eingeben muß, sondern sofort die Dankseite.
Jetzt die Frage: sollte es trotzdem funktionieren oder muß man dazu das CGI Script alleine so schreiben daß es klappt?
Mein CGI Script:----------
$Sendmail_Prog = "/usr/lib/sendmail";
$mailto = 'name@gmx.net';
use CGI;
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter');
$returnhtml = $query->param('return');
$subject = $query->param('subject');
$subject =~ s/s/ /g;
$mailtext = "";
foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $mailtext = $mailtext.$value."n";
    }
  }
}
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werdenn";
print MAIL "To: $mailton";
print MAIL "Subject: $subjectnn";
print MAIL "$mailtextn";
close(MAIL);
print "Location: $returnhtmlnn";
------------------------------------------------
Meine Seite:
<form name"formular" action="http://www.domain.net/cgi-bin/sendmail.cgi" method="post" onSubmit="return chkFormular()">
<input type="hidden" name="return" value="http://www.domain.net/kontakt_danke.html">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Anfrage-Info">
  <table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Vorname: </font></b><br><input type="text" size=26 name="vorname"></td>
    </tr> ............................usw.
<tr>
      <td width="3%"> </td>
  <th colspan="2">
        <input type="submit" name="Button" value="Senden">
        <input type="reset" name="Button2" value="Zurück"> </th></tr></table></form>
------------------------------------------------
und zuletzt das Java Script:
<script type="text/javascript">
function chkFormular () {
  if(document.Formular.vorname.value == "")  {
    alert("Bitte Ihren Vornamen eingeben!");
    document.Formular.vorname.focus();
    return false;
    }
  if(document.Formular.nachname.value == "")  {
    alert("Bitte Ihren Namen eingeben!");
    document.Formular.nachname.focus();
    return false;
    }
    if(document.Formular.strasse.value == "")  {
    alert("Bitte Ihre Strasse eingeben!");
    document.Formular.strasse.focus();
    return false;
    }
    if(document.Formular.hausnummer.value == "")  {
    alert("Bitte Ihre Hausnummer eingeben!");
    document.Formular.hausnummer.focus();
    return false;
    }
    if(document.Formular.plz.value == "")  {
    alert("Bitte Ihre Postleitzahl eingeben!");
    document.Formular.plz.focus();
    return false;
    }
  if(document.Formular.Mail.value == "")  {
    alert("Bitte Ihre E-Mail-Adresse eingeben!");
    document.Formular.Mail.focus();
    return false;
    }
    if(document.Formular.Mail.value.indexOf('@') == -1)  {
    alert("Keine E-Mail-Adresse!");
    document.Formular.Mail.focus();
    return false;
    }
  }
</script>
-----------------------------------------------
Ich wäre Euch sehr dankbar wenn mir jemand helfen könnte.
LG Fuxl
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: reporter
Datum: 10.06.2009 23:47:42
Hallo,
1. Java != Javascript ! Java ist eine Objektorientierte Hochsprache, genauso wie C++, C#
2. CGI wird auf dem Server ausgeführt, während Javascript vom Clientbrowser ausgeführt wird.
3. Der Firefox hat als Werkzeug eine Fehlerkonsole. Da ohne eine Prüfung der Submit ausgeführt wird, deutet alles auf ein Javascriptfehler hin. Poste uns den Fehler...
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: fuxl
Datum: 12.06.2009 13:27:57
Hallo,
bin inzwischen auf etwas draufgekommen.
Wenn ich das Formular so schreibe:
-------------------------------------
<form name="Formular" action="http://www.adresse/cgi-bin/sendmail.cgi"
  method="post" onsubmit="return chkFormular()">
  <input type="hidden" name="return" value="http://www.adresse/kontakt_danke.html">
  <input type="hidden" name="delimiter" value=": ">
  <input type="hidden" name="subject" value="Anfrage-Info">
<pre>
<b> Betreff:</b><br><input type="text" size="34" name="Betreff">
<b>* Name - Vorname:</b><br><input type="text" size="34" name="User">
<b>* PLZ - Wohnort:</b><br><input type="text" size="34" name="Ort">
<b> Strasse - Nr:</b><br><input type="text" size="34" name="Strasse">
<b>* E-Mail:</b><br><input type="text" size="34" name="Mail">
<b> Text:</b><br><TEXTAREA NAME="DESCRIPTION" ROWS=5 COLS=26 wrap=virtual></TEXTAREA><br>
<center><input type="submit" value="Absenden"> <input type="reset" value="Abbrechen"> </center>
</pre>
</form>
---------------------------------------------------
..funktioniert alles einwandfrei.
Hatte und wollte aber das Formular mittels <table> erstellen. Bei dieser Variante wird die Abfrage ignoriert.
Warum weiß ich nicht?
Die <table> Verion sieht so aus:
----------------------------------------------
<form name"formular" action="http://adresse.net/cgi-bin/formmail.cgi" method="post" onSubmit="return chkFormular()">
<input type="hidden" name="return" value="http://www.adresse.net/kontakt_danke.html">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Anfrage-Info">
  <table width="200" border="0" cellspacing="0" cellpadding="0" align="center"><tr>
<td width="3%"> </td>
<td><b><font size="2" face="Arial, Helvetica">Vorname: </font></b><br><input type="text" size=26 name="vorname"></td>
    </tr>
    <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Name:</font></b><br><input type="text" size=26 name="nachname"></td>
    </tr>
      <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Straße:</font></b><br><input type="text" size=26 name="strasse"></td>
    </tr>
    <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Haus Nr.:</font></b><br><input type="text" size=26 name="hausnummer"></td>
    </tr>
    <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">PLZ: Wohnort</font></b><br><input type="text" size=26 name="plz_Ort"></td>
    </tr>
    <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Email:</font></b><br><input type="text" size=26 name="Mail"></td>
    </tr>
        <tr>
      <td width="3%"> </td>
      <td><b>Text:</b><br><TEXTAREA NAME="DESCRIPTION" ROWS=4 COLS=20 wrap=virtual></TEXTAREA>  </td>
    </tr>
    <tr>
      <td width="3%"> </td>
  <th colspan="2">
        <input type="submit" name="Button" value="Senden">
        <input type="reset" name="Button2" value="Zurück">
</th>
    </tr>
  </table>
</form>
--------------------------------------------------------
Woran liegt der Fehler, daß es mit einer Formatierung durch <table> nicht richtig funktioniert, die Abfrage ignoriert und sofort absendet?
Wenn du dazu eine Lösung oder Erklärung für einen Anfänger hättest, wäre ich Dir sehr dankbar.
LG Fuxl
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: xabbuh
Datum: 12.06.2009 16:01:07
Wie sieht denn die Funktion chkFormular() aus?
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: fuxl
Datum: 12.06.2009 19:41:54
> Wie sieht denn die Funktion chkFormular() aus?
Habe ich im ersten Beitrag gepostet
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: xabbuh
Datum: 13.06.2009 10:25:36
In deinem ersten Beispiel hat das Formular den Namen Formular, im zweiten den Namen formular.
Anzeige: Goneo - Du machst das Web!
Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
Re: CGI + Java kombinieren?
Autor: fuxl
Datum: 13.06.2009 14:15:14
> In deinem ersten Beispiel hat das Formular den
> Namen Formular, im zweiten den Namen formular.
Sorry für den Schreibfehler, weiß nicht wie der rein kam, aber in meinen beiden Beispielen ist die Schreibweise gleich.
"Formular"
Aber danke daß Du mich aufmerksam gemacht hast. Jetzt habe ich den Fehler gefunden.
Habe zwischen Script und Formular verschiedene Namen verwendet. Sehr doof, ich weiß!
.......................................
<script type="text/javascript">
function chkFormular () {
  if (document.Formular.***User***.value == "") {
    alert("Bitte Ihren Namen eingeben!");
    document.Formular.***User***.focus();
    return false;
...............................................
....<table width="200" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
      <td width="3%"> </td>
      <td><b><font size="2" face="Arial, Helvetica">Vorname: </font></b><br><input type="text" size=26 name="***vorname***"></td>
    </tr>
    <tr>
.................................................
..und das ein paar mal! Jetzt ist mir klar warum der Befehl
chkFormular()" im Sand verlief.
Danke nochmal xabbuh und LG