unterfranke
Goto Top

Einfaches PHP Formular das nur ein Feld via E-Mail sendet

Ich hatte schon einiges zum Thema gesucht. Leider ist es an diversen Dingen gescheitert. Zum Beispiel, dass ich die Klasse des Senden Buttons nirgends aus den Tutorials und Online-Beispielen erfolgreich unterbringen kann. Ist das überhaupt möglich?

Hallo,

ich habe folgendes Problem. Eine PHP index Datei mit diesem Code:

<form action="" id="contacts-form">  
	<fieldset>
	<input type="email" name="email" id="email" value="E-Mail Adresse eingeben..." style="width:73%;float:left;background:#fff;border:1px solid #ccc;border-top:1px solid #bbb;"/>  
	<a class="newsletter" href="#">senden</a>  
	</fieldset>
</form>

Was ich nun eine Weile probiere ist folgendes:
- Prüfung der E-Mail Adresse auf Format
- Absenden der eingegebenen E-Mail Adresse an eine andere.
- Keine Weiterleitung auf eine "Vielen Dank" Seite (einfach reload)

Fragen kostet nichts und sollte ich etwas im Forum/Google übersehen haben bitte den Link schicken. Würde mich aber sehr freuen, wenn es mir vielleicht jemand "vorcoden" würde - habe lange genug probiert und gesucht face-wink

THX 4 reading.

Content-Key: 204452

Url: https://administrator.de/contentid/204452

Printed on: April 23, 2024 at 13:04 o'clock

Member: nxclass
nxclass Apr 05, 2013 at 06:54:13 (UTC)
Goto Top
die Klasse des Senden Buttons
... es handelt sich nicht um einen Button - es ist nur ein Link. Das class Attribut des HTML Elements kann zu Formatierungs- (CSS) oder Javascipt (JS) Zwecken benutzt werden.
(ich sehe leider nichts davon in deinem Beispiel Code)
Diese Tatsache und:
<form action="" id="contacts-form">
... lässt mich vermuten, dass der Formular Inhalt mit Javascript ausgelesen und versendet wird. - bitte suche in deinem JS code nach dem Attribut newsletter - dann findest Du ggf. den Code dafür.
Member: Jochem
Jochem Apr 05, 2013 at 07:05:45 (UTC)
Goto Top
Moin,

Oh, ist denn schon wieder Freitag?
Ich befürchte, das Ding landet ganz schnell im never-comeback-container unseres "Nagetieres".

ich habe folgendes Problem.

Glaub mir, Du hast ganz andere Probleme.

Für die Aneinandereihung von Buchstaben, Zahlen und Sonderzeichen (Code bzw. Script kann man das wirklich nicht nennen) fehlen Dir sämtliche Grundlagen. Mach Dich erst mal schlau, wie ein Formular in HTML aufgebaut wird und wie die Syntax dazu aussehen muß. Dann kannst Du versuchen, die Eingabe an ein PHP-Script zu übergeben und dort weiter zu verarbeiten.
Kurz und gut: RTFM, z.Bsp. http://de.selfhtml.org.

Gruß J face-smile chem
Member: Unterfranke
Unterfranke Apr 05, 2013 updated at 07:36:11 (UTC)
Goto Top
Zitat von @nxclass:
> die Klasse des Senden Buttons
... es handelt sich nicht um einen Button - es ist nur ein Link. Das class Attribut des HTML Elements kann zu Formatierungs-
(CSS) oder Javascipt (JS) Zwecken benutzt werden.
(ich sehe leider nichts davon in deinem Beispiel Code)
Diese Tatsache und:
> <form action="" id="contacts-form">
... lässt mich vermuten, dass der Formular Inhalt mit Javascript ausgelesen und versendet wird. - bitte suche in deinem JS
code nach dem Attribut newsletter - dann findest Du ggf. den Code dafür.

Leider existiert nicht mehr in dem Template das ich gefunden hatte. Ich versuch es schon die ganze Zeit mit PHP und JS. Ohne Erfolg mit der Klasse und dem Senden Button oder dem Rest...

Es macht vermutlich wenig Sinn, sämtliche Varianten die ich probiert habe hier zu posten. Mir ging es primär darum, nicht 256 Zeilen Code zu produzieren. Vielleicht bin ich das Thema auch falsch angegangen. Kostenlose, zielführende Hilfe gab es wohl nur früher...
Member: nxclass
nxclass Apr 05, 2013 updated at 09:29:05 (UTC)
Goto Top
Kostenlose, zielführende Hilfe gab es wohl nur früher.
diese gibt es jetzt auch noch - sogar mehr als man braucht: siehe Internet

... das Problem ist nur leider dass es doch nicht sooo simpel ist und wir nicht genau wissen wie der rest deiner Anwendung aussieht.

ich hatte etwas lange weile: 204452.php:
<!DOCTYPE html>
<html>
    <head>
        <style>
input#email {
  width:73%;
  float:left;
  background:#fff;
  border:1px solid #ccc;
  border-top:1px solid #bbb;                
}
        </style>
        <script>
window.onload = function() {
    document.getElementById('contacts-form').onsubmit = function() {  
        if (this.elements['email'].value == '') {  
            alert('Bitte gib eine E-Mail Adresse ein');  
            return false;
        }
        return true;
    }
}
        </script>        
    </head>
    <body>
<?php
if (isset($_POST['actionSend']) && !empty($_POST['actionSend']) && isset($_POST['email'])) {  
    $to = 'email@domain.tld';  
    $subject = 'subject';  
    $message = 'E-Mail: '.$_POST['email'];  
    mail($to, $subject, $message);
    ?><div>E-Mail gesendet</div><?php
}
?>
        <form method="post" action="" id="contacts-form">  
            <fieldset>
                <input type="email" name="email" id="email" value="" />  
                <input type="submit" class="newsletter" name="actionSend" value="Senden" />  
            </fieldset>
        </form>
    </body>
</html>
... ich kenne das von meinen Kindern, diese möchten auch immer gleich eine fertige Lösung und dass sofort. Nur ich glaube das ist nicht der Sinn dieses Portals - und bringt Dir auch nicht viel.
Member: Jochem
Jochem Apr 05, 2013 at 09:00:06 (UTC)
Goto Top
Moin,

vielleicht magst Du ja doch noch einmal diesen Text lesen:

Das, was Du gepostet hast, ist (für mich) zunächst mal nur HTML-Text. Und der muß als solcher bestimmten Regeln folgen, als da wären:

<form action="" id="contacts-form">
bei "form action" sollte schon irgendwas passieren, damit irgendwas übergeben werden kann
"id" ist kein gültiges Attribut zu "form"

<fieldset>
notwendig, wenn mehrere Eingabefelder vorhanden sind, aber bei einem?

<input type="email" name="email" id="email" value="E-Mail Adresse eingeben..."
"email" ist kein gültiger Wert für "input type"
"id" ist kein gültiges Attribut zu "input"

style="width:73%;float:left;background:#fff;border:1px solid #ccc;border-top:1px solid #bbb;"/>
das sind alles keine gültigen Attribute zu "input"

<a class="newsletter" href="#">senden</a>
die class "newsletter" ist nicht definiert (jedenfalls nicht im vorliegenden Code-Schnipsel)
"#" als Ziel von "a href" definiert einen Verweis auf sich selbst


Ergo: In diesem Stückchen Code passiert aus HTML-Sicht nichts, da es kein valides HTML ist.

So, wie ich das bisher verstanden habe, möchtest Du ein Formular ausgeben, in welches eine E-Mail-Adresse eingegeben werden kann, die dann über ein PHP-Script (oder per Javascript) auf formal richtigen Inhalt geprüft wird.
Damit das Formular irgendwas an irgendwen "übergeben" kann, muß zunächst mal definiert werden, wie etwas übergeben werden soll und an wen, im Normalfall per "GET" oder "POST" an z. Bsp. ein PHP-Script.
Danach muß aus dem Formular auch tatsächlich etwas übergeben werden, was im Normalfall über einen "Submit-Button" gelöst wird.
Soweit die reine HTML-Seite.

Wie jetzt Dein PHP-Script aussieht, in welches (vermutlich) der HTML-Code eingebettet ist, oder wie Dein Javascript-Code aussieht und welche Definitionen dort getroffen worden sind, darüber schweigst Du Dich aus.

Wie man es lösen könnte (mit JS) hab ich auf die Schnelle hier gefunden

http://www.html-world.de/program/js_e_5.php

Gruß J face-smile chem
Member: Unterfranke
Unterfranke Apr 05, 2013 at 22:01:03 (UTC)
Goto Top
VIELEN DANK für die Hilfe!!