Datei zu PHP Formmailer anhängen?

Hallo!

Ich habe ein kleines Kontaktformular welches Name und Text an einen vorher Festgelegten Absender schickt. Nun möchte ich das man dazu noch eine Datei anhängen kann, die an mit an die Email angehangen wird. Ich habe einen PHP Mailer. Bis zum Dateiupload funktioniert alles. Also Namen sowie Text werden übertragen, aber es scheitert am Dateiupload. Ich bitte um Hilfe, was kann ich machen damit die Datei an die Email angehangen wird? Ich poste hier mal die beiden Codes... Bitte helft mir!

CODE FORMULAR (mail.php):

https://pastebin.com/p8yp9zZW

CODE PHP MAILER (mailer-engine.php)

<?php


// ======= Konfiguration:


$mailTo =  $_POST['Empfänger'];
$mailFrom = 'Schüler der Klasse 9-3 <****@***.de>';
$mailSubject = 'Email von einem Schüler der Klasse 9-3 [Weitergeleitet über Notfallcloud der Klasse 9-3]';
$returnPage = 'form_erfolg.html';
$returnErrorPage = 'form_fehler.html';
$mailText = "";


// ======= Text der Mail aus den Formularfeldern erstellen:


// Wenn Daten mit method="post" versendet wurden:
if(isset($_POST)) {
   // alle Formularfelder der Reihe nach durchgehen:
   foreach($_POST as $name => $value) {
      // Wenn der Feldwert aus mehreren Werten besteht:
      // (z.B. <select multiple>)
      if(is_array($value)) {
          // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ":\n";
          // alle Werte des Feldes abarbeiten
          foreach($valueArray as $entry) {
             // Einrückungsleerzeichen, Wert und Zeilenumbruch
             // dem Mailtext hinzufügen
             $mailText .= "   " . $value . "\n";
          } // ENDE: foreach
      } // ENDE: if
      // Wenn der Feldwert ein einzelner Feldwert ist:
      else {
          // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ": " . $value . "\n";
      } // ENDE: else
   } // ENDE: foreach
} // if


// ======= Korrekturen vor dem Mailversand


// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:
 if(get_magic_quotes_gpc()) {
     // eventuell eingefügte Backslashes entfernen
     $mailtext = stripslashes($mailtext);
 }


// ======= Mailversand


// Mail versenden und Versanderfolg merken
$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom);


// ======= Return-Seite an den Browser senden


// Wenn der Mailversand erfolgreich war:
if($mailSent == TRUE) {
   // Seite "Formular verarbeitet" senden:
   header("Location: " . $returnPage);
}
// Wenn die Mail nicht versendet werden konnte:
else {
   // Seite "Fehler aufgetreten" senden:
   header("Location: " . $returnErrorPage);
}


// ======= Ende


exit();


?>


Computer, Schule, HTML, programmieren, PHP
PHP Pascalsches Dreieck?

Hallo,

bin grad am "tüfteln" vom Pascalschen Dreieck und habe 2 Probleme:

Wieso haben bei mir die Zellen unterschiedliche Breiten, und, was ist der einfachste weg, dass es auch ausschaut wie ein Pascalsches Dreieck und nicht alles lin ksbündig ist?

Code

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Pascal'sches Dreieck</title>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
    <style>
    
    .table {
    font-family: Arial, Helvetica, sans-serif;
    border-style: solid 1px;
    border-spacing: 1;
    border-collapse: collapse;
    overflow: hidden;
    width: 70%;
    margin: 0 auto;
    position: relative;    
    }
    
    .zellen {
        border: 1px solid #000;
    }
    </style>
</head>
<body bgcolor=#DDDDDD text=#0000AA>

<form action="<?php $PHP_SELF ?>" method="post">
<pre>
eingabe:   <input type="text" name = "eingabe" size="4">


<input type="submit" name="schalter" value="OK">
</pre>
</form>

<?php

if(isset($_POST["schalter"])){
    
    $eingabe = $_POST["eingabe"];
    
    
    print "<table class=\"table\">";
    
    for($zeile = 1; $zeile <= $eingabe; $zeile++){ //Zeilen
        print "<tr>";
        for($spalte = 1; $spalte <= $zeile; $spalte++){ //Spalten
        
            if($spalte == 1 OR $spalte == $zeile){
                $array[$zeile][$spalte] = 1;
                print "<th class=\"zellen\">".$array[$zeile][$spalte]."</th>";
                

                
            }else{
                $array[$zeile][$spalte] = $array[$zeile-1][$spalte-1] + $array[$zeile-1][$spalte];
                
                print "<th class=\"zellen\">".$array[$zeile][$spalte]."</th>";
                
            }

            // $array[$i][$j] = 1;
        
            
        }    
    }
    print "</tr></table>";
    
    
    print "<pre>";
    print_r($array);
    print "</pre>";
}
?>
</body>

</html>

Ausgabe:

Bild zum Beitrag
Computer, programmieren, CSS, Infos, Array, Informatik, PHP, pascalsches-dreieck
404 Fehler bei AJAX Request: PHP-Datei wird nicht gefunden?

Folgendes:

Der Code, den ich in dieser Frage gepostet habe, habe ich minimal geändert (das PHP jetzt auch in eine separate Datei gepackt) und jetzt scheint der Button zu reagieren. So weit, so gut. Jetzt habe ich mir gedacht, dass es nützlich sein könnte, Fehler in einem alert auszugeben. Da ich nicht wusste, wie ich das anstelle, habe ich auch danach online gesucht und wurde fündig.

Nun zum eigentlichen Problem:

Mir wird ein 404-Fehler zurückgegeben, obwohl die Datei, die im Request angegeben wurde, existiert.

Ich habe auch dazu bereits im Internet nach Beiträgen gesucht und im weitesten Sinn ähnliche Beiträge gefunden. Aber keiner der Tipps, die ich dort gefunden habe, von denen ich der Meinung war, dass sie vielleicht helfen würde, hat etwas gebracht.

In einem der Kommentare (auf bspw. Stackoverflow) hieß es, man solle sich mit Werkzeugen wie Fiddler die Requests ansehen. Das habe ich gemacht, aber wirklich schlau werde ich daraus auch nicht.

Hier das JavaScript des Buttons:

<script>
  $(document).on('click', '#removeButton', function() {
    $.ajax({
      // type: "GET",
      url: "removeProject.php",
      // data: [id: selectedProjectID],
      success: function() {
        alert("Success");
      },
      error: function(jqXHR, textStatus, errorThrown) {
        alert(jqXHR.status);
        alert(textStatus);
        alert(errorThrown);
      } // error
    }) // ajax
  }); // function
</script>

Hier der Inhalt der removeProject.php-Datei:

<?php
  require_once '../sqlGenerator.php';

  $dbh = new PDO("mysql:dbname=" . $db . ";host=localhost", $user, $pass);
  $query = "SELECT * FROM TABLE_SELECTED_PROJECT";
  $selectedProjectID = mysql_query($query);

  $sql = "DELETE FROM " . TABLE_PROJECT_NAME . " WHERE " . COL_PROJECT_ID . " = " . $selectedProjectID;

  try {
    $statement = $dbh->prepare($sql);
    $statement->execute();
  }
  catch (PDOException $e) {
    exit("Datenbank-Fehler: " . $e->getMessage());
  } // trycatch
?>

Am URL-Pfad kann es nicht liegen, da habe ich bereits alles Mögliche ausprobiert. Die Dateien befinden sich beide im gleichen Ordner.

Was könnte der Grund sein?

Computer, Technik, JavaScript, AJAX, PHP, Technologie

Meistgelesene Beiträge zum Thema PHP