Weiterempfehlung per php
yako
- php
0 Mega0 yako
0 Der Martin0 yako
1 Christoph Jeschke0 EKKi0 Sven Rautenberg0 yako
hi zusammen,
hab hier im forum folgendes script gefunden für eine möglichkeit von website weiterempfehlung.
wenn ich es allerdings einbaue und das formular dazu kommt immer die folgende fehlermeldung vom server.
fehlermeldung: Parse error: syntax error, unexpected $end in /homepages/35/d255342246/htdocs/empfehlung.php on line 62
was hab ich übersehen bzw. falsch gemacht?
<?php
$adresse="http://www.meineseite.de";
$homepage="meineseite.de";
$text="Die Seite $homepage mit der Adresse $adresse ist Ihnen von $sender_name empfohlen worden.\n$sender_name hat folgenden Grund der Weiterempfehlung angegeben: $grund";
$abschicken = $_POST['abschicken'
;
$sender_mail = $_POST['sender_mail'];
$sender_name = $_POST['sender_name'];
$empfaenger_mail = $_POST['empfaenger_mail'];
if(isset($abschicken))
{
if(empty($empfaenger_mail) || empty($sender_mail) || empty($sender_name) || empty($grund))
{
echo "<p><b>Die Eingabe ist leer oder ungültig</b><p>";
}
else
{
mail($empfaenger_mail, "Empfehlung der Webseite $homepage durch $sender_name", $text, "From: $sender_mail");
echo "<p>Vielen Dank, daß Sie meine Webseite weiterempfohlen haben. Die Daten wurden erfolgreich versendet.</p>";
}
}
else
{
?>
<form name="formular" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>
<input name="sender_name" type="text" id="sender_name" value="sender name" />
</label>
<p>
<label>
<input name="sender_mail" type="text" id="sender_mail" value="sender mail" />
</label>
</p>
<p>
<label>
<input name="empfaenger_mail" type="text" id="empfaenger_mail" value="empfaenger mail" />
</label>
</p>
<p>
<label>
<textarea name="$grund" id="$grund" cols="45" rows="5"></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="abschicken" id="abschicken" value="abschicken" />
</label>
</p>
</form>
viele grüße
yako
was hab ich übersehen bzw. falsch gemacht?
Du sagst uns nicht, welche Zeile die 62 ist. Der Fehler dürfte aber in einer der Zeilen davor zu finden swein. Vermutlich ein vergessener ; o.ä.
in der besagten zeile ist das html zu ende... .
</form>
</body>
</html>
dann kommt nix mehr.
:(
was hab ich übersehen bzw. falsch gemacht?
Du sagst uns nicht, welche Zeile die 62 ist. Der Fehler dürfte aber in einer der Zeilen davor zu finden swein. Vermutlich ein vergessener ; o.ä.
Hallo,
fehlermeldung: Parse error: syntax error, unexpected $end in /homepages/35/d255342246/htdocs/empfehlung.php on line 62
das deutet darauf hin, dass irgendwas fehlt, was syntaktisch vorhanden sein müsste. Meistens ist es eine vergessene schließende Klammer - so auch in deinem Fall.
else
{
?>
<form name="formular" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Diesem Block fehlt die schließende geschweifte Klammer.
Übrigens sieht man solche Fehler wesentlich leichter, wenn man Anweisungsblöcke entsprechend einrückt. Im HTML-Code tust du das - warum nicht auch im PHP-Code?
Ciao,
Martin
Hi,
super,vielen herlichen dank martin. jetzt funktioniert das formular, fast. (hast recht ich sollte die anweisungsblöcke besser formatieren)
beim testen ist mir aufgefallen, das die meldung, das die daten versand werden trotzdem kommt, obwohl nicht alle pflichtfelder ausgefüllt wurden sind... .
habt ihr noch ne idee an was das liegen könnte?
lg
yako
Hallo,
fehlermeldung: Parse error: syntax error, unexpected $end in /homepages/35/d255342246/htdocs/empfehlung.php on line 62
das deutet darauf hin, dass irgendwas fehlt, was syntaktisch vorhanden sein müsste. Meistens ist es eine vergessene schließende Klammer - so auch in deinem Fall.
else
{
?>
<form name="formular" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">Diesem Block fehlt die schließende geschweifte Klammer.
Übrigens sieht man solche Fehler wesentlich leichter, wenn man Anweisungsblöcke entsprechend einrückt. Im HTML-Code tust du das - warum nicht auch im PHP-Code?Ciao,
Martin
Guten Tag,
> <p>
> <label>
> <textarea name="$grund" id="$grund" cols="45" rows="5"></textarea>
> </label>
> </p>
Da sollten keine Dollarzeichen vor den Bezeichnern stehen.
Du solltest übrigens dringend dein Formular gegen Bots schützen. Du bietest einen offenen Webmailer an, der sehr gut zum Versand von Spam missbraucht werden kann. Du solltest den von dir hier notierten Code auf KEINEN FALL tatsächlich verwenden.
Unter gewissen Umständen ist dein Formular auch anfällig für XSS (Cross Site Scripting).
Gruß
Christoph Jeschke
Mahlzeit yako,
hab hier im forum folgendes script gefunden für eine möglichkeit von website weiterempfehlung.
wenn ich es allerdings einbaue
Lass mich raten: verstanden, was es tut, hast Du allerdings nicht?
$adresse="http://www.meineseite.de";
$homepage="meineseite.de";
$text="Die Seite $homepage mit der Adresse $adresse ist Ihnen von $sender_name empfohlen worden.\n$sender_name hat folgenden Grund der Weiterempfehlung angegeben: $grund";
Was erwartest Du in dieser Variable? Sollen an den Stellen, wo Du Variablen integriert hast, die Inhalte dieser Variablen stehen? Wäre es dazu nicht sinnvoll, diese Variablen VORHER mit Inhalt zu füllen?
$abschicken = $_POST['abschicken'];
$sender_mail = $_POST['sender_mail'];
$sender_name = $_POST['sender_name'];
$empfaenger_mail = $_POST['empfaenger_mail'];
Dieses Umkopieren ist absolut unnötig und ist eine potentielle Sicherheitslücke, da Du im späteren Verlauf des Skripts nicht mehr unbedingt weißt, woher der Wert einer Variablen stammt.
mail($empfaenger_mail, "Empfehlung der Webseite $homepage durch $sender_name", $text, "From: $sender_mail");
echo "<p>Vielen Dank, daß Sie meine Webseite weiterempfohlen haben. Die Daten wurden erfolgreich versendet.</p>";
Das ist u.U. eine Lüge - Du wertest die Rückgabe der Funktion mail() schließlich überhaupt nicht aus und weißt daher nicht, ob das Versenden geklappt hat.
<form name="formular" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Die Verwendung von PHP_SELF ist u.U. unsicher - informiere Dich dazu im Forumsarchiv.
<input name="sender_name" type="text" id="sender_name" value="sender name" />
Es ist eine gute Idee, ein Affenformular zu verwenden. Es ist allerdings keine gute Idee, die vom Benutzer bereits ausgefüllten Felder nicht wieder mit den eingegebenen Werten zu füllen, wenn noch eine Angabe fehlt oder fehlerhaft ist - so muss der Benutzer u.U. alles mehrfach eingeben. Du solltest also die Inhalte der entsprechenden Variablen als Wert in die Eingabefelder schreiben.
<textarea name="$grund" id="$grund" cols="45" rows="5"></textarea>
Was erwartest Du hier zu sehen? Die PHP-Variable $grund?
MfG,
EKKi
Moin!
hab hier im forum folgendes script gefunden für eine möglichkeit von website weiterempfehlung.
was hab ich übersehen bzw. falsch gemacht?
Du setzt dich grundsätzlich einer erhöhten Abmahngefahr durch unverlangt versendete Werbemails aus!
Das Skript tut (sofern es denn funktionieren würde) genau das, was drinsteht: Es sendet an die angegebene Mailadresse eine Mail, in dem zu großen Teilen der Text drinsteht, den der Formularausfüller mitgeliefert hat.
Niemand kann dir als Betreiber garantieren, dass die Formularausfüller ausschließlich nette Absichten haben. Sie können dein Formular millionenfach automatisiert ausfüllen und damit entweder einer einzigen Mailadresse das Postfach zumüllen, oder der gesamten Welt ihre schlaue Werbebotschaft übermitteln.
In beiden Fällen hast DU die Infrastruktur für diese Handlung bereitgestellt und bist deshalb mitverantwortlich. Bekanntlich kosten Abmahnungen richtig viel Geld, es reicht also schon, wenn ein einziger Scherzkeks über deine Funktion einem abmahnfreudigen Anwalt deine Seite empfiehlt, und dabei einfach falsche Absenderangaben benutzt.
Und noch aus zwei anderen Gründen ist diese Funktion höchst zweifelhaft:
1. Webnutzer gehen in zunehmendem Maße dazu über, nicht mehr einfach überall ihre Mailadressen einzugeben, um irgendeinen fragwürdigen Sondernutzen zu haben, den sie auch auf einfache Weise ohne Informationspreisgabe kriegen können. Ich als Empfänger solcher Empfehlungsbotschaften bin jedenfalls alles andere als glücklich, dass durch irgendeinen Idioten, der mir eine blöde Webseite empfehlen will, meine Mailadresse POTENTIELL in einer großen Datenbank landet, die zum Spammen benutzt wird. Denn das, was du in deinem Skript mit den Daten machst, kann man ja nicht kontrollieren.
2. Außerdem ist die Formulierung dieser Empfehlungsmail extrem eklig und holperig. Und mir will auch kein guter Mechanismus einfallen, der dazu führt, dass der Empfehlende vollkommen frei einen Text formulieren kann, in dem nicht aus Versehen die wichtigsten Infos fehlen, und der 100% mit den vorgefertigten Formulierungen der Mail zusammenpasst. Allein schon die Anrede: Ist der Empfehler mit dem Empfänger per "Du" oder per "Sie"? Wie toll liest es sich, wenn der Rahmentext das förmlichere "Sie" nutzt, und der freie Text dann duzt? Wie toll kommt es umgekehrt an, wenn der Rahmentext duzt, die zwei Kommunikationspartner sich aber siezen?
Fassen wir zusammen: Die Methode
1. ist leicht zum Spammen zu mißbrauchen
2. setzt dich einer hohen Abmahngefahr aus
3. wird von Nutzern eher gemieden
4. liefert nur ein sehr schlechtes Textergebnis und Nutzungserlebnis.
Deshalb meine Empfehlung: Mit einem Mailto-Link ohne Mailadresse, aber mit vorgefertigtem Betreff und Mailtext läßt sich so eine Empfehlung viel einfacher und besser realisieren.
<a href="mailto:?subject=Seitenempfehlung&body=Hallo,%20hier%20eine%20Empfehlung...">Seite empfehlen</a>
Nachteile:
1. Das &-Zeichen im Link muss leider nach meinen Erfahrungswerten uncodiert bleiben, und darf kein & werden, auch wenn der Validator darüber meckert.
2. User ohne konfigurierten Mailclient können den Link nicht benutzen. User mit merkwürdigen Mailclients wird die Feldvorbelegung nicht in die zu schreibende Mail übertragen.
Vorteile:
1. Der User hat volle Kontrolle über die zu schreibende Mail und den Verbleib der Adressdaten.
2. Er hat die komplette Verantwortung für den Mailversand. Im Mißbrauchsfall kriegt erstmal ER die Abmahnung.
3. Die Lösung funktioniert ohne Skripteinfluss mit eigentlich allen Browsern und sehr vielen Mailclients (nur uraltes Microsoft-Zeugs macht nach meiner Erinnerung Probleme).
- Sven Rautenberg
Hallo Herzlichen Dank für Eure ausführlichen Kommentare.
die möglichkeit von einem mailto link find ich als alternative ganz okay, allerdings für user die keinen emailclient auf dem rechner haben schlecht.
gebe es noch eine dritte möglichkeit die weder user aussperrt wie bei mailto, oder halt missbraucht wird?
grüße
yako
Moin!
die möglichkeit von einem mailto link find ich als alternative ganz okay, allerdings für user die keinen emailclient auf dem rechner haben schlecht.
Diese User werden es hinkriegen, ihren Freunden, Bekannten und Feinden selbständig per Mail und anderen Kommunikationsmethoden von deiner Site zu berichten.
gebe es noch eine dritte möglichkeit die weder user aussperrt wie bei mailto, oder halt missbraucht wird?
Es gibt nur zwei Methoden: Entweder du schickst die Mail raus, oder der Besucher tut es selbst. Wenn du die Mail rausschickst, bist auch du für Mißbrauch verantwortlich.
Abgesehen davon werden solche Mailempfehlungslinks in ihrer Wirkung überschätzt.
- Sven Rautenberg