HTML PHP Variable in HTML Textfeld als Mail verrschicken.

SpitFire3788

Cadet 2nd Year
Registriert
Jan. 2006
Beiträge
20
Einen schönen guten Abend an Alle,

ich hätte ein kleines Problem, dass mich jedoch schon seit Stunden beschäftigt. Hab auch schon sehr viel ge-googled und hab trotzdem keine wirklich brauchbare Lösung gefunden.



So, wie im Titel erwähn habe ich eine HTML-Seite (eingabe_daten.html) mit diversen Eingabemöglichkeiten, z.B.:


<input type="text" id="FormsEditField7" name="Ansprechpartner" size="15" maxlength="100" style="width: 116px; white-space: pre;">


usw. die dann mit einem PHP-Script (script_kontakte.php) per E-Mail an unserem Service-Personal versendet werden.

Soweit so gut. Dann habe ich mir überlegt ich könnte doch eine fortlaufende Nummer in meinem PHP-Script einbauen (z.B.: eine Integer Variable inkrementieren lassen nach jedem mal, wenn eine E-Mail verschickt wird) und somit unseren Kunden eine Service-Nummer vergeben.

Und beim nächsten mal, wenn jemand die HTML Datei öffnet wird in einem "readonly" definierten Textfeld, aus dem PHP-Script die aktuelle Zahl heraus gelesen und wiederum eingetragen. Sobald der Kunde wieder auf den Senden Button drückt wird die Zahl wieder um eins erhöt und das Spiel Fängt beim nächsten Kunden wieder von vorne an.

Kann man das so machen? Könnt Ihr mir da vielleicht weiterhelfen?


Vielleicht wenn Ihr meinen PHP Inhalt seht fällt euch was ein:
Inhalt der PHP-Datei:


<?php

$admin= 'test@mail.int';
$subject= "Service Request";
$message= "Nachrichten an ".$admin.":\n\n";

foreach($_POST as $name=>$value) {
$message.= "$name: $value\n";
}
mail($admin, $subject, $message, "From:service@mail.ext");
header("Location: bearbeitung.html");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>.:: Kontaktformular ::. Digipanda</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="Generator" content="NetObjects Fusion 10 for Windows">
<link rel="stylesheet" type="text/css" href="../html/fusion.css">
<link rel="stylesheet" type="text/css" href="../html/style.css">
<link rel="stylesheet" type="text/css" href="../html/site.css">
</head>
<body style="background-image: none; margin: 0px;">
</body>
</html>



Vielen Dank im Voraus.

Mit ganz freundlichen Grüßen.
Marius
 
Du musst die Nummer irgendwo (Datei, Datenbank) zwischenspeichern und wieder einlesen. Denn sonst vergisst dein Script die Nummer gleich wieder.
 
Wuhuuuu.... Vielen vielen Dank.

Ich hab nur die richtigen Schlagwörter gebraucht um google mal richtig zu benützen. ;)

Jetzt hab ich nämlich ein interessantes Tutorial gefunden und mir dieses script in meine PHP Datein eingebaut und somit wird nach jedem Senden einer Mail in einer counter.txt Datei der Wert um eins erweitert.

$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);
if($counterstand == "")
{
$counterstand = 0;
}
$counterstand++;
echo $counterstand;
rewind($datei);
fwrite($datei, $counterstand);
fclose($datei);


Der Link zum Tutorial http://www.schattenbaum.net/php/datei.php


Jetzt brauche ich nur mehr den richtigen String um aus der counter.txt den Wert in meine HTML auszulesen.

Hast du eine Idee wie ich jetzt die fortlaufende Nummer hinter dem "RMA2011-" hineinbekomme?


<input type="text" id="IDNr_Field1" name="RMANr." value="RMA2011-",+i readonly>


Danke nochmals.
 
Vielen Dank für die super schnellen Antworten. :)
Ihr seid die Besten!

Wünsch euch ne gute Nacht.
Ergänzung ()

Hallo an alle.

Seit gestern habe ich massive Fortschritte mit der home-page gemacht.
Jetzt hätte ich noch eine kleine Frage. Ist es möglich einen 5 Sek. Intervall bei dem Folgenden Quelltext einzubauen? Damit alle 5 Sek. nachgesehen wird ob sich der Wert verändert hat ohne die gesamte Seite neu laden zu müssen.
Wenn ja, könnt Ihr mir sagen wie?

<?php
// Datei in eine Variable ($text) einlesen
$text = file_get_contents("counter.txt");
?>

Danke im Voraus.
lg Marius
 
Wieso willst du das alle 5sek überprüfen? Reicht doch aus, wenn jemand auf die Website kommt. Ergo, wenn jemand quasi die .php-Datei ausführt. Ansonsten kommst du um einen CronJob nicht umher.
 
Mein Problem ist sobald 2 oder mehrere Personen gleichzeitig auf die Seite gehen erhalten alle die selbe Nummer (die aus der Datei counter.txt ausgelesen wird) und ich erhalten von allen die selbe RMANr. (Reparatur-Nr.).

Kurzes Beispiel:

Kunde A geht auf die Seite --> seine RMANr. 2011-001
*Kunde A ist noch nicht fertig mit der Eingabe der Daten.

Kunde B kommt auf die Seite --> seine RMANr. 2011-001

Danach drücken beide auf den Senden Button und ich habe 2x die 2011-001 Nummer in meinem System. :(

Und der Counter steht dan auf 2011-003 (weil er 2 x Mails gesendet hat).

#######

Wenn ich alle 5 Sek. oder sogar alle 3 Sek. die counter.txt Abfrage, ist der Fall gegeben das Kunde B bevor er auf Senden drückt seine RMANr. auf 2011-002 aktualisiert bekommt.
 
Mhm. Du musst die Nummer dann am besten irgendwie anders erhöhen. Vielleicht pro Session oder so?
 
Naja, hab ich mir das erste mal auch gedacht, aber dann habe ich das Problem, dass ich willkürliche RMANr. erhalte.

Sobald ein Kunde die Seite öffnet wird der Wert um 1 erhöt jedoch sendet er nichts bzw. läd er die Seite aus irgend einem Grund neu, geht noch eine Nummer verloren.

RMANr.2011-001 -> RMANr.2011-005 -> RMANr.2011-011

Mit dem kann ich dann leider auch nichts Brauchbares anfangen. :(
 
Nimm eine SQL Datenbank, Tabellenstruktur ala "Kunde, Nummer".
Beim Absenden überprüfst du dann, ob der Kunde schon existiert.
Wenn ja, Nummer verwenden, die schon in der Datenbank gespeichert ist,
wenn nicht, neuen Eintrag in die Datenbank eintragen.
Dazu einfach beim Abschicken gucken, was die letze Nummer war und dann +1 setzen.

Gruß
 
Und wenn du die Nummer erst beim Absenden checkst und dann vergibst, hast du auf keinen Fall eine Dopplung!
 
Hab ich das nicht so beschrieben?
 
Wollte nicht editieren :freak:
 
:freaky: Würd ich gerne machen können, aber ich habe noch nie mit SQL Datenbanken gearbeitet und momentan habe ich keinen Plan wie ich das umsetzten sollte was du mir beschrieben hast.

Ich hätte halt gehofft ob es einen kurzen PHP-String gibt der einfach meine counter.txt alle paar Sekunden abruft.

Mir würde auch schon ein leicht zu verstehender Link zu einem Tutorial weiterhelfen bzw. wie ich das auf google googeln soll Ich hab natürlich im Inet herumgesucht jedoch nichts brauchbares entdeckt.


Ach ja, ich möchte mich noch bei allen für die schnellen Antworten bedanken. :)
 
Hier mal paar Funktionen und Sachen, die du googlen könntest:

1. mysql_connect (PHP) Allgemeines Verbinden mit einem MySQL Server
2. mysql_real_escape_string (PHP) Zur Sicherheit bei Eingabe des Namens
3. mysql_query (PHP) Daten in MySQL umsetzen und Befehle erteilen
4. mysql_num_rows (PHP) Zum überprüfen, ob der Name schon exisitert
5. mysql_fetch_row (PHP) Daten aus der Datenbank wieder rausbekommen

6. mysql query insert (MYSQL) Daten in die Datenbank schreiben (mit mysql_query)
 
Das hatte ich mir auch schon überlegt, nur da habe ich noch ein Problem. In den Verteiler übernehme ich die RMANr aus einer <input> Zeichenfolge und möchte natürlich dem Kunden beim abrufen der homepage seine Nummer ausgeben.

Siehe String:

<p align="right" style="margin-bottom: 0px;">RMA<input type="text" id="IDNr_Field1" name="RMANr." value="2011-<?php echo "$text";?>" style="width: 116px; white-space: pre;" readonly></p>

Somit habe ich die Datei dem Kunden aufgelistet und sobald er auf Senden drückt wird wiederum aus dem selben Feld gelesen und der RMA-Wert mitgeschickt.


Und ich muss leider gestehen das ich jetzt nicht weiß wie ich das in mein Skript einbauen soll das die Nummer vor dem Senden noch einmal aktualisiert wird.

Sorry an alle das ich mich so ungeschickt anstelle. :(

##########

<?php echo "$text";?>


($text wird weiter oben im Quelltext wie folgt deklariert:

<?php
// Datei in eine Variable ($text) einlesen
$text = file_get_contents("counter.txt");

?>

)
Ergänzung ()

1000 x Danke. :)

Ich hab mir die ersten Zeilen durchgelesen und ich glaube zu verstehen wie das grob funktionieren soll.

Nun werde ich mich ein bisschen durchlesen und ich Melde mich wieder sobald ich wieder ein paar Ergebnisse habe.



Nochmals Danke an alle für eure hilfreichen Antworten und wünsch euch noch eine gute Nacht.
lg Marius
 
Zuletzt bearbeitet:
Warum sendest du den Code über ein Input Feld?
Das ist reiner Unsinn. Du kannst den Code einfach direkt beim Absenden in PHP generieren, sollte der Kundenname noch nicht vorhanden sein.
 
generier die nummer beim absenden und gib die nummer dem benutzer nach dem absenden aus (leitest ihn bspw. auf eine "abschicken erfolgreich"-seite weiter;) ), alles andere ist irgendwie dahin gemogelt.
und falls dein skript auch dazu dient, dass man eine weitere mail zu einer vorhandenen RMANr. schicken kann, dann machst du halt ein feld, wo man diese eingeben kann, falls vorhanden, und überprüfst in deinem absenden, ob eine nr eingegeben wurde und falls ja ob diese schon vorhanden ist ;)
machs dir nicht so kompliziert mit dem alle 5 sek refreshen
 
Zurück
Oben