Kontaktformular von Werner Zenk

PHP, CSS und JavaScript lernen. Anwendungen für Webseiten
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Hallo,

ich habe mit Hilfe des Generators ein Kontaktformular erstellt, zu sehen unter:

https://www.meinlangengrassau.de/kontakt.html

Seite bitte nach unten scrollen, da sich auf dieser Seite zunächst auch noch das Kontaktformular von Mobirise befindet.

Das Formular habe ich in einen iframe eingebunden.

Das Versenden dieses Formulars funktioniert (landet leider im Spam-Ordner, muss ich noch einstellen)
Der Absender des Formulars erhält ebenfalls eine Mail (Kopie des Formulars)

Nun habe ich folgende Probleme:

1) Obwohl ich am Generator die Schriftfarbe "weiss" eingestellt habe, blieb sie leider schwarz
2) Das Versenden einer Datei (Bild mit ca. 125 kb) sowohl .png als auch .jpg funktioniert nicht, ich erhalte die Meldung: "Eingabefehler"
3) Nach dem erfolgten Versand, wollte ich wieder auf der Seite Kontakt landen, das funktioniert nicht

Code: Alles auswählen

// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "kontakt.html"; // Relativer Pfad, ausgehend vom Formular.
Hier der gesamte Code:

Code: Alles auswählen

<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title></title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <style>
  body, textarea {
   font-family: Verdana, Sans-Serif;
   font-size: 1rem;
  }

  span.pflichtfeld {
   font-size: 0.90rem;
   color: yellow;
  }

  span.hilfetext {
   font-family: Arial, Tahoma, Sans-Serif;
   font-size: 0.80rem;
   font-style: Oblique;
   color: #ffffff;
  }

  </style>

 </head>
<body>

<?php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8

   Erstellt mit dem Formular Generator (20.12.2023) - 
   https://www.mobirise-tutorials.com/Formular-Generator/

   Bitte testen Sie das Formular ausführlich und
   beachten Sie die Hinweise im Quelltext!
*/

// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)

// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "kontakt.html"; // Relativer Pfad, ausgehend vom Formular.

// Dateien hochladen
// Verzeichnis
$Verzeichnis = "uploads"; // Benötigt Schreibrechte!

// Die Größe (einer einzelnen) Datei die maximal
// hoch geladen werden darf (in Bytes eintragen).
$Maxgroesse = 2097152; // 1024 Bytes = 1 KB (1048576 Bytes = 1 MB) 
// Umrechner: https://werner-zenk.de/tools/umrechner.php

// Anzahl der maximalen Dateien die hoch geladen werden dürfen.
$Maxdateien = 1;

// Angabe des Datentypen (Mimetypen) der hoch geladen werden darf.
// Mimetypen: https://werner-zenk.de/php/mimetypen.php
$Datentyp = array(
"png" => "image/png",
"jpg" => "image/jpeg",
"jpg" => "image/pjpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
);

// Ausgabe der Datentypen und Dateigröße formatieren
$Dtype = implode(", ", array_unique(array_keys($Datentyp)));
$Dsize = ($Maxgroesse >= 1048576) ? number_format(($Maxgroesse / 1024 / 1024), 1, ",", ".") .
 " MB" : number_format(($Maxgroesse / 1024), 1, ",", ".") . " KB";

$name = isset($_POST["name"]) ? htmlspecialchars(trim($_POST["name"])) : ""; // Name
$email = isset($_POST["email"]) ? htmlspecialchars(trim($_POST["email"])) : ""; // E-Mail
$telefon = isset($_POST["telefon"]) ? htmlspecialchars(trim($_POST["telefon"])) : ""; // Telefon
$betreff = isset($_POST["betreff"]) ? htmlspecialchars(trim($_POST["betreff"])) : ""; // Betreff
$nachricht = isset($_POST["nachricht"]) ? htmlspecialchars(trim($_POST["nachricht"])) : ""; // Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["File"=>"", "name"=>"", "email"=>"", "betreff"=>""];
if (isset($_POST["submit"])) {
 $Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["name"] .= !preg_match("/^[a-zA-Z äöüßáéíóú]/i", $_POST["name"]) ? " Geben Sie nur Buchstaben und Leerzeichen ein!" : "";
 $Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["betreff"] = strlen($_POST["betreff"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["betreff"] .= !preg_match("/^[a-zA-Z äöüßáéíóú]/i", $_POST["betreff"]) ? " Geben Sie nur Buchstaben und Leerzeichen ein!" : "";

 // Datei hochladen
 $Files = "";
 $Filename = "";
 for ($I = 0; $I < count($_FILES["File"]["name"]); $I++) {
  if ($I > $Maxdateien) break;
  if ($_FILES["File"]["name"][$I] != "" && $_FILES["File"]["error"][$I] === UPLOAD_ERR_OK) {
   $Array = explode(".", basename($_FILES["File"]["name"][$I]));
   $Filename = substr(preg_replace("/[^a-z0-9_-]/", "", strtolower(strtr($Array[0], "äöüß", "aous"))), 0, 45);
   if (file_exists($Verzeichnis . "/" . $Filename . "." . strtolower(end($Array)))) {
    $Filename .=  "_" . rand(1, 9999);
   }
   $Filename .= "." . strtolower(end($Array));
   if (in_array($_FILES["File"]["type"][$I], $Datentyp)) {
    if ($_FILES["File"]["size"][$I] <= $Maxgroesse) {
     move_uploaded_file($_FILES["File"]["tmp_name"][$I], $Verzeichnis . "/" . $Filename);
     if (file_exists($Verzeichnis . "/" . $Filename)) {
     $Files .= "http://" . $_SERVER["SERVER_NAME"] . "/" . $Verzeichnis . "/" . $Filename . ", ";
     }
     else {
      $Fehler["File"] .= "<br>Beim hochladen der Datei &bdquo;" . $Filename . "&rdquo; ist leider ein Fehler aufgetreten!";
     }
    }
    else {
     $Fehler["File"] .= "<br>Die Datei &bdquo;" . $Filename . "&rdquo; ist leider zu groß!";
    }
   }
   else {
    $Fehler["File"] .= "<br>Die Datei &bdquo;" . $Filename . "&rdquo; hat ein ungültiges Dateiformat!";
   }
  }
 }
}

// Formular erstellen
$Formular = "
<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post' enctype='multipart/form-data'>

<p>
 <label> Name:
<span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span><br>
  <input type='text' name='name' value='" . $name . "' size='35' required='required' tabindex='1'>
 </label>
</p>

<p>
 <label> E-Mail:
<span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span><br>
  <input type='text' name='email' value='" . $email . "' size='35' required='required' tabindex='2'>
 </label>
</p>

<p>
 <label> Telefon:
<br>
  <input type='text' name='telefon' value='" . $telefon . "' size='35' tabindex='3'>
 </label>
</p>

<p>
 <label> Betreff:
<span class='pflichtfeld'>&#10034; " . $Fehler["betreff"] . "</span><br>
  <input type='text' name='betreff' value='" . $betreff . "' size='35' required='required' tabindex='4'>
 </label>
</p>

<p>
 <label> Nachricht:<br>
 <textarea name='nachricht' cols='40' rows='8' tabindex='5'>" . $nachricht . "</textarea>
 </label>
</p>

<p>
 <label> Datei hoch laden: <br>
 <input type='file' name='File[]' size='20' multiple='multiple' tabindex='6'>
 </label>
 <br>
 <small>Dateiformat: " . $Dtype . " - Dateigröße max.: " . $Dsize . " </small>
 <br><span class='hilfetext'> Nur Bilder </span>
</p>

<p>
 <br>
 <input type='submit' name='submit' value='Formular absenden' tabindex='7'>
</p>

<p>
 <small>Bitte alle mit <span class='pflichtfeld'>&#10034;</span>
 markierten Felder ausfüllen.</small>
</p>

</form>
";

// Formular abgesendet
if (isset($_POST["submit"])) {

 // Sind keine Benutzer-Eingabefehler vorhanden
 if (implode("", $Fehler) == "") {

  // Daten als E-Mail versenden (Vorschlag) - Bitte anpassen!

  // Zeitzone und das aktuelle Datum setzen
  // http://de3.php.net/manual/de/timezones.europe.php
  date_default_timezone_set("Europe/Berlin");
  $Datum = date("d.m.Y H:i");

  // Empfänger E-Mail
  // Eine beim Provider registrierte E-Mail Adresse verwenden!
  $Mailto = "r.pischl@gmx.de";

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Name: $name
   E-Mail: $email
   Telefon: $telefon
   Betreff: $betreff
   Nachricht: $nachricht
   File: $Files
  ";

  // E-Mail versenden
  mb_language("de");
  mb_internal_encoding("UTF-8");
  $Betreff = mb_encode_mimeheader($betreff, "UTF-8", "Q");
  $Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($name, "UTF-8", "Q") .
   "<" . $Mailto . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";

  if (mail($Mailto, $Betreff, $Text, $Kopfzeile)) {

   echo "<p>Vielen Dank, die Nachricht wurde versendet.</p>";
  }
  else {

   // Wenn die Daten nicht versendet werden konnten,
   // wird die E-Mail-Adresse für den direkten Kontakt eingeblendet.
   echo "<p>Beim Senden der Nachricht ist ein Fehler aufgetreten!<br>" . 
   "Bitte wenden Sie sich direkt an: <a href='mailto:" . $Mailto . "'>" . $Mailto . "</a></p>";
  }

  // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!

  // Diese Nachricht wird automatisch an die E-Mail-Adresse des Besuchers gesendet.

  // Name/Signatur
  $Signatur = "Reinhard Pischl";

  // Betreff
  $Betreff = "Kopie einer Nachricht";

  // Inhalt der E-Mail setzen
  $Text = "   Vielen Dank für Ihren Besuch bei ...
  Wir haben folgende Nachricht erhalten:

  Name: $name
  E-Mail: $email
  Telefon: $telefon
  Betreff: $betreff
  Nachricht: $nachricht

   Mit freundlichen Grüßen
    $Signatur  
   ";

  // E-Mail Kopie versenden
  mb_language("de");
  mb_internal_encoding("UTF-8");
  $Betreff = mb_encode_mimeheader($Betreff, "UTF-8", "Q");
  $Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($Signatur, "UTF-8", "Q") .
    "<" . $Mailto . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
  if (mail($email, $Betreff, $Text, $Kopfzeile)) {
   echo "<p>Sie erhalten eine Kopie der Nachricht an Ihre E-Mail-Adresse.</p>";
  }

  // Weiterleitung
  echo "<p><a href='" . $Weiterleitung . "' target='_top'>Weiter</a></p>";
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo "<p><span class='pflichtfeld'><strong>Eingabefehler, Bitte korrigieren</strong></span></p>";
  echo $Formular;
 }
}
else {

 // Formular ausgeben
 echo $Formular;
}
?>

</body>
</html>
Ich bitte um Hilfe
Gruss
Reinhard
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Moin,

hast Du denn das Verzeichnis "uploads" für den Upload der Bilder in dem Stammverzeichnis des Projektes angelegt. Hat das Verzeichnis auch Schreibrechte? Das Verzeichnis muss existieren, damit das funktioniert.

Die Weiterleitung funktioniert doch - am Link "Weiter" hast Du eine falsche URL, die es nicht gibt:

Code: Alles auswählen

https://www.meinlangengrassau.de/Kontaktformular/kontakt.html

gesendet.jpg



Wenn Du den Text der geframten Seite weiß haben willst, dann musst Du das in der CSS - im Style - des Formulars von Werners Code ändern.

Füge dann also dort gleich oben bei "body" die Farbe hinzu:

color: white;

Code: Alles auswählen

<style>
  body, textarea {
   font-family: Verdana, Sans-Serif;
   font-size: 1rem;
   color: white;
  }

  span.pflichtfeld {
   font-size: 0.90rem;
   color: yellow;
  }

  span.hilfetext {
   font-family: Arial, Tahoma, Sans-Serif;
   font-size: 0.80rem;
   font-style: Oblique;
   color: #ffffff;
  }

</style>

Farbe der Schrift.jpg



Deine E-Mail Adresse, die Du im Formular-Code eingetragen hast, muss auch bei Deinem Provider (Anbieter) registriert sein. Das darf also nur eine dort angemeldete E-Mail Adresse sein und nicht Deine E-Mail von Google (@gmx.de). Dann kann diese auch nicht im Spam-Ordner landen. Der Provider schickt doch die eigenen Mails nicht in den Spam-Ordner.

@gmx Adressen - also jene von Google - landen übrigens fast immer im Spam, denn das ist das was alle Spammer verwenden.

Ich habe hier so ca. 6.000 Versuche von Spammern in mein Forum einzudringen, 75% der Mail-Adressen sind von @gmx.
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Hallo Tommy,

danke für Deine Hilfe, da werde ich mich mal dran machen.

Habe Deine Mail zum Formular erhalten, im Spam-Ordner :D

Meine von mir angegebene E-Mail Adresse ist bei meinem Provider (All.incl.com) registriert, es ist übrigens GMX.
Ich habe bei GMX für den Empfang der Mails im Spam-Ordner angegeben, dass sie nicht als Spam behandelt werden sollen. Sie werden trotzdem in den Spam-Ordner geschickt :confused:
Gruss
Reinhard
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

... verstehe ich gerade nicht :confused:

Auch "all-inkl.com" hat doch E-Mail Adressen passend zur Domain, also meinetwegen bei Dir:

Code: Alles auswählen

Reinhard@meinlangengrassau.de
und nicht diesen schrecklichen .GMX Mist.
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Jetzt, wo Du es sagst :eek:

Hab ich doch !
Gruss
Reinhard
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Hallo Tommy,

- Weiterleitung nach dem Absenden des Formulars habe ich geändert, jetzt klappt`s
- E-Mail Adresse (beim Provider registriert) habe ich geändert
- Im CSS habe ich die Farbe °weiss" hinzugefügt (jedoch scheint jetzt die Schriftfarbe für den Inhalt der Nachricht auch weiss zu sein)

Dann habe ich noch eine Frage zum Verzeichnis "uploads":
Ich habe das noch nie genutzt, kenne es also auch nicht. Stammverzeichnis ist was ? Ist das so richtig ?
uploads.PNG
Und ist der Eintrag so richtig ?

Code: Alles auswählen

/ Dateien hochladen
// Verzeichnis
$Verzeichnis = "https://www.meinlangengrassau.de/uploads.html"; // Benötigt Schreibrechte!
Gruss
Reinhard
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Moin,

ja - das "Stammverzeichnis" oder auch "Root" (Wurzel-Verzeichnis) einer Domain, nennt man das Verzeichnis in dem das Projekt liegt.

Dies ist meist das oberste Verzeichnis auf dem Server - falls man das Projekt nicht in einen Unterordner publiziert hat.

Dort hast Du ja nun auch dieses Verzeichnis "uploads", für das Hochladen der Bilder, richtig angelegt. Dann lässt Du den Eingtrag von diesem Verzeichnis genau so, wie er bereits vom "Formular-Generator" generiert wurde:

Code: Alles auswählen

// Dateien hochladen
// Verzeichnis
$Verzeichnis = "uploads"; // Benötigt Schreibrechte!
Das ist eine relative Pfad-Angabe zum Verzeichnis "uploads" und heißt, dass dieses Verzeichnis im gleichen Verzeichnis liegt. Das kann man so schreiben:

ohne Zeichen davor:

"uploads"

oder auch:

"/uploads"

oder auch

"./uploads"

Würde man 2 Punkte davor schreiben, würde das Verzeichnis in einem Verzeichnis höher liegen:

"../uploads"



Für die Schriftfarbe, entferne das mal wieder aus dem body Tag. Ich hatte gestern übersehen, dass dort auch noch das textarea Tag angegeben ist, das ist der Formular-Text der Nachricht, der soll natürlich nicht weiß sein :eek:

... und schreibe diese beiden CSS-Klassen noch im Style-Tag hinzu:

label ist die Beschriftung der Felder (weiß) und small ist der Hinweis auf die Bildformate (gelb) in kleiner Schrift:

Code: Alles auswählen

  label {
    color: white;
  }
  
  small {
    color: yellow;
  }

Also dann in der geframten Seite vom Generator würde die Style-Anweisung (oben im Script) im Ganzen nun so aussehen:

Code: Alles auswählen

  <style>
  
  body, textarea {
   font-family: Verdana, Sans-Serif;
   font-size: 1rem;
  }

  span.pflichtfeld {
   font-size: 0.90rem;
   color: yellow;
  }

  span.hilfetext {
   font-family: Arial, Tahoma, Sans-Serif;
   font-size: 0.80rem;
   font-style: Oblique;
   color: #ffffff;
  }
  
  label {
    color: white;
  }
  
  small {
    color: yellow;
  }  

  </style>

Die Farben kannst Du natürlich angeben wie Du willst - auch Hexadezimal:

white (weiß) in Hex: #ffffff;

yellow (gelb) in Hex: #ffff00;

... oder welche Farbe auch immer Du willst.

Noch kurz zum Verständnis: Das Semikolon am Ende einer jeden CSS-Zeile in einer CSS-Klasse, schreibt man eigentlich nur, wenn noch weitere Angaben folgen. Man könnte es in einer einzelnen oder auch letzten Angabe auch weglassen - man kann und darf es aber auch immer schreiben, was die meisten machen.

Es gibt im Internet unendlich viele Farbtabellen zum abgucken:

https://www.farb-tabelle.de/de/farbtabelle.htm
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

... ach ja, wegen der Verzeichnisrechte am Ordner "uploads".

Gehe mit Deinem FTP-Programm "FileZilla" online und klicke mit der rechten Maustaste auf das Verzeichnis "uploads" und wähle im Kontextmenü (unten) "Dateiberechtigungen ...".

Die obere Zeile "Besitzer-Berechtigungen" muss alles angehakt haben. Dies ist der numerische Wert 705. Du kannst auch 777 eintragen, dann ist alles angehakt.

Verzeichnis-Rechte.jpg
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Na, jetzt kann ja nichts mehr schief gehen.
Vielen Dank für die ausführlichen Erklärungen dazu.
Ich gebe dann Erfolgsmeldung !
Gruss
Reinhard
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

... mich würde auch das mit der E-Mail Adresse interessieren. Landet die Mail denn nun immer noch im Spam?
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Übrigens so ganz ohne Spamschutz sollte man ein Formular nicht verwenden.

Ich hatte da erst vor kurzem über 1 Millionen Mails in 1 Woche erhalten (mehr als 1 Mail pro Sekunde) - trotz Schutz über die Rechenaufgabe.

E-Mail Angriff auf eines meiner Formulare

Es blieb nur das Formular ganz zu löschen und die Sperrung meiner Mail über die Webseiten durch meinen Provider "1&1 IONOS". Der Spambot hat dann noch 1 Woche weiter gemacht, bis dieser abgelassen hat, was man genau an der Log-Datei vom Provider IONOS sehen konnte.

Ich rate zum Buchstaben Rätsel in Werners Formular-Generator - am besten mit der zusätzlichen "Floodsperre" - gleich daneben anhaken - das begrenzt die Anzahl der Mails innerhalb eines angegebenen Zeitraums, wie z.B. nur 1 Mail innerhalb von 60 Sekunden.


Sicherheitsabfrage.jpg
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

... und wozu hast Du denn da immer noch das Mobirise-Formular zusätzlich auf der Seite :confused:

Das geht ja gar nicht - schmeiße das raus.
Benutzeravatar
struggle
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 438
Registriert: So 4. Dez 2022, 11:55
Wohnort: Brandenburg

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von struggle »

Hallo Tommy,

das Mobirise-Formular wollte ich eigentlich noch drauf behalten, solange das Kontaktformular von Werner noch nicht richtig funktioniert. Aber ich werde es raus schmeissen.

Die Floadsperre werde ich noch anhaken.

Für meine bei All.incl.com registrierte Mail nutze ich "WEBMAIL".
**** **** [Bitte keine E-Mail-Adressen posten! - Werner]
Die Mail landet nicht mehr im Spamordner

Leider bekomme ich noch immer eine Fehlermeldung beim Dateiupload.

So ist es bei Werner original:

Code: Alles auswählen

/ Angabe des Datentypen (Mimetypen) der hoch geladen werden darf.
// Mimetypen: https://werner-zenk.de/php/mimetypen.php
$Datentyp = array(
"png" => "image/png",
"jpg" => "image/jpeg",
"jpg" => "image/pjpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
"txt" => "text/plain",
"htm" => "text/html",
"pdf" => "application/pdf",
"zip" => "application/x-zip-compressed",
); 
und ich habe einfach bis auf Bilder den Rest rausgenommen:

Code: Alles auswählen

// Angabe des Datentypen (Mimetypen) der hoch geladen werden darf.
// Mimetypen: https://werner-zenk.de/php/mimetypen.php
$Datentyp = array(
"png" => "image/png",
"jpg" => "image/jpeg",
"jpg" => "image/pjpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
);
Konnte ich das so machen? Ich will ja nur Bilder empfangen. Oder ist das falsch ?
Gruss
Reinhard
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

... hast Du denn die Ordner-Rechte auf "777" gesetzt?

Du kannst auch immer nur 1 Datei hochladen.

... und ja - die Dateien, die Du nicht hochladen lassen möchtest kannst Du dort entfernen. Das sieht alles so richtig aus.

Wenn der Ordner Schreibrechte hat, sollte das auch gehen. Ansonsten weiß ich auch nicht - da müsste ich dann Werner nochmals bitten zu gucken.

Poste doch zwischenzeitlich den Inhalt vom gesamten Formular-Skript "kontakt.php", so wie es jetzt am Server ist, nochmals hier (entferne eventuell Deine E-Mail Adresse zuvor). Sonst kann man nichts sagen.

https://www.meinlangengrassau.de/Kontak ... ontakt.php
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Werner-Zenk.de »

struggle hat geschrieben: Do 21. Dez 2023, 06:45 Leider bekomme ich noch immer eine Fehlermeldung beim Dateiupload.
Und die Fehlermeldung soll wohl dein Geheimnis bleiben?

Ich habe deine E-Mail-Adresse aus dem vorherigen Beitrag entfernt. Wenn deine Mail-Adresse mal von einem Spambot aufgegriffen wird, dann kannst du dich vor Heirats.- und Potenzpillen-Anfragen nicht mehr retten, außer du stehst auf sowas :D
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Moin Werner,

swarte mal gganz kurz - ich weiß welche Fehlermeldung er meint - die ist aber vom Skript. Ich mache einen Screenshot.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Ich hatte eine Datei "affe.gif" gewählt mit nur 14KB.

Diese wird dann wieder nach dem Absenden entfernt und oben erscheint die im Screenshot zu erkennende Fehlermeldung:

"Eingabefehler, Bitte korrigieren"


Eingabefehler bei Dateianhang.jpg


Oben hatte er ja schon sein Skript gepostet mit dem Inhalt:

Code: Alles auswählen

// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)

// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "kontakt.html"; // Relativer Pfad, ausgehend vom Formular.

// Dateien hochladen
// Verzeichnis
$Verzeichnis = "uploads"; // Benötigt Schreibrechte!

// Die Größe (einer einzelnen) Datei die maximal
// hoch geladen werden darf (in Bytes eintragen).
$Maxgroesse = 2097152; // 1024 Bytes = 1 KB (1048576 Bytes = 1 MB) 
// Umrechner: https://werner-zenk.de/tools/umrechner.php

// Anzahl der maximalen Dateien die hoch geladen werden dürfen.
$Maxdateien = 1;

// Angabe des Datentypen (Mimetypen) der hoch geladen werden darf.
// Mimetypen: https://werner-zenk.de/php/mimetypen.php
$Datentyp = array(
"png" => "image/png",
"jpg" => "image/jpeg",
"jpg" => "image/pjpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
);

// Ausgabe der Datentypen und Dateigröße formatieren
$Dtype = implode(", ", array_unique(array_keys($Datentyp)));
$Dsize = ($Maxgroesse >= 1048576) ? number_format(($Maxgroesse / 1024 / 1024), 1, ",", ".") .
 " MB" : number_format(($Maxgroesse / 1024), 1, ",", ".") . " KB";
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Der Fehler scheint bei der Weiterleitung zu entstehen:

Code: Alles auswählen

 // E-Mail Kopie versenden
  mb_language("de");
  mb_internal_encoding("UTF-8");
  $Betreff = mb_encode_mimeheader($Betreff, "UTF-8", "Q");
  $Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($Signatur, "UTF-8", "Q") .
    "<" . $Mailto . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
  if (mail($email, $Betreff, $Text, $Kopfzeile)) {
   echo "<p>Sie erhalten eine Kopie der Nachricht an Ihre E-Mail-Adresse.</p>";
  }

  // Weiterleitung
  echo "<p><a href='" . $Weiterleitung . "' target='_top'>Weiter</a></p>";
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo "<p><span class='pflichtfeld'><strong>Eingabefehler, Bitte korrigieren</strong></span></p>";
  echo $Formular;
 }
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5865
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Tommy Herrmann »

Werner,

oben bei der Prüfung vom Anhang steht ein "http" (anstatt https) - kann es das sein?

Code: Alles auswählen

$Files .= "http://" . $_SERVER["SERVER_NAME"] . "/" . $Verzeichnis . "/" . $Filename . ", ";
Benutzeravatar
Volker
Moderator
Moderator
Beiträge: 855
Registriert: Sa 12. Dez 2020, 22:35
Wohnort: Wildberg
Kontaktdaten:

Re: Kontaktformular von Werner Zenk

Ungelesener Beitrag von Volker »

struggle hat geschrieben: Mi 20. Dez 2023, 18:55
Und ist der Eintrag so richtig ?

Code: Alles auswählen

/ Dateien hochladen
// Verzeichnis
$Verzeichnis = "https://www.meinlangengrassau.de/uploads.html"; // Benötigt Schreibrechte!
NEIN !

der Ordner heißt doch uploads und nicht uploads.html ;)
Gruß Volker
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 132 Gäste