2.5k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von bluecrystal21 Einsteiger_in (15 Punkte)
Hallo ihr Lieben bin neu hier,
Hoffe ihr könnt mein Problem verstehen hab schon in einigen Foren gesucht aber nichts gefunden:
Mein Problem ist Ich möchte eingegebene Formulardaten in eine Datei schreiben.
Das Funktioniert auch, aber wenn ein Feld nicht Gefüllt ist wird es trotzdem gemacht.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Supportinfo</title>
<style type="text/css">
.toFill {
border: 1px solid red;
}
</style>
</head>
<body background="hintergrundfertig.png" alt="Bild">
<form action="" method="POST">
<div align="right" style="position:absolute;top:190px; right:10px;"><font color="yellow"><b>
<?php
ob_start();
setlocale(LC_TIME, "de_DE");
date_default_timezone_set("Europe/Berlin");
$komplett = true;
$Datum = date('d-m-y');
$Uhrzeit = date('h-i-s');
$Trennzeichen= ("_");
$pflichtfelder = array("Vorname", "Nachname", "Email", "Betreff");
$values = array("Vorname");
$Nachname = array("Nachname");
$Email=array("Email");
$Betreff=array("Betreff");
$found = array();
$mail= array();
$text = array();
$Nachricht = $_POST['Nachricht'];
if (!array_key_exists("speichern", $_POST)){
$found = $pflichtfelder;
foreach ($pflichtfelder as $name){
$values[$name] = "";
$Nachname[$name]="";
$Email[$name]="";
$Betreff[$name]="";
}
}
else {
$ok = true;
foreach ($pflichtfelder as $name){
if (array_key_exists($name, $_POST) && $_POST[$name]){
array_push($found, $name);
$values[$name] = $_POST[$name];
$Nachname[$name]=$_POST[$name];
$Email[$name]=$_POST[$name];
$Betreff[$name]=$_POST[$name];
}
else {
$ok = false;
$values[$name] = "";
}
}
}
$Datei=$values["Vorname"].$Trennzeichen.$Nachname["Nachname"].$Trennzeichen.$Datum.$Trennzeichen.$Uhrzeit.".txt";
$File = fopen($Datei, "w+");
fwrite($File,$Email["Email"]."\n\r".$Betreff["Betreff"]);
fwrite($File,"\n\r".$Nachricht);
fclose($File);
if (!$ok) echo '<script type="text/javascript">alert("Bitte alle Felder ausfüllen!");</script>';
else echo '<script type="text/javascript">alert("Ihre Mail wurde versendet");</script>';
foreach ($pflichtfelder as $name){
echo $name . ': <input name="' . $name . '" value="' . $values[$name] . '"';
if (array_search($name, $found) === false) {
echo ' class="toFill"';
}
echo "><br>\n";
}
?>
<textarea name="Nachricht" cols="40" rows="20"></textarea><br />
<input id ="Send" name="speichern" value="speichern" type="submit"><input type="reset" value="abbrechen">
<script type="text/javascript">
<!--
var Sekunden = 30;
var Buttonbeschriftung = "Abschicken";

document.getElementById('Send').disabled = true;

for(i = 1; i <= Sekunden; i++)
{
window.setTimeout("ButtonAktualisieren(" + i + ")", i*1000);
}

window.setTimeout("ButtonFreigeben()", Sekunden*1000);

function ButtonAktualisieren(VergangeneSekunden)
{
if(VergangeneSekunden == Sekunden)
{
document.getElementById('Send').value = Buttonbeschriftung;
}
else
{ {
Restsekunden = Sekunden-VergangeneSekunden;
document.getElementById('Send').value = Buttonbeschriftung + " (" + Restsekunden + ") ";
}
}
function ButtonFreigeben()
{
document.getElementById('Send').disabled = false;
}
</script>
</div>
</form>
</body onLoad="javascript: countdown();">
</html>

Ich weis nicht wie ich die Schleife bauen soll das er nur Datei schreibt wenn alles Voll ist. Ich hoff ihr könnt mir Helfen :(

4 Antworten

0 Punkte
Beantwortet von bluecrystal21 Einsteiger_in (15 Punkte)
Hat sich erledigt habs geändert:
if (!$ok) echo '<script type="text/javascript">alert("Bitte alle Felder ausfüllen!");</script>';
else {echo '<script type="text/javascript">alert("Ihre Mail wurde versendet");</script>';
$Datei=$values["Vorname"].$Trennzeichen.$Nachname["Nachname"].$Trennzeichen.$Datum.$Trennzeichen.$Uhrzeit.".txt";
$File = fopen($Datei, "w+");
fwrite($File,$Email["Email"]."\n\r".$Betreff["Betreff"]);
fwrite($File,"\n\r".$Nachricht);
fclose($File);
}

Funktioniert :)
0 Punkte
Beantwortet von bluecrystal21 Einsteiger_in (15 Punkte)
funktioniert doch nicht +heul+
0 Punkte
Beantwortet von
hier ist ein brauchbares Tutorial: Affenformular

Das Konzept deines eigenen Entwurfs erscheint unausgereift, daher rate ich dir dringend, es zu verwerfen und mit dem o.g. Tutorial neu zu beginnen.

Insbesondere ist die serverseitige Prüfung verknüpft mit einer JavaScript-Fehlermeldung kompletter Unsinn. Wen du schon PHP zur Prüfung nutzt, dann gib auch darüber deine Meldungen aus, anstatt zu hoffen, dass JS aktiviert ist.
0 Punkte
Beantwortet von bluecrystal21 Einsteiger_in (15 Punkte)
ic habs schon 2 ma gebaut ich wills jetz nich ncohma machen .....
...