Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable $serverstatus bleibt leer - MySQL Abfrage mit mysqli schlägt fehl?

Einklappen

Neue Werbung 2019

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

  • Variable $serverstatus bleibt leer - MySQL Abfrage mit mysqli schlägt fehl?

    Hallo Community,
    ich habe mir ein Script entwickelt. Dieses möchte ich als Loginscript für meine Website benutzen:

    PHP-Code:
    <?php
    session_start
    ();
    $login mysqli_connect("XXXXXXXX");

    if(isset(
    $_GET['login'])) {
        
    // Eingegebene Daten in Variable speichern
        
    $benutzername $_POST['benutzername'];
        
    $passwort $_POST['passwort'];



        
    // Ist Serverstatus online? - Vorbereiten
        
    $serverstatus_befehl "SELECT Status FROM Server";


        
    // Befehl ausführen (die Variable $serverstatus enthält das Ergebnis)
        
    $serverstatus $login->query($serverstatus_befehl);


        
    // Ist Serverstatus online?
        
    if ($serverstatus != "online") {
        
    $error_server "Der Server wird gerade gewartet oder ist offline!";
        }



        
    // BenutzerID - Vorbereiten
        
    $benutzerid_befehl "SELECT BenutzerID FROM Benutzernamen WHERE Benutzername = ".$benutzername;


        
    // Befehl ausführen (die Variable $benutzerid enthält das Ergebnis)
        
    $benutzerid $login->query($benutzerid_befehl);



        
    // PasswortID - Vorbereiten
        
    $passwortid_befehl "SELECT Passwort FROM Passwörter WHERE PasswortID = ".$benutzerid;


        
    // Befehl ausführen (die Variable $passwortid enthält das Ergebnis)
        
    $passwortid $login->query($passwortid_befehl);



        
    // KontoStatus - Vorbereiten
        
    $kontostatus_befehl "SELECT Kontostatus FROM Benutzername WHERE Benutzername = ".$benutzername;


        
    // Befehl ausführen (die Variable $kontostatus enthält das Ergebnis)
        
    $kontostatus $login->query($kontostatus_befehl);








        
    /*
        if ($benutzerid == $passwortid) {
            $_SESSION['userid'] = $user['id'];
            die('Login erfolgreich. Weiter zu <a href="index.html">internen Bereich</a>');
        } else {
            $error_login = "E-Mail oder Passwort war ungültig<br>";
        }
        */




    }
    ?>
    <!DOCTYPE html>
    <html lang="de">
    <head>

    <link rel="stylesheet" type="text/css" href="other/cssindex.css">

    <title>Login</title>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="shortcut icon" href="XXXXX" type="image/png" />
    <link rel="icon" href="XXXX" type="image/png" />

    </head>
    <body>

    <?php
    if(isset($error_server)) {
        echo 
    $error_server;
    }
    if(isset(
    $error_login)) {
        echo 
    $error_login;
    }
    ?>


     <form action="?login=1" method="post">
    Benutzername:<br>
    <input type="text" size="40" maxlength="250" name="benutzername" required><br><br>

    Dein Passwort:<br>
    <input type="password" size="40"  maxlength="250" name="passwort" required><br>

    <input type="submit" value="Abschicken">
    </form>
    </body>
    </html>

    Soweit so gut. Nun ist aber aktuell das Problem, dass mein Script nicht weiterläuft (geplant), weil
    die Variable $serverstatus nicht "online" ist (->gibt Fehler aus). Ich habe gerade auf meinem MySQL Server nachgesehen, die Zelle "Status" in "Server" ist "online".

    Was ist das Problem an meinem Script?
    Warum ist die Variable $serverstatus nicht "online".
    Ich habe gerade
    PHP-Code:
    echo ($serverstatus); 
    in meine Datei eingefügt, aber erscheinen tut da nichts neues. Das müsste doch bedeuten, dass die Variable $serverstatus leer ist, oder?


    Was kann ich tun, dass meine Variable den Wert "online" erhält?


    Liebe Grüße und Vielen Dank im Vorraus
    PHPWriter23


    PS.: Ich habe gerade nochmal alle Namen der Tabellen, Zeilen, Zellen in dem Script überprüft, sie existieren!

  • #2
    Was steht denn drin in $serverstatus?

    Ausserdem debugging betreiben.

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      Was steht denn drin in $serverstatus?

      Ausserdem debugging betreiben.
      in $serverstatus steht ja leider nichts drin. Das ist ja mein Problem.

      Ich zitiere:
      PHP-Code:

      $serverstatus_befehl 
      "SELECT Status FROM Server";


      $serverstatus $login->query($serverstatus_befehl); 

      Also die Variable ist der abgerufene Status meines Servers. Eigentlich.


      Noch eine Fehlerquelle könnte das hier sein.

      [PHP]
      if ($serverstatus != "online") {
      $error_server = "Der Server wird gerade gewartet oder ist offline!";
      }
      [​​​​​​/PHP]

      Das ist nämlich die If Schleife die mein Problem auslöst - der Text wird in eine Variable geschrieben und dann weiter unten ausgegeben.
      Und eben weil die Schleife den Text ausgibt, obwohl der Server "online" ist, meine ich dass die Variable leer ist.



      LG
      PHPWriter23

      Kommentar


      • #4
        So wie du es geschrieben hast, kommt $serverstatus aus der DB. Dann muss ja die $login->query(...) funktion einen Rückgabewert haben. Was spuckt ein var_dump() aus?

        Kommentar


        • #5
          Alleine die Abfrage ausführen reicht leider nicht. Du musst auch das Ergebnis holen, z.B. mit fetch_row()
          Das Ergebnis steht dann an erster Stelle des Arrays.
          sorry, shift-taste kaputt

          Kommentar


          • #6
            Was bitte hindert Dich am Nutzen des Einsteigerforums PHPWriter23 ?

            Kommentar


            • #7
              Zitat von tomBuilder Beitrag anzeigen
              Was bitte hindert Dich am Nutzen des Einsteigerforums PHPWriter23 ?
              Eigentlich nichts ;-|

              Dann soll man nen Moderator das Thema hier Verschieben.

              Kommentar


              • #8
                Zitat von Miss Santrop Beitrag anzeigen
                So wie du es geschrieben hast, kommt $serverstatus aus der DB. Dann muss ja die $login->query(...) funktion einen Rückgabewert haben. Was spuckt ein var_dump() aus?
                hm,
                PHP-Code:
                var_dump($serverstatus); 
                gibt "online" aus. trotzdem läuft es nicht und zeigt das der Server offline wäre an.
                Ich dachte der Syntax
                PHP-Code:
                 if ($serverstatus != "online") {
                    
                $error_server "Der Server wird gerade gewartet oder ist offline!";
                    } 
                ist richtig.

                LG
                PHPWriter23

                Kommentar


                • #9
                  Zitat von PHPWriter23 Beitrag anzeigen
                  PHP-Code:
                  var_dump($serverstatus); 
                  gibt "online" aus
                  Nein, ganz bestimmt nicht.

                  PHP-Code:
                  $serverstatus "online";

                  var_dump($serverstatus);
                  // string(6) "online" 

                  Kommentar


                  • #10
                    Zitat von hellbringer Beitrag anzeigen

                    Nein, ganz bestimmt nicht.

                    PHP-Code:
                    $serverstatus "online";

                    var_dump($serverstatus);
                    // string(6) "online" 
                    Doch, wirklich Unbenannt.JPG
                    Es macht zwar keinen Sinn, aber es ist so! Das da oben ist nen Screenshot von gerade eben.


                    Und nein;
                    PHP-Code:
                    $serverstatus "online"
                    steht nirgends.

                    Das hier sind alle Zeilen die mit der Variable Serverstatus zu tun haben!


                    PHP-Code:
                    $serverstatus_befehl "SELECT Status FROM Server";


                        
                    // Befehl ausführen (die Variable $serverstatus enthält das Ergebnis)
                        
                    $serverstatus_query $login->query($serverstatus_befehl);


                        
                    $serverstatus mysqli_fetch_assoc($serverstatus_query);

                        
                    // Ist Serverstatus online?
                        
                    if ($serverstatus != "online") {
                        
                    $error_server "Der Server wird gerade gewartet oder ist offline!";
                        } 

                    Das "mysqli_fetch_assoc() habe ich wegen Meister1990. Es funktioniert ja auch, bis darauf dass die If-Schleife was falsch macht.




                    LG
                    PHPWriter23

                    Kommentar


                    • #11
                      Das Array hast du aber verschwiegen. Und ein Array ist kein String, also kann es auch nicht == "online" sein.

                      Kommentar


                      • #12
                        Zitat von hellbringer Beitrag anzeigen
                        Das Array hast du aber verschwiegen. Und ein Array ist kein String, also kann es auch nicht == "online" sein.
                        ok soweit so gut. aber warum ist $serverstatus ein string?
                        oder auch: wie wandelt man einen array in einen string um?

                        Die selbe Sache ist glaube auch bei $benutzerid. Wie mache ich den in einen String?

                        LG
                        PHPWriter23

                        Kommentar


                        • #13
                          Ist eh alles ein wenig merkwürdig, weil Status und Server reservierte Worte sind.
                          Und eigentlich heisst es SHOW STATUS siehe HANDBUCH:

                          Kommentar


                          • #14
                            Lies mal nach was ein Array ist:

                            http://php.net/manual/de/language.types.array.php

                            PHP-Code:

                            $array 
                            = array('test' => '12345');

                            var_dump($array):
                            var_dump($array['test']); 
                            Damit solltest du Dein Problem lösen können.

                            Kommentar


                            • #15
                              Zitat von PHPWriter23 Beitrag anzeigen
                              ok soweit so gut. aber warum ist $serverstatus ein string?
                              oder auch: wie wandelt man einen array in einen string um?
                              Warum macht man sich nicht mal mit den Grundlagen vertraut, bevor man irgendwas programmiert? Arrays werden in jedem Grundlagentutorial behandelt, für sowas braucht man wirklich kein Forum.

                              Kommentar

                              Lädt...
                              X