eintrag.php für mehrere Seiten verwenden


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

DerTrojaner

Mitglied
Moin zusammen,

ich habe ein kleines Hindernis vielleicht kann mir ja einer helfen. Und zwar habe ich mehrere php seiten bsp. zulauf.php und wasser.php, nun habe ich auch eine php Datei namens eintrag.php, die erstellt Datensätze für zulauf.php. Nun möchte ich aber auch für wasser.php einen Datensatz durch die datei eintrag.php erstellen und nicht noch ein eintrag1.php erstellen, damit ich in wasser.php einen Datensatz erstellen kann.

Das ist die eintrag.php Datei vielleicht könnt ihr mir sagen was ich machen muss damit es funktioniert.
PHP:
<link rel="stylesheet" type="text/css" href="style.css">
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="Javascript.js"></script>

<?php
    require_once("index.php");
    if(isset($_POST["neuerDatensatzZulauf"])){
    $Tag = $_POST["Tag"];
#    $Wochentag = $_POST["Wochentag"];
    $Uhrzeit = $_POST["Uhrzeit"];
    $Wert = $_POST["Wert"];
    $Lufttemperatur = $_POST["Lufttemperatur"];
    $Abwassertemperatur = $_POST["Abwassertemperatur"];
    $pH_Wert = $_POST["pH_Wert"];
    $Flotation = $_POST["Flotation"];
    $Zulauf = $_POST["Zulauf"];

    // Ob , oder . eingetragen wird ist egal er checkt es
    $Lufttemperatur = str_replace(',', '.', $Lufttemperatur);
    $Abwassertemperatur = str_replace(',', '.', $Abwassertemperatur);
    $pH_Wert = str_replace(',', '.', $pH_Wert);

    // Verbindung zur Datenbankk
    $db_con = mysqli_connect($servername, $username, $password, $dbname);

    // String für SQL-Anweisung erstellen
    $insertString = "INSERT INTO zulauf(Tag, /*Wochentag,*/ Uhrzeit, Wert, Lufttemperatur, Abwassertemperatur, pH_Wert, Flotation,Zulauf)
      VALUES ('".$Tag."','".$Uhrzeit."','".$Wert."', '".$Lufttemperatur."', '".$Abwassertemperatur."', '".$pH_Wert."', '".$Flotation."', '".$Zulauf."');";
    ############### Falls Wochentag gebraucht wird einfach '".$Wochentag."', einsetzten ###################

    // SQL-Anweisung durchführen
    $check = mysqli_query($db_con, $insertString);

    if($check) {
        echo "Ein neuer Datensatz erfolgreich hinzugefügt";
    }}

?>

<form action="eintrag.php" method="post">
  <div id="input">
    <!--- Tag -------------------------------------------------------------------------->
      <label for="Tag"> Tag</label><br>
      <input type="text" autocomplete="off" name="Tag" class="tcal" placeholder="Tag / Datum "><br>
    <!--- Wochentag -------------------------------------------------------------------->
    <!---  <label for="Wochentag"> Wochentag</label><br>
        <select name="Wochentag" required>
          <option value="Montag">Montag</option>
          <option value="Dienstag">Dienstag</option>
          <option value="Mittwoch">Mittwoch</option>
          <option value="Donerstag">Donerstag</option>
          <option value="Freitag">Freitag</option>
          <option value="Samstag">Samstag</option>
          <option value="Sonntag">Sonntag</option>
        </select> -------->
    <!--- Uhrzeit ---------------------------------------------------------------------->
      <label for="Uhrzeit"> Uhrzeit</label><br>
      <input type="text" autocomplete="off" name="Uhrzeit" placeholder="Uhrzeit"><br>
    <!--- Wert ------------------------------------------------------------------------->
      <label for="Wert"> Wert</label><br>
      <input type="text" autocomplete="off" name="Wert" placeholder="Wert"><br>
    <!--- Lufttemperatur --------------------------------------------------------------->
      <label for="Lufttemperatur"> Lufttemperatur</label><br>
      <input type="text" autocomplete="off" name="Lufttemperatur" placeholder="Lufttemperatur"><br>
    <!--- Abwassertemperatur ----------------------------------------------------------->
      <label for="Abwassertemperatur"> Abwassertemperatur</label><br>
      <input type="text" autocomplete="off" name="Abwassertemperatur" placeholder="Abwassertemperatur"><br>
    <!--- pH_Wert ---------------------------------------------------------------------->
      <label for="pH_Wert"> pH_Wert</label><br>
      <input type="text" autocomplete="off" name="pH_Wert" placeholder="pH_Wert"><br>
    <!--- Flotation -------------------------------------------------------------------->
      <label for="Flotation"> Flotation</label><br>
      <input type="text" autocomplete="off" name="Flotation" placeholder="Flotation"><br>
    <!--- Zulauf ----------------------------------------------------------------------->
      <label for="Zulauf"> Zulauf</label><br>
      <input type="text" autocomplete="off" name="Zulauf" placeholder="Zulauf"><br>
  </div>

  <p>
    <input type="submit" name="neuerDatensatzZulauf" value="Zulauf eintragen">
    <input type="reset">
  </p>

  <?php
    if (isset($_POST['neuerDatensatzZulauf'])) {
      echo '<meta http-equiv="refresh" content="0.1; URL=zulauf.php">';
    }
   ?>
</form>
 

Yaslaw

n/a
Moderator
Ein einfacher if() oder besse noch ein switch() und dann den anderen Inhalt. rein

PHP:
switch($type){
    case 'zulauf'
        //TODO: Zulauf ausprogrammieren
        break;
    case 'wasser'
        //TODO: Wasser ausprogrammieren
        break;
}[code]

Jetzt musst du beim Aufrufen nur noch den $type mitgeben
 

Yaslaw

n/a
Moderator
Umgekehrt. Du gibt $type von der anderen Seite mit. Entweder über die Session (einlesen zu dem Thema lohnt sich) oder über die URL
 

DerTrojaner

Mitglied
Habe es so gemacht aber leider kommt
Parse error: syntax error, unexpected end of file, expecting case (T_CASE) or default (T_DEFAULT) or '}' in C:\xampp\htdocs\Website\eintrag.php on line 99

ich finde jetzt nicht den Fehler, kannst du mir da helfen ?

PHP:
<?php
switch($type){
    case 'zulauf':
        if(isset($_POST["neuerDatensatzZulauf"])){
        $Tag = $_POST["Tag"];
    #    $Wochentag = $_POST["Wochentag"];
        $Uhrzeit = $_POST["Uhrzeit"];
        $Wert = $_POST["Wert"];
        $Lufttemperatur = $_POST["Lufttemperatur"];
        $Abwassertemperatur = $_POST["Abwassertemperatur"];
        $pH_Wert = $_POST["pH_Wert"];
        $Flotation = $_POST["Flotation"];
        $Zulauf = $_POST["Zulauf"];

        // Ob , oder . eingetragen wird ist egal er checkt es
        $Lufttemperatur = str_replace(',', '.', $Lufttemperatur);
        $Abwassertemperatur = str_replace(',', '.', $Abwassertemperatur);
        $pH_Wert = str_replace(',', '.', $pH_Wert);

        // Verbindung zur Datenbankk
        $db_con = mysqli_connect($servername, $username, $password, $dbname);

        // String für SQL-Anweisung erstellen
        $insertString = "INSERT INTO zulauf(Tag, /*Wochentag,*/ Uhrzeit, Wert, Lufttemperatur, Abwassertemperatur, pH_Wert, Flotation,Zulauf)
          VALUES ('".$Tag."','".$Uhrzeit."','".$Wert."', '".$Lufttemperatur."', '".$Abwassertemperatur."', '".$pH_Wert."', '".$Flotation."', '".$Zulauf."');";
        ############### Falls Wochentag gebraucht wird einfach '".$Wochentag."', einsetzten ###################

        // SQL-Anweisung durchführen
        $check = mysqli_query($db_con, $insertString);

        if($check) {
            echo "Ein neuer Datensatz erfolgreich hinzugefügt";
        }}

    ?>

    <form action="eintrag.php" method="post">
      <div id="input">
        <!--- Tag -------------------------------------------------------------------------->
          <label for="Tag"> Tag</label><br>
          <input type="text" autocomplete="off" name="Tag" class="tcal" placeholder="Tag / Datum "><br>
        <!--- Wochentag -------------------------------------------------------------------->
        <!---  <label for="Wochentag"> Wochentag</label><br>
            <select name="Wochentag" required>
              <option value="Montag">Montag</option>
              <option value="Dienstag">Dienstag</option>
              <option value="Mittwoch">Mittwoch</option>
              <option value="Donerstag">Donerstag</option>
              <option value="Freitag">Freitag</option>
              <option value="Samstag">Samstag</option>
              <option value="Sonntag">Sonntag</option>
            </select> -------->
        <!--- Uhrzeit ---------------------------------------------------------------------->
          <label for="Uhrzeit"> Uhrzeit</label><br>
          <input type="text" autocomplete="off" name="Uhrzeit" placeholder="Uhrzeit"><br>
        <!--- Wert ------------------------------------------------------------------------->
          <label for="Wert"> Wert</label><br>
          <input type="text" autocomplete="off" name="Wert" placeholder="Wert"><br>
        <!--- Lufttemperatur --------------------------------------------------------------->
          <label for="Lufttemperatur"> Lufttemperatur</label><br>
          <input type="text" autocomplete="off" name="Lufttemperatur" placeholder="Lufttemperatur"><br>
        <!--- Abwassertemperatur ----------------------------------------------------------->
          <label for="Abwassertemperatur"> Abwassertemperatur</label><br>
          <input type="text" autocomplete="off" name="Abwassertemperatur" placeholder="Abwassertemperatur"><br>
        <!--- pH_Wert ---------------------------------------------------------------------->
          <label for="pH_Wert"> pH_Wert</label><br>
          <input type="text" autocomplete="off" name="pH_Wert" placeholder="pH_Wert"><br>
        <!--- Flotation -------------------------------------------------------------------->
          <label for="Flotation"> Flotation</label><br>
          <input type="text" autocomplete="off" name="Flotation" placeholder="Flotation"><br>
        <!--- Zulauf ----------------------------------------------------------------------->
          <label for="Zulauf"> Zulauf</label><br>
          <input type="text" autocomplete="off" name="Zulauf" placeholder="Zulauf"><br>
      </div>

      <p>
        <input type="submit" name="neuerDatensatzZulauf" value="Zulauf eintragen">
        <input type="reset">
      </p>

      <?php
        if (isset($_POST['neuerDatensatzZulauf'])) {
          echo '<meta http-equiv="refresh" content="0.1; URL=zulauf.php">';
        }
       ?>
    </form>
    <?
    break;
  }
?>
 
Zuletzt bearbeitet von einem Moderator:

Yaslaw

n/a
Moderator
Nö. Du hast ein Fehler auf Zeile 99 oder davor.
Dein geposteter Code geht bis 89. Also ist er nicht vollständig. Das ist an sich noch nicht das Problem, aber sag doch welches die Zeile 99 ist.

Ich habe mal deinen Code um <?php erweitert, damit er im Forum sauber dargestellt wird

In dem Code, den sich sehe, hast du auf Zeile 33 }}
Was wird mit der zweiten Klammer geschlossen?
Man sollte immer sauber formatieren und nie 2 Schleifen auf einer Zeile schliessen. Es macht den Code unlesbar
 

DerTrojaner

Mitglied
PHP:
<link rel="stylesheet" type="text/css" href="style.css">
<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="Javascript.js"></script>

<?php
    require_once("index.php");


switch($type){
    case ('zulauf'):
        if(isset($_POST["neuerDatensatzZulauf"])){
        $Tag = $_POST["Tag"];
    #    $Wochentag = $_POST["Wochentag"];
        $Uhrzeit = $_POST["Uhrzeit"];
        $Wert = $_POST["Wert"];
        $Lufttemperatur = $_POST["Lufttemperatur"];
        $Abwassertemperatur = $_POST["Abwassertemperatur"];
        $pH_Wert = $_POST["pH_Wert"];
        $Flotation = $_POST["Flotation"];
        $Zulauf = $_POST["Zulauf"];

        // Ob , oder . eingetragen wird ist egal er checkt es
        $Lufttemperatur = str_replace(',', '.', $Lufttemperatur);
        $Abwassertemperatur = str_replace(',', '.', $Abwassertemperatur);
        $pH_Wert = str_replace(',', '.', $pH_Wert);

        // Verbindung zur Datenbankk
        $db_con = mysqli_connect($servername, $username, $password, $dbname);

        // String für SQL-Anweisung erstellen
        $insertString = "INSERT INTO zulauf(Tag, /*Wochentag,*/ Uhrzeit, Wert, Lufttemperatur, Abwassertemperatur, pH_Wert, Flotation,Zulauf)
          VALUES ('".$Tag."','".$Uhrzeit."','".$Wert."', '".$Lufttemperatur."', '".$Abwassertemperatur."', '".$pH_Wert."', '".$Flotation."', '".$Zulauf."');";
        ############### Falls Wochentag gebraucht wird einfach '".$Wochentag."', einsetzten ###################

        // SQL-Anweisung durchführen
        $check = mysqli_query($db_con, $insertString);

        if($check) {
            echo "Ein neuer Datensatz erfolgreich hinzugefügt";
        }}
    ?>
    <form action="eintrag.php" method="post">
      <div id="input">
        <!--- Tag -------------------------------------------------------------------------->
          <label for="Tag"> Tag</label><br>
          <input type="text" autocomplete="off" name="Tag" class="tcal" placeholder="Tag / Datum "><br>
        <!--- Wochentag -------------------------------------------------------------------->
        <!---  <label for="Wochentag"> Wochentag</label><br>
            <select name="Wochentag" required>
              <option value="Montag">Montag</option>
              <option value="Dienstag">Dienstag</option>
              <option value="Mittwoch">Mittwoch</option>
              <option value="Donerstag">Donerstag</option>
              <option value="Freitag">Freitag</option>
              <option value="Samstag">Samstag</option>
              <option value="Sonntag">Sonntag</option>
            </select> -------->
        <!--- Uhrzeit ---------------------------------------------------------------------->
          <label for="Uhrzeit"> Uhrzeit</label><br>
          <input type="text" autocomplete="off" name="Uhrzeit" placeholder="Uhrzeit"><br>
        <!--- Wert ------------------------------------------------------------------------->
          <label for="Wert"> Wert</label><br>
          <input type="text" autocomplete="off" name="Wert" placeholder="Wert"><br>
        <!--- Lufttemperatur --------------------------------------------------------------->
          <label for="Lufttemperatur"> Lufttemperatur</label><br>
          <input type="text" autocomplete="off" name="Lufttemperatur" placeholder="Lufttemperatur"><br>
        <!--- Abwassertemperatur ----------------------------------------------------------->
          <label for="Abwassertemperatur"> Abwassertemperatur</label><br>
          <input type="text" autocomplete="off" name="Abwassertemperatur" placeholder="Abwassertemperatur"><br>
        <!--- pH_Wert ---------------------------------------------------------------------->
          <label for="pH_Wert"> pH_Wert</label><br>
          <input type="text" autocomplete="off" name="pH_Wert" placeholder="pH_Wert"><br>
        <!--- Flotation -------------------------------------------------------------------->
          <label for="Flotation"> Flotation</label><br>
          <input type="text" autocomplete="off" name="Flotation" placeholder="Flotation"><br>
        <!--- Zulauf ----------------------------------------------------------------------->
          <label for="Zulauf"> Zulauf</label><br>
          <input type="text" autocomplete="off" name="Zulauf" placeholder="Zulauf"><br>
      </div>

      <p>
        <input type="submit" name="neuerDatensatzZulauf" value="Zulauf eintragen">
        <input type="reset">
      </p>

      <?php
        if (isset($_POST['neuerDatensatzZulauf'])) {
          echo '<meta http-equiv="refresh" content="0.1; URL=zulauf.php">';
        }
       ?>
    </form>
    <?
    break;
  }
?>
Parse error: syntax error, unexpected end of file, expecting case (T_CASE) or default (T_DEFAULT) or '}' in C:\xampp\htdocs\Website\eintrag.php on line 97
 

DerTrojaner

Mitglied
Nö. Du hast ein Fehler auf Zeile 99 oder davor.
Dein geposteter Code geht bis 89. Also ist er nicht vollständig. Das ist an sich noch nicht das Problem, aber sag doch welches die Zeile 99 ist.

Ich habe mal deinen Code um <?php erweitert, damit er im Forum sauber dargestellt wird

In dem Code, den sich sehe, hast du auf Zeile 33 }}
Was wird mit der zweiten Klammer geschlossen?
Man sollte immer sauber formatieren und nie 2 Schleifen auf einer Zeile schliessen. Es macht den Code unlesbar
Mit der zweiten Klammer schließe ich
PHP:
if(isset($_POST["neuerDatensatzZulauf"])){
zweite klammer
PHP:
if($check) {
 

Yaslaw

n/a
Moderator
Warum hast du beim case noch eine runde Klammer?
Ansonstgen sehe ich den Fehler gerade nicht. Nimm mal den ganezn HTML-Grümpel raus zum Testen.

Grundsätzlich:
  • Es lohnt sich den Code SAUBER zu formatieren
  • HTML und PHP trennen. Zum Beispiel mit PHP Template Engine | Smarty oder ähnlichem. Es macht den Code viel besser lesbar
 

Yaslaw

n/a
Moderator
Kann sein dass das Richtig ist. Ich weiss nicht wie du die eingabe öffnest, ob die eingebunden ist oder du sie über die URL ansprichst.
 

DerTrojaner

Mitglied
Habe mir mal Session angeschaut, und habe nun Seite1 (zulauf.php)
session_start();
$_SESSION["zulauf"]=$type;

und Seite2 (eintrag.php)
session_start();
$type=$_SESSION["zulauf"];

aber irgendwie kriege ich als error
Notice: Undefined variable: type in C:\xampp\htdocs\Website\Zulauf.php on line 28
 

Yaslaw

n/a
Moderator
Notice sind hinweise, keine Fehler.
$type wurde nicht gesetzt. Du setzt das ganze aber auch verkehrt.

PHP:
// zulauf.php
session_start();
$_SESSION['type']='zulauf';


//eintrag.php
session_start();
switch($_SESSION['type']){
    case 'zulauf': //TODO: COde für Zulauf
}
 

DerTrojaner

Mitglied
Habe ein kleines Problem und zwar kann ich bei zulauf.php wie gehabt Datensätze zufügen, aber bei Wasser.php geht es nicht er zeigt kein error an nichts. Nachdem ich auf abschicken drück zack lande ich bei wasser.php
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…