Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler beim Daten Eintragen in die Datenbank

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Ja ist ja gut, hab das jetzt alles so gemacht. Danke für die Hilfe.

    Nun habe ich noch ein Problem, man kann sich zwar anmelden, aber wird sobald man z.B. von der Dashboard Seite auf den Editor wechselt rausgeworfen.
    Wie kann ich das Verhindern?

    Kommentar


    • #17
      Zitat von Sullaysur Beitrag anzeigen
      Nun habe ich noch ein Problem, man kann sich zwar anmelden, aber wird sobald man z.B. von der Dashboard Seite auf den Editor wechselt rausgeworfen.
      Wie kann ich das Verhindern?
      Du solltest auch Beispielcode liefern, bei dem das Problem nachvollziehbar auftritt.

      Kommentar


      • #18
        Dashboard:
        PHP-Code:
        <!DOCTYPE html>
        <html lang="de">
          <!-- Header-->
          <?php
            session_start
        ();
            require_once(
        'includes/dbh.inc.php');
            include(
        "header_footer/header.php");
          
        ?>

        <body id="page-top">

          <!-- Navigation-->
          <?php
            
        include("header_footer/navigation.php");
          
        ?>

          <div id="wrapper">

            <!-- Sidebar-->
            <?php
              
        include("header_footer/sidebar.php");
            
        ?>

            <div id="content-wrapper">

              <div class="container-fluid">

                <!-- Breadcrumbs-->
                <ol class="breadcrumb">
                  <li class="breadcrumb-item">
                    <a href="index.html">Dashboard</a>
                  </li>
                  <li class="breadcrumb-item active"></li>
                </ol>

                <!-- Icon Cards-->
                <div class="row">
                  <div class="col-xl-3 col-sm-6 mb-3">
                    <div class="card text-white bg-primary o-hidden h-100">
                      <div class="card-body">
                        <div class="card-body-icon">
                          <i class="fas fa-fw fa-comments"></i>
                        </div>
                        <div class="mr-5">26 New Messages!</div>
                      </div>
                      <a class="card-footer text-white clearfix small z-1" href="#">
                        <span class="float-left">View Details</span>
                        <span class="float-right">
                          <i class="fas fa-angle-right"></i>
                        </span>
                      </a>
                    </div>
                  </div>
                  <div class="col-xl-3 col-sm-6 mb-3">
                    <div class="card text-white bg-warning o-hidden h-100">
                      <div class="card-body">
                        <div class="card-body-icon">
                          <i class="fas fa-fw fa-list"></i>
                        </div>
                        <div class="mr-5">11 New Tasks!</div>
                      </div>
                      <a class="card-footer text-white clearfix small z-1" href="#">
                        <span class="float-left">View Details</span>
                        <span class="float-right">
                          <i class="fas fa-angle-right"></i>
                        </span>
                      </a>
                    </div>
                  </div>
                  <div class="col-xl-3 col-sm-6 mb-3">
                    <div class="card text-white bg-success o-hidden h-100">
                      <div class="card-body">
                        <div class="card-body-icon">
                          <i class="fas fa-fw fa-shopping-cart"></i>
                        </div>
                        <div class="mr-5">123 New Orders!</div>
                      </div>
                      <a class="card-footer text-white clearfix small z-1" href="#">
                        <span class="float-left">View Details</span>
                        <span class="float-right">
                          <i class="fas fa-angle-right"></i>
                        </span>
                      </a>
                    </div>
                  </div>
                  <div class="col-xl-3 col-sm-6 mb-3">
                    <div class="card text-white bg-danger o-hidden h-100">
                      <div class="card-body">
                        <div class="card-body-icon">
                          <i class="fas fa-fw fa-life-ring"></i>
                        </div>
                        <div class="mr-5">13 New Tickets!</div>
                      </div>
                      <a class="card-footer text-white clearfix small z-1" href="#">
                        <span class="float-left">View Details</span>
                        <span class="float-right">
                          <i class="fas fa-angle-right"></i>
                        </span>
                      </a>
                    </div>
                  </div>
                </div>

                <!-- Area Chart Example-->
                <div class="card mb-3">
                  <div class="card-header">
                    <i class="fas fa-chart-area"></i>
                    Benutzerzähler</div>
                  <div class="card-body">
                    <canvas id="myAreaChart" width="100%" height="30"></canvas>
                  </div>
                  <div class="card-footer small text-muted">Aktualisiert gestern um 11:59 Uhr</div>
                </div>

                <!-- DataTables Example -->
                <?php
                  $sql 
        "SELECT * FROM article";
                  if (
        $erg $conn->query($sql)) {
                    while (
        $datensatz $erg->fetch_object()) {
                        
        $daten[] = $datensatz;
                    }
                }
                
        ?>
                <div class="card mb-3">
                  <div class="card-header">
                    <i class="fas fa-table"></i>
                    Beitrags Übersicht</div>
                  <div class="card-body">
                    <div class="table-responsive">
                      <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                        <thead>
                          <tr>
                            <th>Name</th>
                            <th>Beitrags Nr.</th>
                            <th>Titel</th>
                            <th>Erstellt am</th>
                            <th>Bearbeitet am</th>
                          </tr>
                        </thead>
                        <tfoot>
                          <tr>
                            <th>Name</th>
                            <th>Beitrags Nr.</th>
                            <th>Titel</th>
                            <th>Erstellt am</th>
                            <th>Bearbeitet am</th>
                          </tr>
                        </tfoot>
                        <tbody>
                          <?php
                            
        foreach ($daten as $inhalt) {
                            
        ?>
                                <tr>
                                    <td>
                                        <?php echo $inhalt->author?>
                                    </td>
                                    <td>
                                        <?php echo $inhalt->id?>
                                    </td>
                                    <td>
                                        <?php echo $inhalt->title?>
                                    </td>
                                    <td>
                                        <?php
                                          
        echo date("d.m.Y"strtotime($inhalt->created));
                                        
        ?>
                                    </td>
                                    <td>
                                        <?php
                                          
        echo date("d.m.Y"strtotime($inhalt->edited));
                                        
        ?>
                                    </td>           
                              </tr>
                          <?php
                            
        }
                          
        ?>
                        </tbody>
                      </table>
                    </div>
                  </div>
                  <div class="card-footer small text-muted">Aktualisiert gestern um 11:59 Uhr</div>
                </div>
              </div>
              <!-- /.container-fluid -->

              <!-- Footer -->
              <?php
                
        include("header_footer/footer.php");
              
        ?>

            </div>
            <!-- /.content-wrapper -->

          </div>
          <!-- /#wrapper -->

          <!-- Scroll to Top Button-->
          <a class="scroll-to-top rounded" href="#page-top">
            <i class="fas fa-angle-up"></i>
          </a>

          <!-- Logout Modal-->
          <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLabel">Logout?</h5>
                  <button class="close" type="button" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">×</span>
                  </button>
                </div>
                <div class="modal-body">Wähle "Ausloggen" wenn du deine Sitzung beenden möchtest.</div>
                <div class="modal-footer">
                  <button class="btn btn-secondary" type="button" data-dismiss="modal">Abbrechen</button>
                  <form action="includes/logout.inc.php" method="post">
                  <button class="btn btn-primary" type="submit" name="logout-submit">Ausloggen</button>
                  </form>
                </div>
              </div>
            </div>
          </div>

          <!-- Bootstrap core JavaScript-->
          <script src="vendor/jquery/jquery.min.js"></script>
          <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

          <!-- Core plugin JavaScript-->
          <script src="vendor/jquery-easing/jquery.easing.min.js"></script>

          <!-- Page level plugin JavaScript-->
          <script src="vendor/chart.js/Chart.min.js"></script>
          <script src="vendor/datatables/jquery.dataTables.js"></script>
          <script src="vendor/datatables/dataTables.bootstrap4.js"></script>

          <!-- Custom scripts for all pages-->
          <script src="js/sb-admin.min.js"></script>

          <!-- Demo scripts for this page-->
          <script src="js/demo/datatables-demo.js"></script>
          <script src="js/demo/chart-area-demo.js"></script>

        </body>

        </html>
        Editor:
        PHP-Code:
        <!DOCTYPE html>
        <html lang="de">

        <!-- Header-->
          <?php
            session_start
        ();
            include(
        "header_footer/header.php");
          
        ?>

        <body id="page-top">

          <!-- Navigation-->
          <?php
            
        include("header_footer/navigation.php");
          
        ?>

          <div id="wrapper">

            <!-- Sidebar-->
            <?php
              
        include("header_footer/sidebar.php");
            
        ?>

            <div id="content-wrapper">

              <div class="container-fluid">

                <!-- Breadcrumbs-->
                <ol class="breadcrumb">
                  <li class="breadcrumb-item">
                    <a href="index.html">Dashboard</a>
                  </li>
                  <li class="breadcrumb-item active">Editor</li>
                </ol>

                <!-- Page Content -->
                <form action="includes/article.inc.php" method="post">
                  <div class="form-group">
                    <div class="form-label-group">
                      <input type="text" name="title" id="title" class="form-control" placeholder="Titel" required="required" autofocus="autofocus">
                      <label for="title">Titel</label>
                    </div>
                  </div>

                <script src="https://cdn.ckeditor.com/4.11.4/standard/ckeditor.js"></script>
                <textarea name="atext"></textarea>
                <script>
                  CKEDITOR.replace( 'atext' );
                </script>

                <br/>
                  <div class="form-group">
                    <div class="form-label-group">
                      <button class="btn btn-primary btn-block" type="submit" name="article-submit">Veröffentlichen</button>
                    </div>
                  </div>
                </form>

              <!-- /.container-fluid -->

              <!-- Footer -->
              <?php
                
        include("header_footer/footer.php");
                
        session_destroy();
              
        ?>

            </div>
            <!-- /.content-wrapper -->

          </div>
          <!-- /#wrapper -->

          <!-- Scroll to Top Button-->
          <a class="scroll-to-top rounded" href="#page-top">
            <i class="fas fa-angle-up"></i>
          </a>

          <!-- Logout Modal-->

          <!-- Bootstrap core JavaScript-->
          <script src="vendor/jquery/jquery.min.js"></script>
          <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

          <!-- Core plugin JavaScript-->
          <script src="vendor/jquery-easing/jquery.easing.min.js"></script>

          <!-- Custom scripts for all pages-->
          <script src="js/sb-admin.min.js"></script>

        </body>

        </html>
        Melde ich mich über einloggen an lande ich im Dashboard, wechsel ich dann in den Editor ist man sofort wieder abgemeldet.

        Kommentar


        • #19
          session_start() gehört ganz an den Anfang. session_destroy() ist Unsinn.

          Lies mal Debugging: https://php-de.github.io/jumpto/faq/#debugging

          Dann fliegt Dir das gleich um die Ohren.

          Kommentar


          • #20
            ok, jetzt funktioniert es, eine sache aber noch, wie kann ich überprüfen ob ein User eingellogt ist?

            Ich habe es versucht mit folgendem code, aber das klappt nicht.
            PHP-Code:
            <?php
              session_start
            ();
              if(!isset(
            $_SESSION["uid"])){
                
            header("Location: login.php");
              }
            ?>

            Kommentar


            • #21
              Wir haben leider keine Glaskugel und haben keine Ahnung wie du den Login programmiert hast. Aber das Grundkonzept stimmt schon.

              Kommentar


              • #22
                Zitat von jonas3344 Beitrag anzeigen
                Wir haben leider keine Glaskugel und haben keine Ahnung wie du den Login programmiert hast. Aber das Grundkonzept stimmt schon.
                PHP-Code:
                <?php
                if(isset($_POST['login-submit'])){

                    require 
                'dbh.inc.php';

                    
                $mailuid $_POST['mail'];
                    
                $password $_POST['pwd'];

                    if(empty(
                $mailuid) || empty($password)){
                        
                header("Location: ../login.php?error=emptyfields");
                        exit();
                    }
                    else {
                        
                $sql "SELECT * FROM users WHERE uid=? OR email=?;";
                        
                $stmt mysqli_stmt_init($conn);
                        if(!
                mysqli_stmt_prepare($stmt$sql)){
                            
                header("Location: ../login.php?error=sqlerror");
                            exit();
                        }
                        else {

                            
                mysqli_stmt_bind_param($stmt"ss"$mailuid$mailuid);
                            
                mysqli_stmt_execute($stmt);
                            
                $result mysqli_stmt_get_result($stmt);
                            if(
                $row mysqli_fetch_assoc($result)){
                                
                $pwdCheck password_verify($password$row['pwd']);
                                if(
                $pwdCheck == false){
                                    
                header("Location: ../login.php?error=wrongpassword");
                                    exit();
                                }
                                else if(
                $pwdCheck == true){
                                    
                session_start();
                                    
                $_SESSION['userId'] = $row['id'];
                                    
                $_SESSION['userUid'] = $row['uid'];

                                    
                header("Location: ../index.php?login=success");
                                    exit();
                                }
                                else{
                                    
                header("Location: ../login.php?error=wrongpassword");
                                    exit();
                                }
                            }
                            else {
                                
                header("Location: ../login.php?error=nouser");
                                exit();
                            }

                        }
                    }

                }
                else {
                    
                header("Location: ../login.php");
                    exit();
                }

                Kommentar


                • #23
                  Mach mal

                  PHP-Code:
                  var_dump($_SESSION); 
                  und versuch selbst herauszufinden was du ändern musst.

                  Kommentar


                  • #24
                    Ich habe es gerade schon selbst gesehen: $_SESSION['userUid'] währe richtig

                    Kommentar


                    • #25
                      Noch eine kleine Frage, ich würde gerne, dass die Admins auch die Beiträge aus dem Backend löschen können, dazu wollte ich in der Tabelle noch einen Button hinzufügen, wo der dazugehörige beitrag dann entfernt wird.

                      Nur ist die Frage wie kann ich die id übergeben?

                      Hier der code zum ausgeben von dem Button & den anderen werten wie id:
                      PHP-Code:
                      <td>
                                                      <?php echo $inhalt->author?>
                                                  </td>
                                                  <td>
                                                      <?php echo $inhalt->id?>
                                                  </td>
                                                  <td>
                                                      <?php echo $inhalt->title?>
                                                  </td>
                                                  <td>
                                                      <?php
                                                        
                      echo date("d.m.Y"strtotime($inhalt->created));
                                                      
                      ?>
                                                  </td>
                                                  <td>
                                                      <?php
                                                        
                      echo date("d.m.Y"strtotime($inhalt->edited));
                                                      
                      ?>
                                                  </td>
                                                  <td>
                                                      <?php
                                                        
                      echo '<form action="includes/delete.inc.php" method="post">';
                                                        echo 
                      '<button type="submit" name="delete-submit">Löschen!</button>';
                                                        echo 
                      '</form>';
                                                      
                      ?>
                                                  </td>
                      Zudem das Script zum löschen:
                      PHP-Code:
                      <?php
                      session_start
                      ();
                      if(isset(
                      $_POST['delete-submit'])){

                          require 
                      'dbh.inc.php';

                          
                      $id $_GET['id'];

                          
                      $sql "DELETE FROM article WHERE id=$id";
                      header("Location: ../index.php?delete=success");
                          exit();

                      }
                      else {
                          
                      header("Location: ../index.php");
                          exit();
                      }
                      Ich bitte um schnelle hilfe.

                      Kommentar


                      • #26
                        https://www.w3schools.com/tags/att_i...ype_hidden.asp

                        Du behandelst übrigens den Kontextwechsel nach HTML nicht. Werte, die du in HTML-Code einfügst, solltest du immer mit htmlspecialchars() behandeln. Ansonsten ist im besten Fall die Seite kaputt und im schlechtesten Fall nutzt diese Lücke ein Angreifer (XSS-Attacken).

                        Ein Mischmasch aus Deutsch und Englisch solltest du übrigens besser bleiben lassen. Inhalt, Title, Created, Edited? Warum nicht Content, Title. Created, Edited oder Inhalt, Titel, Erstellt, Bearbeitet? Optimal wäre durchgängig Englisch zu verwenden.

                        Kommentar


                        • #27
                          Zitat von hellbringer Beitrag anzeigen
                          https://www.w3schools.com/tags/att_i...ype_hidden.asp

                          Du behandelst übrigens den Kontextwechsel nach HTML nicht. Werte, die du in HTML-Code einfügst, solltest du immer mit htmlspecialchars() behandeln. Ansonsten ist im besten Fall die Seite kaputt und im schlechtesten Fall nutzt diese Lücke ein Angreifer (XSS-Attacken).

                          Ein Mischmasch aus Deutsch und Englisch solltest du übrigens besser bleiben lassen. Inhalt, Title, Created, Edited? Warum nicht Content, Title. Created, Edited oder Inhalt, Titel, Erstellt, Bearbeitet? Optimal wäre durchgängig Englisch zu verwenden.
                          Ok, das mit dem Kontextwechsel nach HTML schaue ich mir danach mal an.

                          Den Mischmasch von Deutsch und English werde ich auch noch ändern, ist dadurch entstanden, dass ich weitere Sachen getestet habe und die noch nicht richtig übernommen habe.

                          Zu dem "hidden input", ich verstehe jetzt nicht ganz wo ich den jetzt einbauen soll und wie ich die id darein bekomme?

                          Kommentar


                          • #28
                            Zitat von Sullaysur Beitrag anzeigen

                            Zu dem "hidden input", ich verstehe jetzt nicht ganz wo ich den jetzt einbauen soll und wie ich die id darein bekomme?
                            1. Ins Formular
                            2. Als Ausgabe in das value-Attribut

                            Kommentar


                            • #29
                              Zitat von Sullaysur Beitrag anzeigen
                              Zu dem "hidden input", ich verstehe jetzt nicht ganz wo ich den jetzt einbauen soll und wie ich die id darein bekomme?
                              Dann beschäftige dich mal mit Formulargrundlagen. Sowas wird im PHP-Handbuch und in unzählen Tutorials und anderen Büchern erklärt. Man muss nicht alles nochmal in einem Forum durchkauen, was schon tausend mal woanders geschrieben steht. Auch sollte man die HTML-Grundlagen beherrschen, bevor man sich an PHP heran wagt.

                              Das Input-Element gehört natürlich ins Formular. Und als Wert trägst du die ID ein.

                              Kommentar


                              • #30
                                Habe es jetzt so gemacht wie es richtig sein sollte, nun sind meine Buttons weg.....

                                PHP-Code:
                                <?php
                                                                  
                                echo '<form action="includes/delete.inc.php" method="post">';
                                                                  echo 
                                '<input type="hidden" name="id" value="$content->id;>';
                                                                  echo 
                                '<button type="submit" name="delete-submit">Löschen!</button>';
                                                                  echo 
                                '</form>';
                                                                
                                ?>

                                Kommentar

                                Lädt...
                                X