Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在会话中保存HTML表单变量?_Php_Html_Forms_Session - Fatal编程技术网

Php 如何在会话中保存HTML表单变量?

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

我有以下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-12 col-lg-12">
        <div class="card">
            <div class="card-header"  data-background-color="purple">
                <h4 class="title">7. Vorschl&auml;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&auml;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">&Auml;nderungsbedarfe in Informationsmedien des Kreises (Internet/Intranet), die nicht &uuml;ber die Beauftragten der Gesch&auml;fts- und Fachbereiche gel&ouml;st werden k&ouml;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&auml;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查询(使用数据库结构),然后我编辑我的答案以更好地适应您的情况。我更新了我的帖子。数据库结构很好,正如我所说的,当我有一个单独的表单页面而不是多个表单页面站点时,它可以工作。如果您需要它,请让我知道。谢谢!