• 18.07.2025, 23:01
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

Jogibär

God

HTML Formular

Donnerstag, 13. Mai 2010, 12:29

Hi,
ich möchte ein Kontaktforumlar auf meiner hp einrichten und kenne aber nur das "mailto" Gedöns was ja nicht mehr zeitgemäß und sehr unzuverlässig ist. Mir ist es wichtig dass meine E-Mail Adresse nicht sichtbar ist, auch nicht im Quellcode, da habe ich von der cgi Methode mittels Perl gehört. Nun habe ich aber keinen blassen Schimmer von Perl und versucht mich einzulesen auf selfhtml, das brachte aber bisher nicht besonders viel.
Was brauche ich alles außer Webspace?

Bisheriger Code cgi:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;

print $cgi->header(-type    =>'text/html',
                   -expires =>'+1h'),
      $cgi->start_html(-title  =>'Formularverarbeitung',
                       -author =>'e-mail adresse',
                       -base   =>'true',
                       -target =>'_blank',
                       -BGCOLOR=>'#FFFFCC',
                       -TEXT   =>'#000000',
                       -LINK   =>'red',
                       -VLINK  =>'blue',
                       -ALINK  =>'black'),
      $cgi->end_html();


Kontaktformular:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<p style="width: 489px;"><span
 style="font-weight: bold;" class="style4">
Kontaktformular</span><br>
</p>
<span style="font-weight: bold;"><br>
</span>
<form action="">
  <table border="0" cellpadding="3" cellspacing="0">
    <tbody>
      <tr>
        <td style="color: rgb(192, 192, 192); font-weight: normal;"
 align="right">Name:</td>
        <td><input name="Vorname" class="Feld"
 size="30" maxlength="30" type="text"></td>
      </tr>
      <tr>
        <td style="color: rgb(192, 192, 192); font-weight: normal;"
 align="right">eMail:</td>
        <td><input name="eMail" class="Feld"
 size="30" maxlength="30" type="text"></td>
      </tr>
      <tr>
        <td style="color: rgb(192, 192, 192); font-weight: normal;"
 align="right">Website:</td>
        <td><input name="Website" class="Feld"
 size="30" maxlength="30" type="text"></td>
      </tr>
      <tr>
        <td style="color: rgb(192, 192, 192); font-weight: normal;"
 align="right" valign="top">Mitteilung:</td>
        <td><textarea name="Text" class="Bereich"
 rows="10" cols="50"></textarea></td>
      </tr>
      <tr>
        <td style="color: rgb(192, 192, 192); font-weight: normal;"
 align="right">Formular:</td>
        <td> <input class="Button" value="Absenden"
 type="submit"><input class="Button"
 value="Abbrechen" type="reset"></td>
      </tr>
    </tbody>
  </table>
</form>

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Jogibär« (14. Mai 2010, 18:53)

elbarto`

God

Donnerstag, 13. Mai 2010, 12:33

auch wenn ich php nicht mag: benutz php :P
da findest du einfach ettliche fertige sachen: http://www.google.de/#hl=de&ei=LNXrS8eVO…79eba502a56f580

giantnine

Junior Member

Donnerstag, 13. Mai 2010, 16:21

Erstmal brauchst du nicht nur einfachen Webspace. Du brauchst einen Server, der es erlaubt, dass du Skripte ausführen darfst. Ich gehe mal einfach davon aus, dass du das hast.

Eine Mail verschickst du mit Perl so:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
my $sendmail = "/usr/lib/sendmail -t";
my $subject = "Betreff";
my $content = "Text";
my $send_to = "mail\@domain.de";
my $from = "from\@domain.de";
open(MAIL, "|$sendmail") or die "Cannot open $sendmail: $!";
print MAIL "To: $send_to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$content\n";
close(MAIL);

Das funktioniert, wenn du einen Linux/Unix-basierten Server mit sendmail-Modul hast. Sollte das Modul nicht in "/usr/lib/" liegen, sollte dir dein Hoster sagen können, wo das Modul liegt.

Dann verweist du in deinem Formular auf das Skript:

Quellcode

1
<form action="script.cgi" method="post">


An die Formulardaten kommst du so:

Quellcode

1
2
3
4
5
6
7
read(STDIN, my $Daten, $ENV{'CONTENT_LENGTH'});
my @Formularfelder = split(/&/, $Daten);
my %Formular;
foreach $Feld (@Formularfelder) {
(my $Name, my $Wert) = split(/=/, $Feld);
$Formular{$Name} = $Wert;
}


Danach kannst du z.B. mit

Quellcode

1
$Formular{Vorname}

auf dein Formularfeld 'Vorname' zugreifen und damit machen, was du gerne möchtest.

Ist jetzt nur ein ganz flotter Crash-Kurs...

Jogibär

God

Donnerstag, 13. Mai 2010, 16:51

super danke! :)

Jogibär

God

Donnerstag, 13. Mai 2010, 17:23

Also irgendwie bekomm ich noch nicht mal die Kontaktformulartabelle richtig hin, perl erst mal außen vor gelassen.....

http://www.jogibaers-hoehle.de/contact.html

Jeder Browser stellt es anders da :wacko:

hobbes_dmS

Moderator

Donnerstag, 13. Mai 2010, 17:32

Jeder Browser stellt es anders da :wacko:


ich habe folgendes im ausgelieferten Source:

Zitat

<?php // wenn das Formular übermittelt wurde
if(isset($_POST['abschicken'])){
while(list($feld,$wert)=each($HTTP_POST_VARS)){
// übermittelte Inhalte "entschärfen"
$wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
$$feld=$wert;
// die übermittelten Variablen werden zum "Text der Email" zusammengefasst
if($feld!="abschicken"){
$mailnachricht.=ucfirst($feld).": $wert\n";
}
}
$mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s");
// Überprüfen ob alle Pflichtfelder gefüllt sind
empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false; empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false; empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false; // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
if(!empty($err)) {
echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
foreach($err as $fehler){
echo $fehler;
} ?>
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Max_Payne

God

Donnerstag, 13. Mai 2010, 17:35

Hi,

der Y0Gi hat da auch mal was gemacht.


--> http://homework.nwsnet.de/products/2aa9_basic-form-mailer


Gruß Max Payne

giantnine

Junior Member

Donnerstag, 13. Mai 2010, 18:59

In deiner HTML-Seite sehe ich PHP-Code... Also hat der Server den Code nicht ausgeführt, sondern an den Browser geschickt.
Mach mal aus deiner .html-Datei eine .php Datei, meistens reicht das schon. Wenn nicht, ändere die CHMOD-Rechte der Datei auf 711 oder 755.

Jogibär

God

Donnerstag, 13. Mai 2010, 21:18

Vielen dank für die Hilfe! :)

So, die Basis hab ich jetzt...hoffentlich....mal sehen ob ich da den php code reinbasteln kann... :wacko:

http://www.jogibaers-hoehle.de/contact.html

btw. der Editor von NVU treibt mich in den Wahnsinn, zum Glück gibt es Notepad++.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jogibär« (13. Mai 2010, 21:20)

Jogibär

God

Freitag, 14. Mai 2010, 09:44

Irgendwie bekomm ich das nicht richtig hin...der will den Code nicht verarbeiten, und die Variablen erkennt er auch nicht... http://www.jogibaers-hoehle.de/contact.html

Und wenn ich den Dateityp zu php änder, sagt er immer beim Aufruf der URL: "ZUGRIFF NICHT ERLAUBT
Die angeforderte Seite darf nicht angezeigt werden." ?(

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Jogibär« (14. Mai 2010, 09:48)

giantnine

Junior Member

Freitag, 14. Mai 2010, 11:29

Hast du die CHMOD-Rechte gesetzt? Du musst die Rechte so setzen, dass die Öffentlichkeit das Recht hat, die Ausführung des Codes zu veranlassen. Das erreichst du wie oben schon genannt mit den Rechten 711 oder 755. Einstellen kannst du das mit dem FTP-Tool, mit dem du die Dateien auf den Server lädst. Also bei Filezilla z.B. mit einem Rechtsklick auf die Datei auf dem Server, Menüpunkt "Dateiberechtigungen".

Jogibär

God

Freitag, 14. Mai 2010, 12:49

Danke, also bei 711 wirds noch schlimmer, da wird sogar der Zugriff auf die html contact datei verwehrt, wenn ich 755 setze, sowohl php datei als auch html datei, kommt bei der html datei die gleiche kryptologie wie mit den Standardrechten, die php contact datei lässt das beides völlig kalt, wie will nie ausgeführt werden. :wacko:

Hummerman

God

Freitag, 14. Mai 2010, 13:41

Dein Webspace hat scheinbar keine PHP-Unterstützung.

giantnine

Junior Member

Freitag, 14. Mai 2010, 15:51

Dein Webspace hat scheinbar keine PHP-Unterstützung.
Das würde ich aus der Schilderung heraus auch mal vermuten. Guck mal in deinen Vertrag, was genau du abgeschlossen hast. Es gibt auch Hoster, die Programmcode-Ausführung nur erlauben, wenn die Code-Dateien in speziellen Ordnern liegen.

Jogibär

God

Freitag, 14. Mai 2010, 16:14

Verdammt, habe 1&1 webspace, also inklusivdomain. Laut FAQ gilt das hier z.B. nur für Webhosting 5.0, also anscheinend nur für kostenpflichtigen webspace....in den Vertragsleistungen kann ich nichts zu php finden. -.- http://hilfe-center.1und1.de/hosting/scr…nken/php/1.html

Dann muss ich wohl das von 1&1 angebotene cgi html ding versuchen reinzubasteln....mhhhh.

Hummerman

God

Freitag, 14. Mai 2010, 16:46

Das 1und1 Hilfecenter scheint nicht unbedingt sehr aktuell zu sein:

Zitat

Mit welcher Technik sind Ihre Server ausgestattet?
Unsere Server sind Dual Pentium III 500 -Systeme mit Linux-Betriebssystem und Apache-Server. Alle Rechner besitzen zum Schutz Ihrer Daten RAID5-Systeme.


http://hilfe-center.1und1.de/access/11_s…nzentrum/2.html

Jogibär

God

Freitag, 14. Mai 2010, 17:55

Hab es jetzt hinbekommen, funktioniert auch! :D wehe ihr spammt mich jetzt zu ^^

Nun ist aber ein anderes Problem mit der Darstellung aufgetreten, seht selbst:



Ich finde einfach nicht die Ursache woran es liegt.....greifen ja auf die style.css datei zu, schrift ist trotzdem anders.....fuscht mir da irgendein anderer style dazwischen.... ?(

giantnine

Junior Member

Freitag, 14. Mai 2010, 18:06

Du hast in deiner contact.html stehen

Quellcode

1
body, table, tr, td, li, a {color:#5B8FBE;font-family:Arial,Helvetica,sans-serif;font-size:12px;}


Das vererbt sich auf deine Linkliste, weil Styles aus dem aktuellen Dokument die Styles aus einem externen Stylesheet überschreiben.

Y0Gi

God

Freitag, 14. Mai 2010, 18:22

Was genau willst du denn mit CSS formatieren? Wenn du für die entsprechenden HTML-Bereiche IDs (`#navigation`, `#sidebar` o.ä.) oder Klassen (`.section`, `.content-block` o.ä.) vergibst, kannst du deine Formatierungen auch auf eben diese Bereiche beschränken anstatt sie global gelten zu lassen (z.B. `#sidebar ul { border: #aaaaaa solid 1px; }` = unsortierte Listen nur in der Sidebar so einrahmen).

Jogibär

God

Freitag, 14. Mai 2010, 18:41

@giantnine: Ah ja danke, aber das war nicht das einzige, habe bemerkt dass ganz viel von 1&1 übernommente styles völlig unnötig waren, wie Yogi mir glaub ich vermitteln wollte.....?!? ^^ jetzt passt es!
GENAU so sollte es aussehen! *freu*
http://www.jogibaers-hoehle.de/contact.html

Vielen Dank für die Hilfe! :love:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jogibär« (14. Mai 2010, 18:45)

Ähnliche Themen