Php 如何在会话中保存HTML表单变量?
我有以下7个不同站点的表单结构:Php 如何在会话中保存HTML表单变量?,php,html,forms,session,Php,Html,Forms,Session,我有以下7个不同站点的表单结构: <div class="row"> <!-- Formular start --> <form id="formular" action="datenbankanbindung.php" method="POST"> <!-- Vorschläge für Bedarfe an Mitarbeiterinformation --> <div class="col-sm-12 col-md-1
<div class="row">
<!-- Formular start -->
<form id="formular" action="datenbankanbindung.php" method="POST">
<!-- Vorschläge für Bedarfe an Mitarbeiterinformation -->
<div class="col-sm-12 col-md-12 col-lg-12">
<div class="card">
<div class="card-header" data-background-color="purple">
<h4 class="title">7. Vorschläge für Bedarfe an Mitarbeiterinformation</h4>
<p class="category"></p>
</div>
<div class="card-content">
<!--7.1-->
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-4">
<div class="form-group label-floating optimaler-abstand">
<div class="label">
<label for="ThemenvorschlaegeFreitagsmail">
<div class="aufzählung">7.1
</div>
<div class="beschreibung">Themenvorschläge Freitagsmail</div>
</label>
<textarea class="form-control" id="ThemenvorschlaegeFreitagsmail" name="name_ThemenvorschlaegeFreitagsmail" rows="1" maxlength="250"></textarea>
</div>
</div>
</div>
<!--7.2-->
<div class="col-sm-12 col-md-12 col-lg-4">
<div class="form-group label-floating optimaler-abstand">
<div class="label">
<label for="AenderungsbedarfeInformationsmedien">
<div class="aufzählung">7.2
</div>
<div class="beschreibung">Änderungsbedarfe in Informationsmedien des Kreises (Internet/Intranet), die nicht über die Beauftragten der Geschäfts- und Fachbereiche gelöst werden können.</div>
</label>
<textarea class="form-control" id="AenderungsbedarfeInformationsmedien" name="name_AenderungsbedarfeInformationsmedien" rows="1" maxlength="250"></textarea>
</div>
</div>
</div>
<!--7.3-->
<div class="col-sm-12 col-md-12 col-lg-4">
<div class="form-group label-floating optimaler-abstand">
<div class="label">
<label for="VorschlaegePressemitteilungen">
<div class="aufzählung">7.3
</div>
<div class="beschreibung">Vorschläge für Pressemitteilungen</div>
</label>
<textarea class="form-control" id="VorschlaegePressemitteilungen" name="name_VorschlaegePressemitteilungen" rows="1" maxlength="250"></textarea>
</div>
</div>
</div>
</div>
<!-- Button -->
<div class="row">
<!--absenden-->
<div style="float:right">
<button class="btn btn-primary" type="submit" id="button">absenden</button>
</div>
<!--Eingaben speichern-->
<div style="float:right">
<button class="btn btn-primary" id="button" onclick="eingaben_speichern()">Eingaben speichern</button>
</div>
</div>
</div>
</div>
</div>
</form>
7.Vorschlä;ge für Bedarfe和Mitarbeiterin信息
7.1
环境与环境管理局;通用电气公司
7.2
Ä;互联网/内联网(Internet/Intranet)、nicht和uuml等信息领域的专家;博夫特拉格滕酒店;fts-und Fachbereiche凝胶和ouml;圣沃登kö;尼恩。
7.3
Vorschlä;通用电气电气公司
阿本登
埃因加本·斯皮切恩
现在我想将所有变量存储到一个会话中,我可以在最后一个站点结束时将它们保存到我的数据库中
我所做的唯一一件事就是在每个站点的开头粘贴此代码:
<?php
session_start();
foreach ($_POST as $key => $value) {
$_SESSION['post'][$key] = $value;
}
?>
在my database.php中,我粘贴了以下代码:
<?php
session_start();
foreach ($_POST as $key => $value) {
$_SESSION['post'][$key] = $value;
}
//function to extract array
extract($_SESSION['post']);
?>
但是没有变量被粘贴到我的数据库中
我不得不说,数据库和所有的工作都很好,因为在我创建7个不同的站点之前,我有一个包含所有表单元素的站点,它工作得很好
这可能是一个解决方案吗
<?php
$_SESSION['name'] = "wert";
?>
是否必须将每个表单字段的每个名称存储到会话变量中?
或者有没有可能用foreach实现这一点
编辑:
这是我的database.php。当执行database.php时,它会在数据库中为我创建一个空行
<?php
session_start();
if (!empty($_POST)) {
$_SESSION['post'] = $_POST;
}
//blendet alle Meldungen (Notizen) aus.
ini_set('display_errors','off');
//Tabelle Landrat
//Datenbankverbindung herstellen
function Connect()
{
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "landrat";
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
//Kodierung auf UTF-8 stellen, da sonst Umlaute falsch dargestellt werden
$conn->set_charset("utf8");
return $conn;
}
//Notizen beim Ausführen können vernachlässigt werden -> werden mit obiger Anweisung ausgeblendet
//Variablen den einzelnen Formlarfeldern zuweisen und mit Datenbank verbinden
$conn = Connect();
//Datum
$date = date("Y-m-d");
//In welche Tabelle soll alles gespeichert werden? Alle Eingaben in die jeweiligen Spalten schreiben
$query = "INSERT into landrat_dashboard (name_Gleitzeitrahmen,name_Abweichungen,name_Mehrarbeitervolumen,name_Mehrarbeit1,name_Ausgleich,name_Mehrarbeit2,name_Personalmassnahmen,
name_Ueberstunden_abzusehen,name_Klaerungsbedarfe1,name_Klaerungsbedarfe2,name_durchgefuehrt,name_abgelehnt,name_offen,name_Fortbildungsantraege,name_Antraege_genehmigt,name_Antraege_abgelehnt,
name_Fortbildung,name_Fachbereichsleiterbesprechungen,name_Datum1,name_Datum2,name_Datum3,name_Datum4,name_Datum5,name_Themen, name_Fragestellungen,name_NeueMitarbeiter,name_BekannteFluktuation,
name_Geschaeftsverteilungsaenderungen,name_Raumplanung,name_Verwaltungsverfahren,name_ITEinsatz,name_Kooperationen,name_ProjekttitelA,name_ProjektverantwortlicheA,name_ZeitplanA,name_BudgetA,name_ProjekttitelB,
name_ProjektverantwortlicheB,name_ZeitplanB,name_BudgetB,name_ProjekttitelC,name_ProjektverantwortlicheC,name_ZeitplanC,name_BudgetC,name_ProjekttitelD, name_ProjektverantwortlicheD,
name_ZeitplanD,name_BudgetD,name_ProjekttitelE,name_ProjektverantwortlicheE,name_ZeitplanE,name_BudgetE,name_Kreisentwicklungskonzept,name_Kooperation1,name_Kooperation2,name_StatusberichtA,
name_StatusberichtB,name_StatusberichtC,name_StatusberichtD,name_StatusberichtE,name_Fallzahlenentwicklungen,name_Haushaltsansaetze,name_AnzeichenAbweichung1,name_OffeneForderungen,
name_Kreistag,name_AnzeichenAbweichung2,name_SonstigeVeranstaltungen,name_ThemenvorschlaegeFreitagsmail,name_AenderungsbedarfeInformationsmedien,name_VorschlaegePressemitteilungen,datum)
VALUES('" . $name_Gleitzeitrahmen . "','" . $Abweichungen . "','" . $Mehrarbeitervolumen . "','" . $Mehrarbeit1 . "','" . $Ausgleich . "','" . $Mehrarbeit2 . "','" . $Personalmaßnahmen . "','"
. $Überstunden_abzusehen . "','" . $Klärungsbedarfe1 . "','" . $Klärungsbedarfe2 . "','" . $durchgeführt . "','" . $abgelehnt . "','" . $offen . "','" . $Fortbildungsanträge . "','"
. $Anträge_genehmigt. "','" . $Anträge_abgelehnt . "','" . $Fortbildung . "','" . $Fachbereichsleiterbesprechungen . "','" . $Datum1 . "','" . $Datum2 . "','" . $Datum3 . "','"
. $Datum4 . "','" . $Datum5 . "','" . $Themen . "','" . $Fragestellungen . "','" . $NeueMitarbeiter . "','" . $BekannteFluktuation . "','" . $Geschäftsverteilungsänderungen . "','"
. $Raumplanung . "','" . $Verwaltungsverfahren . "','" . $ITEinsatz . "','" . $Kooperationen . "','" . $ProjekttitelA . "','" . $ProjektverantwortlicheA . "','" . $ZeitplanA . "','"
. $BudgetA . "','". $ProjekttitelB . "','" . $ProjektverantwortlicheB . "','" . $ZeitplanB . "','" . $BudgetB . "','" . $ProjekttitelC . "','" . $ProjektverantwortlicheC . "','"
. $ZeitplanC . "','" . $BudgetC ."','" . $ProjekttitelD . "','" . $ProjektverantwortlicheD . "','" . $ZeitplanD . "','" . $BudgetD . "','" . $ProjekttitelE . "','"
. $ProjektverantwortlicheE . "','" . $ZeitplanE . "','" . $BudgetE . "','" . $Kreisentwicklungskonzept . "','" . $Kooperation1 . "','" . $Kooperation2 . "','" . $StatusberichtA . "','"
. $StatusberichtB . "','" . $StatusberichtC . "','" . $StatusberichtD . "','" . $StatusberichtE . "','" . $Fallzahlenentwicklungen . "','" . $Haushaltsansätze ."','" . $AnzeichenAbweichung1 . "','"
. $OffeneForderungen . "','" . $Kreistag . "','" . $AnzeichenAbweichung2 . "','" . $SonstigeVeranstaltungen . "','" . $ThemenvorschlägeFreitagsmail . "','" . $ÄnderungsbedarfeInformationsmedien . "','"
. $VorschlägePressemitteilungen . "','" . $date . "')";
$success = $conn->query($query);
//Bei Error
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
//Verbindung zur Datenbank schliessen
$conn->close();
?>
您需要检查表单是否已发送
session_start();
if (!empty($_POST)) {
$_SESSION['post'] = $_POST; // no foreach needed
}
您似乎设置了两次会话而没有阅读它?当然,如果您要使用它,您的db.php文件不需要再次设置它,当我有更多变量时,我会这样做吗?会话_start();如果(!empty($\u POST)){$\u SESSION['POST']=$\u POST;//不需要foreach需要$\u SESSION['post2']=$\u POST;…}哪些变量?$\u POST
中的所有键都保存到$\u会话['POST']
中。其他$\u会话
保持不变。尝试此代码并添加print\r($_SESSION['post'])代码>之后。你们可以像我写的那个样分配整个数组。好的,我试过了,但我的数据库中并没有存储任何值。我已经在我的database.php中插入了这个,正如您所说的:session_start();如果(!empty($\u POST)){$\u SESSION['POST']=$\u POST;}可能是因为我的sql查询。如果一个文本字段的名称是“name\u textfield”,我可以在我的database.php?中用相同的名称调用它。。。。值(“%$name_textfield.”,“..@CK2513:您没有向我们显示SQL查询。只保存到会话,而不检查表单是否在之前发送。如果您想将表单中的值直接保存到数据库中,则不需要在之前将其保存到会话中。更新您的问题并显示SQL查询(使用数据库结构),然后我编辑我的答案以更好地适应您的情况。我更新了我的帖子。数据库结构很好,正如我所说的,当我有一个单独的表单页面而不是多个表单页面站点时,它可以工作。如果您需要它,请让我知道。谢谢!