• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular wird via Facebook autmoatisch gesendet.

Chris123

Neues Mitglied
Hallo Forum,

ich hoffe, dass ich im richten Forum bin.. weil ist ja auch irgendwie php mein Problem. Bitte verschieben, wenns nicht passt.

Ich habe mir vor ein paar Tagen eine App für meine Facebook-Seite gebastelt. Soll eine Art Merchandise-Shop für meine Band sein. Auf der Seite (index.php) sind einige Bilder und ein Bestellformular (kontaktformular.php; ist ein normales Formular), welches mit php-include in die index.php eingebunden wird. Wenn ich die Seite direkt auf meinem Webspace ansurfe, funktioniert alles wie ich es will. Aber sobald ich die index.php in Facebook einbinde (via iFrame) und sie ansurfe, wird das Formular automatisch gesendet.

Hab die Dateien mal testweise in ein extriges Verzeichnis geladen: https://basedon.safe-ws.de/merch-app/test/ (hier gehts nur zum Bestellformular)
Wie gesagt, so funktioniert es ja. Aber sobald ich es in Facebook auf der Seite ansurfe sieht es foglendermaßen aus:
fehler.jpg

Hab es nur momentan nicht aktiv für Facebook, da ich die App erst puplic machen will, wenn sie auch wirklich funktioniert ;)
Ich hoffe, ihr könnt mit dem Link zur Seite was anfangen.. Wenn nicht, kann ich auch gerne die beiden Dateien posten.

Wäre toll, wenn da jemand Rat wüsste :smile:
Danke.

PS: Bin nicht gerade begabt in Sachen html & co., also verzeiht mir einen unsauberen oder fehlerhaften Quelltext ;)
 
Zuletzt bearbeitet:
Werbung:
:)
Hier der Quellcode für das Formular:

Code:
<?php

// Ihr Name/Signatur
$signatur = "Based on a True Story";

// Ihre E-Mail-Adresse
$mailto = "[email protected]";

// E-Mail-Betreff
$betreff = "Bestellformular";

// Ihre Webseite (Startseite). Nach dem absenden der E-Mail
// gelangt der Besucher ueber einen Link auf Ihre Startseite.
$url = "?reload";

// Fortgeschrittene Anwender koennen ab hier aenderungen vornehmen.
error_reporting(E_ALL);
$eingabefehler = ""; // Bitte leer lassen!
$datum = date("d.m.Y H:i");
$name = isset($_POST["name"]) ? $_POST["name"] : "";
$feld1 = isset($_POST["feld1"]) ? $_POST["feld1"] : ""; // "Straße, Nr."
$feld2 = isset($_POST["feld2"]) ? $_POST["feld2"] : ""; // "Wohnort"
$mailfrom = isset($_POST["mailfrom"]) ? $_POST["mailfrom"] : "";
$nachricht1 = isset($_POST["nachricht1"]) ? $_POST["nachricht1"] : ""; // "Shirt"
$nachricht2 = isset($_POST["nachricht2"]) ? $_POST["nachricht2"] : ""; // "Kommentar"
$kopieCk = isset($_POST["kopie"]) ? " checked='checked'" : null;

// Radio-Buttons "Bezahlung"
$array = array(
"Ueberweisung + Versand", 
"Persoenlich", 
);
$radioinhalt1 = isset($_POST["A"]) ? $_POST["A"] : "";
$radioliste1 = "";
for ($key = 0; $key < count($array); $key++) {
 $radioliste1 .= "<label><input type='radio' name='A' value='" . $array[$key] . "'";
 if (isset($_POST["A"])) {
  if ($_POST["A"] == $array[$key]) {
   $radioliste1 .= " checked='checked'";
  }
 }
 $radioliste1 .= ">" . $array[$key] . "</label>&nbsp;\n  ";
}

// Auswahlliste 1 "Sticker (Design 1)"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl1 = isset($_POST["auswahl1"]) ? $_POST["auswahl1"] : "";
$auswahlliste1 = "<select name='auswahl1' size='1'>";
foreach ($array as $value) {
 $auswahlliste1 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl1"]) ? $_POST["auswahl1"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste1 .= "\n   </select>";

// Auswahlliste 2 "Sticker (Design 2)"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl2 = isset($_POST["auswahl2"]) ? $_POST["auswahl2"] : "";
$auswahlliste2 = "<select name='auswahl2' size='1'>";
foreach ($array as $value) {
 $auswahlliste2 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl2"]) ? $_POST["auswahl2"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste2 .= "\n   </select>";

// Auswahlliste 3 "Sticker (Design 3)"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl3 = isset($_POST["auswahl3"]) ? $_POST["auswahl3"] : "";
$auswahlliste3 = "<select name='auswahl3' size='1'>";
foreach ($array as $value) {
 $auswahlliste3 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl3"]) ? $_POST["auswahl3"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste3 .= "\n   </select>";

// Auswahlliste 4 "Camus EP"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl4 = isset($_POST["auswahl4"]) ? $_POST["auswahl4"] : "";
$auswahlliste4 = "<select name='auswahl4' size='1'>";
foreach ($array as $value) {
 $auswahlliste4 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl4"]) ? $_POST["auswahl4"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste4 .= "\n   </select>";

// Auswahlliste 5 "Boats-Paket"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl5 = isset($_POST["auswahl5"]) ? $_POST["auswahl5"] : "";
$auswahlliste5 = "<select name='auswahl5' size='1'>";
foreach ($array as $value) {
 $auswahlliste5 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl5"]) ? $_POST["auswahl5"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste5 .= "\n   </select>";

// Auswahlliste 6 "10 zufällige Sticker"
$array = array(
"", "0", "1", "2", "3", "4", "5", "6", "7", "8", 
"9", "10", 
);
$auswahl6 = isset($_POST["auswahl6"]) ? $_POST["auswahl6"] : "";
$auswahlliste6 = "<select name='auswahl6' size='1'>";
foreach ($array as $value) {
 $auswahlliste6 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["auswahl6"]) ? $_POST["auswahl6"] : "") == $value ?
 " selected='selected'" : "") .  ">" . $value . "</option>";
}
$auswahlliste6 .= "\n   </select>";

// Formular erstellen
// Innerhalb des Formulars dürfen nur einfache Anführungszeichen verwendet werden!
$formular = "<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>

<table>
<caption><h2>Bestellformular</h2></caption>
 <tr><td colspan='2' class='pflichtfeld'><!-- Fehleranzeige --></td></tr>
 <tr class='hintergrund'>
  <td><label for='Name'>Name: <span class='pflichtfeld'>*</span></label></td>
  <td><input type='text' size='40' name='name' value='" . $name . "' id='Name'></td>
 </tr>
 <tr class='hintergrund'>
  <td><label for='Feld1'>Stra&szlige, Nr.: <span class='pflichtfeld'>*</span></label></td>
  <td><input type='text' size='40' name='feld1' value='" . $feld1 . "' id='Feld1'></td>
 </tr>
 <tr class='hintergrund'>
  <td><label for='Feld2'>Wohnort: <span class='pflichtfeld'>*</span></label></td>
  <td><input type='text' size='40' name='feld2' value='" . $feld2 . "' id='Feld2'></td>
 </tr>
 <tr class='hintergrund'>
  <td><label for='Email'>E-Mail: <span class='pflichtfeld'>*</span></label></td>
  <td><input type='text' size='40' name='mailfrom' value='" . $mailfrom . "' id='Email'></td>
 </tr>
 
 <tr class='hintergrund'>
  <td colspan='2'><br><b>BESTELLUNG</b></td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>Sticker (Design 1):  
   " . $auswahlliste1 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>Sticker (Design 2):  
   " . $auswahlliste2 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>Sticker (Design 3):  
   " . $auswahlliste3 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>10 zufaellige Sticker:  
   " . $auswahlliste6 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>Camus EP:  
   " . $auswahlliste4 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'>
   <label>Boats-Paket:  
   " . $auswahlliste5 . "</label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'><label>Shirt:<br>
  <textarea name='nachricht1' rows='5' cols='40'>MEN-Anzahl:
MEN-Groe&szlige:
MEN-Farbe:
GIRL-Anzahl:
GIRL-Groe&szlige:
GIRL-Farbe:" . $nachricht1 . "</textarea></label></td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'><br>
  <b>BEZAHLUNG</b><br>
   " . $radioliste1 . "
  </td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'><label><br><b>KOMMENTAR:</b> <br>
  <textarea name='nachricht2' rows='2' cols='40'>" . $nachricht2 . "</textarea></label></td>
 </tr>
 <tr class='hintergrund'>
  <td colspan='2'><br>
   <input type='checkbox' name='kopie' id='Kopie'" . $kopieCk . "> 
   <label for='Kopie'>
    Ich wuensche eine Kopie dieser Nachricht an meine E-Mail-Adresse
   </label>
  </td>
 </tr>
 <tr class='hintergrund'>
  <th colspan='2'><span class='pflichtfeld'>✲</span>
   <small>Bitte alle Pflichtfelder ausfuellen!</small> &nbsp; &nbsp; 
   <input type='submit' name='sendung' value='Bestellung absenden'>
  </th>
 </tr>
</table>
</form>\n";

// Wurde das Formular abgesendet
if ($_SERVER["REQUEST_METHOD"] == "POST" || isset($_POST["sendung"])) {

 // Pflichtfelder überprüfen
 // Die Meldungen müssen hier eventuell angepasst werden.
 if (strlen($name) <= 2) $eingabefehler .= "&bull; Name fehlt!<br>";
 if ($feld1 == "") $eingabefehler .= "&bull; Straße, Nr. fehlt!<br>";
 if ($feld2 == "") $eingabefehler .= "&bull; Wohnort fehlt!<br>";
 if (filter_var($mailfrom, FILTER_VALIDATE_EMAIL) === false) $eingabefehler .= "&bull; Fehler in der E-Mail-Adresse!<br>";

 // Sind keine Eingabefehler vorhanden
 if ($eingabefehler == "") {

  // Diese Nachricht wird an Ihre E-Mail-Adresse gesendet.
  // Text-Format - \n = neue Zeile.
  $text = "xxxxx";

  // E-Mail versenden
  $kopfzeile = "MIME-Version: 1.0;\nFrom: " . $mailfrom . "\n";
  $kopfzeile .= "Content-Type: text/plain; Charset=ISO-8859-1;\n";
  if (mail($mailto, $betreff, $text, $kopfzeile)) {

   // Bestätigung der E-Mail
   echo "<p class='hintergrund danke'>" . 
   "Vielen Dank, die Bestellung wurde aufgegeben.<br><br>";

   // E-Mail Kopie
   if (isset($_POST["kopie"])) {

    // Diese Nachricht wird an die E-Mail-Adresse des Besuchers gesendet.
    // Text-Format - \n = neue Zeile.
    $kopie = "Vielen Dank fuer Ihren Besuch beim Boats-Merch-Shop.
Wir haben folgende Nachricht erhalten:
xxxxx
Diese E-Mail wurde automatisch erstellt.";

    // E-Mail Kopie versenden
    $kopfzeile = "MIME-Version: 1.0;\nFrom: " . $mailto . "\n";
    $kopfzeile .= "Content-Type: text/plain; Charset=ISO-8859-1;\n";
    if (mail($mailfrom, "Deine Bestellung bei Based on a True Story", $kopie, $kopfzeile)) {

     // Bestätigung der E-Mail Kopie
     echo "Sie erhalten eine Kopie Ihrer Nachricht an Ihre E-Mail-Adresse.<br><br>";
    }
   }

   // Link zur Startseite
   echo "<a href='" . $url . "'>Weiter</a></p>";
  }
  else {

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

  // Eingabefehler und Formular ausgeben
  echo str_replace("<!-- Fehleranzeige -->",
  "<b>Die Nachricht wurde aus folgendem Grund nicht versendet:</b><br>" .
  $eingabefehler, $formular);
 }
}
else {

 // Formular ausgeben
 echo $formular;
}
?>
 
Werbung:
Sorry, wenn ich das mal so sage, aber das Script ist grausam.

Bitte informiere die über das EVA-Prinzip.
 
Hallo,

also der code ist echt schlimm aber versuche mal
das
PHP:
if ($_SERVER["REQUEST_METHOD"] == "POST" || isset($_POST["sendung"])) {
in das zu ändern
PHP:
if ( isset($_POST["sendung"])) {
Cheffchen
 
@Cheffchen: Yeah, es funktioniert. Vielen, vielen Dank :)
--
Bzgl. Quellcode: Ich hab den nicht selber geschrieben. Ich bin auf Kontaktformular Generator - Individuelles Kontaktformular erstellen - Webbausteine.de gestoßen, wo man sich ganz einfach ein Formular basteln kann. Hab da dann einfach den fertigen Quellcode in meine Datei kopiert & nur Einzelheiten verändert. Sowas ist halt für einen Laien wie mich ideal. Trotzdem Danke nochmal.

Thread kann somit geclosed werden.
 
Werbung:
nur als Anmerkung: solange der Code nicht valide ist, kann es zu Fehler bezüglich der Darstellung, oder Funktionen in verschiedenen Browsern kommen.
 
Zurück
Oben