Array Splitten

  • Themenstarter Themenstarter diamondoftears
  • Beginndatum Beginndatum
D

diamondoftears

Hallo ihr lieben,
Ich möchte einen Array Splitten und dann Eine Datei erstellen.
Mein Code sieht so aus:
Code:
<!DOCTYPE html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</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");
$pflichtfelder = array("Vorname", "Nachname","Email","Betreff",);
$values = array();
$found = array();
$mail= array();
$text = array();
if (!array_key_exists("speichern", $_POST)){
$found = $pflichtfelder;
foreach ($pflichtfelder as $name){
        $values[$name] = "";
}
}
else {
$ok = true;
foreach ($pflichtfelder as $name){
        if (array_key_exists($name, $_POST) && $_POST[$name]){
                array_push($found, $name,$mail,$text);
                $values[$name] = $_POST[$name];
        }
        else {
                $ok = false;
                $values[$name] = "";
        }
}
if (!$ok) echo '<script type="text/javascript">alert("Bitte alle Felder ausfüllen!");</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 name="speichern" value="speichern" type="submit"><input type="reset" value="abbrechen">
</div>
</form>
</body>
</html>
Die Datei soll nur erstellt werden wenn Alle Felder gefüllt sind.
Ausserdem hab ich ein Problem mit meiner Text-Area diese zu Überprüfen
vll hat jemand von euch eine Idee
oder Könnte mir zeigen Wo ich was falsch gemacht habe.
 
Bitte den Code formatiert in [PHP]mein Code[/PHP] setzen.
So wie er jetzt da steht kann man das Ding kaum lesen.
Achja, am besten dann neu reinkopieren, damit die Tabulatoren auch mit drin sind....

Nachtrag: Ich weiss dass man die PHP-Tags auch als Gastaccount benutzen kann...
 
PHP:
<!DOCTYPE html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</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");
$pflichtfelder = array("Vorname", "Nachname","Email","Betreff",);
$pflichtfeld=array("Nachricht");
$values = array();
$found = array();
$mail= array();
$text = array();
$message=array();
if (!array_key_exists("speichern", $_POST)){

$found = $pflichtfelder;
foreach ($pflichtfelder as $name){
        $values[$name] = "";
}
}
else {
$ok = true;
foreach ($pflichtfelder as $name){
        if (array_key_exists($name, $_POST) && $_POST[$name]){
                array_push($found, $name,$mail,$text);
                $values[$name] = $_POST[$name];
        }

        else {
                $ok = false;
                $values[$name] = "";
        }
}
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 name="speichern" value="speichern" type="submit"><input type="reset" value="abbrechen">
</div>
</form>
Entschuldigung das wusste ich nicht.
 
Gut, Und nun sag mir noch welches Array du wie splitten willst.
In Gleich grosse Stücke? Oder nach einer Formel?

Und was hat das Splitten mit der Prüfung ob alle Pflichtfelder ausgefüllt sind zu tun?

Sorry, ich versteh deine Anfrage nicht.
 
$pflichtfelder = array("Vorname", "Nachname","Email","Betreff",);
Naja in dem Array stehn ja die Eingaben der Benutzer. Und die möchte ich halt gerne haben also müsste ich quasi , Splitten.
Ne das mit den Formulareingaben hat damit zu tun, ich möchte wenn alle Felder ausgefüllt sind das eine Datei geschrieben wird: Hans_Meier_datum_Uhrzeit.txt so soll die Heissen und drin stehn tut nur die Nachricht und der Betreff.
Danke für Deine Hilfe :)
 
a:4:{i:0;s:7:"Vorname";i:1;s:8:"Nachname";i:2;s:5:"Email";i:3;s:7:"Betreff";}Vorname:
ist meine Ausgabe :/
und $pflichtfelder = array("Vorname", "Nachname","Email","Betreff",);
$String = serialize($pflichtfelder);
echo $String;
funktioniert nicht habs auch schon mit implode explode versucht Nichts..
 
Das ist nicht wirklich Splitten.

Du kannst jederzeit auf dei Felder zugreifen
PHP:
if(!isset($pflichtfelder['Vorname'])){
   //TODO Meldung: Vorname ist leer
}

Und zum speichern
PHP:
//TODO $now = date(dein Format);
$file = fopen("{$values['Vorname']}_{$values['Nachname']}_{$now}.txt", 'a')
fwrite($file, $values['Nachricht']);
fclose($file);

Nachtrag: Serialisieren brauchst du nur um das Ganze zu übermitteln. Ist sicher das falsche.....
 
ah ok aber kann ich nicht irgendwie sagen bei der ersten Funktion: als Anweisung speicher dich in eine Variable?
 
Zurück