Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL INSERT Fehler...

Einklappen

Neue Werbung 2019

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

  • SQL INSERT Fehler...

    Hallo Zusammen,

    ich habe soeben mein Registrierungs-Formular erweitert.
    Jedoch funktioniert es jetzt nicht mehr :/

    Folgender PHP-CODE
    PHP-Code:

        $email 
    $_POST['name'];
        
    $dcname $_POST['dcname'];
        
    $passwort $_POST['passwort'];
        
    $passwort2 $_POST['passwort2'];
        
    $sid $_POST['serverid'];
        
    $defaultgroup "4";
        
    $passwort_hash password_hash($passwortPASSWORD_DEFAULT);


    $statement $pdo->prepare("INSERT INTO users (name, passwort, dcname, gruppe, sid) VALUES (:email, :passwort, :discord, :gruppe, :server)");
            
    $result $statement->execute(array('email' => $email'passwort' => $passwort_hash'discord' => $dcname'gruppe' => $defaultgroup'server' => $sid)); 

    In der Logdatei steht folgender Fehler, den ich irgendwie nicht nachvollziehen kann:
    Code:
    [Sat Nov 21 20:50:23.749927 2020] [php7:crit] [pid 19028:tid 1856] [client AUSGEBLENDET] PHP Parse error:  syntax error, unexpected '=', expecting ')' in D:\\Programme\\xampp\\htdocs\\main\\register.php on line 115, referer: http://meineadresse.de/register.php

  • #2
    Die Fehlermeldung passt nicht zum Code, der hat keinen Syntaxfehler und hat auch keine 115 Zeilen.

    Kommentar


    • #3
      Ok ich schicke den komplette Code...

      PHP-Code:
      <?php
      session_start
      ();
      $pdo = new PDO('mysql:host=HOST;dbname=DB''USER''###########');
      ?>
      <!doctype html>
      <html lang="de">
        <head>

          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


          <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
          <link rel="stylesheet" href="/style/main.css">
          <title>Projekt X-Treme | LS19 Gaming Community</title>


          <link rel="apple-touch-icon" sizes="57x57" href="/style/ico/apple-icon-57x57.png">
          <link rel="apple-touch-icon" sizes="60x60" href="/style/ico/apple-icon-60x60.png">
          <link rel="apple-touch-icon" sizes="72x72" href="/style/ico/apple-icon-72x72.png">
          <link rel="apple-touch-icon" sizes="76x76" href="/style/ico/apple-icon-76x76.png">
          <link rel="apple-touch-icon" sizes="114x114" href="/style/ico/apple-icon-114x114.png">
          <link rel="apple-touch-icon" sizes="120x120" href="/style/ico/apple-icon-120x120.png">
          <link rel="apple-touch-icon" sizes="144x144" href="/style/ico/apple-icon-144x144.png">
          <link rel="apple-touch-icon" sizes="152x152" href="/style/ico/apple-icon-152x152.png">
          <link rel="apple-touch-icon" sizes="180x180" href="/style/ico/apple-icon-180x180.png">
          <link rel="icon" type="image/png" sizes="192x192"  href="/style/ico/android-icon-192x192.png">
          <link rel="icon" type="image/png" sizes="32x32" href="/style/ico/favicon-32x32.png">
          <link rel="icon" type="image/png" sizes="96x96" href="/style/ico/favicon-96x96.png">
          <link rel="icon" type="image/png" sizes="16x16" href="/style/ico/favicon-16x16.png">
          <link rel="manifest" href="/style/ico/manifest.json">
          <meta name="msapplication-TileColor" content="#ffffff">
          <meta name="msapplication-TileImage" content="/style/ico/ms-icon-144x144.png">
          <meta name="theme-color" content="#ffffff">
        </head>
        <body onload="page()">

              <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
                <a class="navbar-brand" href="#">X-Treme</a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                  <span class="navbar-toggler-icon"></span>
                </button>

                <div class="collapse navbar-collapse" id="navbarSupportedContent">
                  <ul class="navbar-nav mr-auto">
                    <li class="nav-item active">
                      <a class="nav-link" href="/index.php">Start <span class="sr-only">(current)</span></a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="/fsl">FSL</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="ts3server://x-treme"><i class="fab fa-teamspeak"></i></a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="https://discord.gg/tDG2rFK"><i class="fab fa-discord"></i></a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="https://www.youtube.com/channel/UCfGr9MGe1UOPfdxukR4oEvg"><i class="fab fa-youtube"></i></a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="https://www.instagram.com/xtremecommunityls19/"><i class="fab fa-instagram"></i></a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="/impressum.html">Impressum</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="/datenschutz.html">Datenschutz</a>
                    </li>
                  </ul>
                </div>
              </nav>

      <?php
      $showFormular 
      true//Variable ob das Registrierungsformular anezeigt werden soll

      if(isset($_GET['register'])) {
          
      $error false;
          
      $email $_POST['name'];
          
      $dcname $_POST['dcname'];
          
      $passwort $_POST['passwort'];
          
      $passwort2 $_POST['passwort2'];
          
      $sid $_POST['serverid'];
          
      $defaultgroup "4";




          if(
      strlen($passwort) == 0) {
              
      $err 'Bitte ein Passwort angeben';
              
      $error true;
          }
          if(
      $passwort != $passwort2) {
              
      $err 'Die Passwörter müssen übereinstimmen.';
              
      $error true;
          }

          
      //Überprüfe, dass die E-Mail-Adresse noch nicht registriert wurde
          
      if(!$error) {
              
      $statement $pdo->prepare("SELECT * FROM users WHERE name = :email");
              
      $result $statement->execute(array('email' => $email));
              
      $user $statement->fetch();

              if(
      $user !== false) {
                  
      $err 'Der Name ist bereits vergeben.';
                  
      $error true;
              }    
          }

          
      //Keine Fehler, wir können den Nutzer registrieren
          
      if(!$error) {    
              
      $passwort_hash password_hash($passwortPASSWORD_DEFAULT);

              
      $statement $pdo->prepare("INSERT INTO users (name, passwort, dcname, gruppe, sid) VALUES (:email, :passwort, :discord, :gruppe, :server)");
              
      $result $statement->execute(array('email' => $email'passwort' => $passwort_hash'discord' => $dcname'gruppe' => $defaultgroup'server' => $sid));




              
      /*
              'email' => $email,
              'passwort' => $passwort_hash,
              'discord' => $dcname,
              'gruppe' => $defaultgroup,
              'server' => $sid
              */


              
      if($result) {        
                  
      $succ 'Du wurdest erfolgreich registriert. <a href="login.php">Zum Login</a>';
                  
      $showFormular false;
              } else {
                  
      $err =  'Beim Abspeichern ist leider ein Fehler aufgetreten.';
              }
          }
      }

      if(
      $showFormular) {
      ?>
      <div class="row m-0 p-0">
          <div class="container-fluid my-5 py-5">
              <div class="container my-5 py-5 justify-content-center d-flex">
                  <div class="col-6 shadow p-3 rounded bg-light">
                      <form action="?register=1" method="post" autocomplete="off">
                          <div class="form-group">
                              <label for="inputname">Name</label>
                              <input class="form-control" id="inputname" type="text" size="40" maxlength="250" name="name" autocomplete="false">
                          </div>    
                          <div class="form-group">
                              <label for="inputpw1">Passwort festlegen</label>
                              <input class="form-control" type="password" size="40"  maxlength="250" name="passwort" autocomplete="false">
                          </div>
                          <div class="form-group">
                              <label for="inputpw2">Passwort wiederholen</label>
                              <input class="form-control" id="inputpw2" type="password" size="40" maxlength="250" name="passwort2" autocomplete="false">
                          </div>
                          <div class="form-group">
                              <label for="inputdiscord">Discord-ID</label>
                              <input class="form-control" id="inputdiscord" type="text" size="40" maxlength="250" name="dcname" autocomplete="false">
                              <small id="discordhelp" class="form-text text-muted"><a href="https://discord.gg/tDG2rFK">Jetzt unserem Discord beitreren</a></small>
                          </div>
                          <div class="form-group">
                              <label for="inputserver">Server</label>
                              <select name="serverid" class="form-control" id="inputserver">
                                  <option disabled selected>Server wählen...</option>
      <?php
      $pdo 
      = new PDO('mysql:host=######;dbname=#####''#####''########');
      $serversql "SELECT * FROM server";

      foreach (
      $pdo->query($serversql) as $server) {

      ?>    
                                  <option value="<?php echo $server['id']; ?>"><?php echo $server['name']; ?></option>
      <?php
      }
      ?>
                              </select>
                          </div>
                          <input class="btn btn-primary btn-lg align-right" type="submit" value="Registrieren">
                      </form>
                  </div>
              </div>
          </div>
      </div>
      <?php
      }

      if(isset(
      $err)) {
      ?>
      <div class="row m-0 p-0 mb-5">
          <div class="container-fluid mb-5">
              <div class="container justify-content-center mb-5 d-flex">
                      <div class="alert alert-danger alert-dismissible fade show" role="alert">
                        <strong>Fehler!</strong> <?php echo $err?>
                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                          <span aria-hidden="true">&times;</span>
                        </button>
                      </div>
              </div>
          </div>
      </div>
      <?php
      }

      if(isset(
      $succ)) {
      ?>
      <div class="row m-0 p-0 mb-5">
          <div class="container-fluid mb-5">
              <div class="container justify-content-center mb-5 d-flex">
                      <div class="alert alert-success alert-dismissible fade show" role="alert">
                        <strong>Du wurdes registriert!</strong> <a href="/login.php">Logge dich jetzt ein</a>
                        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                          <span aria-hidden="true">&times;</span>
                        </button>
                      </div>
              </div>
          </div>
      </div>
      <?php
      }
      ?>

      <div class="row m-0 p-0">
          <div class="container-fluid bg-dark text-light">
              <div class="container pt-3 mt-3 text-light">
                  <h2 class="display-1 text-center pt-3 mt-3 pb-3 mb-3">&copy; 2020 Projekt X-Treme</h2>
                  <h6 class="text-center"><i>Verantwortlich für die Inhalte: Ben</i></h6>
              </div>
          </div>
      </div>


          <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
          <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>


          <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
          <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
          <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>
          <script src="https://kit.fontawesome.com/PRIVAT.js" crossorigin="anonymous"></script>
          <script src="https://unpkg.com/scrollreveal"></script>
          <script src="/style/js/app.js"></script>
      </body>
      </html>

      Kommentar


      • #4
        Zitat von Simuletsplay Beitrag anzeigen
        Ok ich schicke den komplette Code...
        Der Code enthält auch keinen Syntaxfehler und passt damit nicht zur Fehlermeldung.
        Außerdem solltest du *sofort* das Passwort zur Datenbankverbindung ändern, das steht noch im Code!

        Kommentar


        • #5
          Ok danke für den Hinweis mit dem Passwort.
          Ich habe die Nachricht geändert!


          Ich kann jedoch nicht verstehen, dass der Fehlercode nicht zu dem ScourceCode passt.

          Meiner Meinung nach, ist dort auch kein Fehler. Ich kann mich ja aber auch irren.
          Deshalb das Thema hier.

          Es waren 2 Fehler von mir.
          Ich dachte zunächst, dass der Error aktuell sei... war er aber nicht!

          Und ich habe noch leere Werte, die an dieser Stelle nicht eingefügt werden, jedoch UNIQUE sind und daher die Datenkonsistenz gestört wurde.

          Ich entschuldige.

          Schönen Abend noch!

          Kommentar


          • #6
            Zitat von Simuletsplay Beitrag anzeigen
            Ok danke für den Hinweis mit dem Passwort.
            Ich habe die Nachricht geändert!
            Das Passwort der Datenbank hoffentlich auch! übrigens: ein paar Zeilen über dem Passwort steht noch eine URL die du evtl. auch nicht veröffentlichen willst.

            Ich kann jedoch nicht verstehen, dass der Fehlercode nicht zu dem ScourceCode passt.
            Was gibt es da nicht zu verstehen? In der Fehlermeldung ist von einem Syntaxfehler die Rede - einen solchen gibt es aber im Code nicht.

            Aber da das die falsche Fehlermeldung war: was ist dann die Definition von "funktioniert nicht"? Aus "Und ich habe noch leere Werte, die an dieser Stelle nicht eingefügt werden, jedoch UNIQUE sind und daher die Datenkonsistenz gestört wurde." werde ich nicht so ganz schlau, das musst du schon etwas genauer definieren - oder hat sich das Problem erledigt?

            Kommentar


            • #7
              ich glaube da fehlt was zumindest laut PHP wicki

              PHP-Code:
               $statement $pdo->prepare("INSERT INTO users (name, passwort, dcname, gruppe, sid) VALUES (:email, :passwort, :discord, :gruppe, :server)");
                      
              $result $statement->execute(array('email' $email'passwort' $passwort_hash'discord' $dcname'gruppe' $defaultgroup'server' $sid));

              sollte es nicht so heissen

               $statement 
              $pdo->prepare("INSERT INTO users (name, passwort, dcname, gruppe, sid) VALUES (:email, :passwort, :discord, :gruppe, :server)");
                      
              $result $statement->execute(array(':email' $email':passwort' $passwort_hash':discord' $dcname':gruppe' $defaultgroup':server' $sid)); 
              zumindest zeigt er mir dan keinen Fehler mehr an.

              Begründung im VALUES( gibt er immer : vor dem Value an

              Kommentar

              Lädt...
              X