Hilfe bei einem PHP-Mailer

  • super, damit hab ich nun 2 Fliegen mit einer Klappe geschlagen. Er sendet keine Mail mehr beim Aufrufen und die Fehler sind auch weg.

    Nun ist nur noch das Problem da, dass die blöde calc() nicht funktioniert. Kannst du mir evtl. nen guten Link verraten wo das Rechnen mit PHP erklärt wird?

    Und evtl. auch noch wie ich einem Feld einen Variablen-Wert zuweise? Also wenn ich $a = 10; habe, wich ich diese 10 dann in einem Textfeld ausgeben lassen kann?

    Du siehst meine PHP-Kenntnisse halten sich in Grenzen :D

  • So, hab mir nun mühevoll, und wahrscheinlich umständlich, eine Funktion in PHP geschrieben, die die Berechnungen durchführt.

    nun müsste ich nur noch 2 Sachen wissen:
    1) wie ich diese Funktion durch einen Button im Formular aufrufen kann?
    2) wie ich die Variablen in ein Formularfeld schreiben kann?

    zu 2) Ich habe ien Formularfeld das wie folgt in html aussieht:

    HTML
    <label>Bruttopreis:
          <input type="text" name="bruttopreis" id="bruttopreis" />
        </label> EUR

    nach klicken auf den Button der mir die obige PHP-Funktion ausführt soll in diesem Feld nun der Bruttopreis eingetragen werden.

  • Du hast zunächst einmal das Problem, dass du in der Funktion einiges berechnest, aber die ganzen Werte nicht zurückbekommst. Deshalb solltest du ein Array erstellen, das dann geliefert wird.



    Wird das Formular abgeschickt, kannst du das ja mit isset prüfen:

    PHP
    <?php
       if (isset($_POST['material']))
          $data = calculate();
    ?>


    Und die Werte bekommst du so wieder in Formular geschrieben:

    PHP
    <input type="text" name="einzelpreis" id="einzelpreis" value='<?php if (isset($data['einzelpreis'])) echo $data['einzelpreis']; ?>' />
  • so, zuerst mal vielen Dank für die ganze Hilfe, ich bin ein rießen Stück weiter.

    Es gibt nun noch 2 kleinere Probleme:

    1) str_replace war die richtige Funktion

    2) nun hab ich 2 Formulare auf der HTML-Seite, das 1. berechnet den Preis, das 2. sendet die Bestellung ab. Irgendwie stehe ich gerade auf dem Schlauch wie ich es schaffe, dass er mir die Berechnung nochmals ausführt bzw. die berechneten Werte übernimmt, wenn der Kunde die Bestellung (2. Formular) abschickt?

    => wurde mit hidden-fields gelöst


    Ich bedanke mich nochmal vielmals für die Mühe die ihr Beiden aufgebracht habt!!!

    2 Mal editiert, zuletzt von #cousin# (2. Februar 2009 um 02:09) aus folgendem Grund: Frage 1 beinhaltete schon die antwort :D - Frage 2 wurde gelöst

  • ok...zu früh gefreut :(


    könnte mir noch Jemand helfen bei dem Thema Datei-Upload?

    ich möchte das der Kunde mit Hilfe des Formulars eine Datei hochlädt, die dann direkt mit dem Formular versendet wird.

    Perfekt wäre es, wenn nur Dateien vom Typ Bild (jpeg, png, psd, ...) erlaubt wären.

    ich habe es veruscht mit

    HTML
    <form id="Form2" name="Form2" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
    .......
    <input name="upload" type="file" id="upload" size="45" />
    .......
    </form>

    und

    PHP
    $uploaddir = '../files/';
    $uploadfile = $uploaddir. basename($_FILES['userfile']['name']);
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

    und indem ich dem Mailer noch folgendes mitgegeben habe:

    PHP
    $mail->AddAttachment($uploadfile);


    aber leider bekomme ich die Email ohne Anhang.

    Wäre für Hilfe sehr dankbar!

  • Dann bekomme ich folgende Ausgabe:

    Array ( [upload] => Array ( [name] => 1.png [type] => image/png [tmp_name] => /tmp/phpVSX5dD [error] => 0 [size] => 7069 ) )


    Wenn ich das richtig verstehe hat er doch den ERROR 0 geworfen, was laut Manual heisst, dass alles ok ist, oder?

    5 Mal editiert, zuletzt von #cousin# (2. Februar 2009 um 11:44)

  • Und dir fällt nichts auf? Du hast das error_reporting wieder nicht hochgedreht!

    <input name="upload" type="file" id="upload" size="45" />
    $uploadfile = $uploaddir. basename($_FILES['userfile']['name']);

  • ok, das war ein dummer Fehler, das kommt davon, wenn man die Doku nur überfliegt und denkt sie verstanden zu haben :o

    Gibt es eine Möglichkeit diese Dateien nach erfolgreichem Versand wieder zu löschen?

  • doch, den Teil habe ich sogar gelesen, nur wo ssetze ich diesen Befehl ein, damit er mir die Datei erst löscht, wenn die e-mail versendet wurde?

    Setze ich diesen Befehl einfach nach dem phpMailer ein?

  • Ich würde es so machen:


    Du solltest auch dran denken, was passiert, wenn keine Datei zum Upload vorhanden ist.

    Einmal editiert, zuletzt von bandit600 (2. Februar 2009 um 12:48)

  • vielen Dank für die Hilfe....scheint nun alles zu gehen.

    Noch eine letzte Frage:

    Ist es möglich mit einem PHP-Skript aus einer anderen Datei (PHP oder text) einen Wert zu lesen, ihn zu verändern und wieder zurück zu schreiben?

  • sag ja, bin in Sachen PHP noch ziemlich unerfahren.

    hab es jetzt so gemacht:

    PHP
    function number()
    {
        $verbindung = fopen('auftrag','r+');
        $inhalt = fread($verbindung, filesize('auftrag'));
        $inhalt2 = $inhalt + 1;
        fwrite($verbindung, $inhalt2);
        fclose($verbindung);
    }

    In der Datei auftrag steht eine Zahl drin, nun möchte ich aber, dass PHP beim zurückschreiben den Wert löscht der vorher drin stand.

    oder wäre hier ein file_get_contents() und file_put_contents() besser?

    Einmal editiert, zuletzt von #cousin# (2. Februar 2009 um 14:36)

  • sag ja, bin in Sachen PHP noch ziemlich unerfahren.


    Dann solltest du dich mehr mit den Grundlagen beschäftigen, denn es kann ja nicht richtig sein, dass du hier alles vorgekaut bekommst.

    Vor fwrite ein rewind einbauen.