我在网上搜索了大约一个小时,没有找到适合我需要的东西,所以我希望你能帮助我。
故事:我有一个网站,您可以在其中订购一些东西。如果您愿意,您也可以上传图片。应将此图像(连同包含详细信息的 .txt 文件)传输到创建的文件夹中。但它不能正常工作
我的技术:
我只使用 php 进行验证。提交的表单将发送给自身,并在成功通过验证后将表单数据保存在会话中,以保证对处理数据的 .php 文件的访问。处理数据的文件具有三个主要功能: handle_form(调用的函数,它包装所有其他任务和函数) move_image(应该传输图像的函数) create_auftrag(创建文件夹和 .txt 文件的函数)
除了 move_image 表单之外,一切都运行良好,我只是不知道为什么。所以这里是验证表单的文件代码:
<?php
$error_style = "";
$variante = 0;
$first_time = true;
$varianten_error = "";
$fehler = false;
echo $_POST["varianten"];
if ($_POST["varianten"] == "vorlage") {
$variante = 1;
} elseif ($_POST["varianten"] == "digital") {
$variante = 2;
$varianten_error.= $variante;
} elseif ($_POST["varianten"] == "hardcopy") {
$variante = 3;
$varianten_error.= $variante;
}
if(isset($_POST["form_id"]))
{
include_once("assets/scripts/php/formvalidation.inc.php");
// Neues Testobjekt erstellen
$pruefung= new FormValidation("auftragsformular");
// Prüfungen für Felder definieren
$pruefung->requireField("name", new FieldFilled(), "Bitte geben Sie einen Namen ein.");
$pruefung->requireField("email", new FieldEmail(), "Bitte geben Sie eine Email-Adresse an.");
$pruefung->requireField("plz", new FieldZipCode(), "Bitte geben Sie eine Postleitzahl ein.");
$pruefung->requireField("ort", new FieldFilled(), "Bitte geben Sie einen Ort an.");
$pruefung->requireField("strasse", new FieldFilled(), "Bitte geben Sie eine Straße ein.");
$pruefung->requireField("hausnr", new FieldNumber(), "Bitte geben Sie eine Hausnummer an.");
$pruefung->requireField("hoehe", new FieldNumber(), "Bitte geben Sie die Höhe Ihres Sicherungskastens an.");
$pruefung->requireField("breite", new FieldNumber(), "Bitte geben Sie die Breite Ihres Sicherungskastens an.");
$pruefung->requireField("agb", new FieldFilled(), "Bitte akzeptieren Sie die AGB.");
$pruefung->requireField("varianten", new FieldFilled(), "Bitte wählen Sie eine Variante aus.");
// Prüfung ausführen
if($pruefung->check())
{
// Weiterverarbeitung der Formulardaten
if ($variante == 1) {
if (!isset($_POST['vorlagen'])) {
$varianten_error .= "Bitte wählen sie eine Vorlage aus.";
$fehler = true;
}
} elseif ($variante == 2) {
if (!isset($_FILES['upload'])) {
$varianten_error .= "Bitte laden sie ein Bild hoch.";
$fehler = true;
} elseif ($bildinfo === false) {
$varianten_error .= "Bitte laden sie ein Bild mit korrekter Dateiendung hoch.";
$fehler = true;
}
} elseif ($variante == 3) {
if (!isset($_POST['bildbreite'])) {
$varianten_error .= "Bitte geben sie die Breite ihres Bildes an.";
$fehler = true;
}elseif (!isset($_POST['bildhoehe'])) {
$varianten_error .= "Bitte geben sie die Höhe ihres Bildes an.";
$fehler = true;
}
} elseif (isset($_POST['your_email'])) { // robot field
$fehler = true;
}else {
$fehler = false;
}
$first_time = false;
}
else
{
// Ausgabe der Fehlermeldungen und -styles
$fehler = true;
$error_style = $pruefung->outStyles;
echo $error_style;
$first_time = false;
}
}
if ( $fehler == true ) {
$firma = htmlspecialchars($_POST["firma"]);
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$tel = htmlspecialchars($_POST["tel"]);
$plz = htmlspecialchars($_POST["plz"]);
$ort = htmlspecialchars($_POST["ort"]);
$strasse = htmlspecialchars($_POST["strasse"]);
$hausnr = htmlspecialchars($_POST["hausnr"]);
$hoehe = htmlspecialchars($_POST["hoehe"]);
$breite = htmlspecialchars($_POST["breite"]);
$bildhoehe = htmlspecialchars($_POST["bildbreite"]);
$bildbreite = htmlspecialchars($_POST["bildhoehe"]);
$upload = $_FILES["upload"];
echo
"<script type='text/javascript'>
$(document).ready(function(){
$('#errorModal').reveal();
$('#step0').show();
$('#step1').hide();
$('#step2').hide();
$('#senden').hide();
selectStep(0);
});
</script>";
} elseif ($first_time == false and $fehler == false) {
SESSION_START();
$_SESSION["firma"] = htmlspecialchars($_POST["firma"]);
$_SESSION["name"] = htmlspecialchars($_POST["name"]);
$_SESSION["email"] = htmlspecialchars($_POST["email"]);
$_SESSION["tel"] = htmlspecialchars($_POST["tel"]);
$_SESSION["plz"] = htmlspecialchars($_POST["plz"]);
$_SESSION["ort"] = htmlspecialchars($_POST["ort"]);
$_SESSION["strasse"] = htmlspecialchars($_POST["strasse"]);
$_SESSION["hausnr"] = htmlspecialchars($_POST["hausnr"]);
$_SESSION["hoehe"] = htmlspecialchars($_POST["hoehe"]);
$_SESSION["breite"] = htmlspecialchars($_POST["breite"]);
$_SESSION["bildbreite"] = htmlspecialchars($_POST["bildbreite"]);
$_SESSION["bildhoehe"] = htmlspecialchars($_POST["bildhoehe"]);
$_SESSION["upload"] = $_FILES["upload"];
$_SESSION["src"] = $_FILES["upload"]["tmp_name"];
$_SESSION["variante"] = $variante;
$_SESSION["vorlage"] = htmlspecialchars($_POST["vorlagen"]);
header('Location: ../../assets/scripts/php/auftragform.php');
}else {
$firma = "";
$name = "";
$email = "";
$tel = "";
$plz = "";
$ort = "";
$strasse = "";
$hausnr = "";
$hoehe = "";
$breite = "";
$bildhoehe = "";
$bildbreite = "";
$upload = "";
}
?>
这是处理数据的文件的代码。我确定所有访问权限都已授予,因为创建文件夹和 .txt 文件可以正常工作。
<?php
include("minimail.php");
SESSION_START();
$firma = $_SESSION["firma"];
$name = $_SESSION["name"];
$email = $_SESSION["email"];
$tel = $_SESSION["tel"];
$plz = $_SESSION["plz"];
$ort = $_SESSION["ort"];
$strasse = $_SESSION["strasse"];
$hausnr = $_SESSION["hausnr"];
$hoehe = $_SESSION["hoehe"];
$breite = $_SESSION["breite"];
$bildhoehe = $_SESSION["bildhoehe"];
$bildbreite = $_SESSION["bildbreite"];
$variante = $_SESSION["variante"];
$vorlage = $_SESSION["vorlage"];
foreach ($_SESSION as $item => $value) {
echo "$item: $value <br>";
}
foreach ($_SESSION["upload"] as $item => $value) {
echo "$item: $value <br>";
}
function deleteFolder($albumPath){
$items = scandir($albumPath);
foreach($items as $item){
if ($item != "." && $item != "..") {
$itemPath = $albumPath.'/'.$item;
if(is_dir($itemPath)){
// Unterordner löschen
deleteFolder($itemPath);
}else{
// Datei löschen
unlink($itemPath);
}
}
}
rmdir($albumPath);
}
function create_auftrag ($src = ""){
echo "funktion aufgerufen";
$name = $GLOBALS['name'];
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$oldpath = $_SERVER['DOCUMENT_ROOT']."/Auftraege/";
deleteFolder($oldpath);
mkdir($oldpath);
chmod($oldpath, 0777);
$path = $_SERVER['DOCUMENT_ROOT']."/Auftraege/".$datum.$name."/";
echo($path);
$filename = $datum.$name.".txt";
if(!dirname($path)!= $path) {
if (mkdir ($path))
{ echo "Der Pfad wurde angelegt<br>"; }
else
{ die("Der Ordner für den Auftrag konnte nicht angelegt werden."); }
}
if(file_exists($path.$filename))
{ $filename = $datum.$name."_kopie.txt"; }
$file = fopen($path.$filename, "w");
// in die Datei schreiben
$geschrieben = fwrite($file,
"
Name: $name
Datum: $datum
Uhrzeit: $uhrzeit
Firma: ".$GLOBALS['firma']."
Email: ".$GLOBALS['email']."
Tel. : ".$GLOBALS['tel']."
PLZ : ".$GLOBALS['plz']."
Ort : ".$GLOBALS['ort']."
Strasse : ".$GLOBALS['strasse']."
Hausnr : ".$GLOBALS['hausnr']."
Höhe des Sicherungskastens : ".$GLOBALS['hoehe']."
Breite des Sicherungskastens : ".$GLOBALS['breite']."
Variante : ".$GLOBALS['variante']."
Vorlage : ".$GLOBALS['vorlage']."
Upload : ".$img['name']."
Bildhoehe : ".$GLOBALS['bildhoehe']."
Bildbreite : ".$GLOBALS['bildbreite']."
"
);
// Datei schliessen
fclose($file);
if(isset($img)){
move_image($src, $path);
}
}
function move_image($src, $destination) {
$ziel = $destination.$_SESSION["upload"]["name"];
echo "$src";
echo "$ziel";
while (file_exists($ziel)) {
$ziel = $destination."kopie_".$img["name"];
}
if (rename($src, $ziel)) {
echo "Bildpuload hat geklappt";
} else {
echo "Bildupload hat nicht geklappt";
}
}
function handle_form(){
$error = false;
$variante = $GLOBALS['variante'];
$upload = $GLOBALS['upload'];
if ($variante == 1) {
create_auftrag();
} elseif ($variante == 2) {
$ziel = $_SESSION["upload"]["tmp_name"]."/".$_SESSION["upload"]["name"];
echo "$ziel";
create_auftrag($ziel);
} elseif ($variante == 3) {
create_auftrag();
}
}
handle_form();
?>
如果您想现场观看它,请前往http://sicherung.wiv-dev.de/auftrag,但不要怀疑语言,我是德国人。我知道代码很大而且问题很模糊,但是除了向您寻求帮助之外,我还没有看到任何其他方法。