MySQL – die neusten Beiträge

PHP/HTML - Wie kann ich in jeder Zelle meiner Tabelle ein Dropdownmenü ausgeben?

Hallo zusammen,

folgendes Problem:

Ich möchte eine Tabelle haben, die in jeder Zelle ein Dropdownmenü hat. Später möchte ich die ausgewählten Werte in der Datenbank speichern.

Da die Tabelle selbst nicht statisch und aufgrund von anderen Parametern größer/kleiner, etc. ist, kann ich nicht in jede Zeile das Dropdown hineinschreiben.

Mein Dropdownmenü (welches einzeln einwandfrei funktioniert):

<form id="form" name="form" method="post">
  <select Vorname2='NEW'>
    <option value=""> </option>
    <?php while ($cat = mysqli_fetch_array($vornamen,MYSQLI_ASSOC)):; ?>
      <option value="<?php echo $cat['vorname'];?>">
        <?php echo $cat['vorname'];?>
      </option>
    <?php endwhile; ?>
  </select>
</form>

Wenn ich diesen Code zweimal verwende (auch unter anderem Namen), dann kann ich dennoch nur bei dem Menü etwas auswählen, welches zuerst im Quelltext vorkommt.

Die Wiederholungen versuche ich mit einer Loop gleichzeitig mit dem Aufbau der Tabelle zu intigrieren. In jede einzelne "Test"-Zeile soll später das Dropdownmenü.

  for ($x = 0; $x < $anzahltage; $x++) {
    echo "<tr>";
      echo "<td>";
?>
    Hier steht der Quelltext von oben
<?php
  echo "</td>";
  echo "<td> test 2</td>";
  echo "<td> test 3</td>";
  echo "<td> test 4</td>";
  echo "<td> test 5</td>";
  echo "<td> test 6</td>";
  echo "</tr>";
}

Gibt es da bessere Ideen?

Ich bin nicht so gut im Programmieren. Ich kenne nicht alle Befehle. Also bitte nicht zu streng sein. :)

SQL, HTML, Webseite, Datenbank, MySQL, PHP, Webentwicklung

Java-Projekt: Wie lasse ich den Inhalt der Datenbank in einer Tabelle anzeigen?

Ich habe jetzt über mehrere Wege versucht, den Inhalt der Datenbank in der Tabelle anzeigen zu lassen und bin immer wieder auf mehr Probleme gestoßen. Kann mir jemand helfen?

Ich weiß nicht, wie ich das angehen soll und ob ich den Anfang überhaupt richtig habe.

Ich kopiere den Code aus der Datenbankklasse mal rein.

package kontaktVerwaltung;

import java.awt.Checkbox;
import java.awt.GraphicsConfiguration;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import com.mysql.cj.protocol.Resultset;

class Db {
  private kontaktVerwaltungClass cw;

  public Db(kontaktVerwaltungClass cw) {
    this.cw = cw;
  }

  public void speichern() {
    String url = "jdbc:mysql://localhost:3306/verwaltung";
    String user = "root";
    String pass = "";

    try {
      Connection con = DriverManager.getConnection(url, user, pass);
      String sql = "insert into contact(name, adress, postcode, website) values(?,?,?,?)";
      PreparedStatement pstmt = con.prepareStatement(sql);
      pstmt.setString(1, cw.tfName.getText());
      pstmt.setString(2, cw.tfAdress.getText());
      pstmt.setString(3, cw.tfPostcode.getText());
      pstmt.setString(4, cw.tfWebsite.getText());
      pstmt.execute();

      con.close();
    }
    catch (SQLException e) {
      JOptionPane.showMessageDialog(null, e.getMessage());
    }
  }

  public void show() {
    String url = "jdbc:mysql://localhost:3306/verwaltung";
    String user = "root";
    String pass = "";

    try {
      Connection con = DriverManager.getConnection(url, user, pass);
      String query1 = "SELECT * FROM contact";
      Statement st = con.createStatement();
      ResultSet rs = st.executeQuery(query1);
      kontaktVerwaltungClass kw;

      while(((ResultSet) rs).next()) {
        kw = new kontaktVerwaltungClass();
        kw.tbShow.add(rs);
      }

      con.close();
    }
    catch (SQLException e) {
      JOptionPane.showMessageDialog(null, e.getMessage());
    }
  }
}
Java, Datenbank, MySQL, Java Swing

Pterodactyl und MYSQL connection Problem?

Also,

Ich habe mir eine Mariadb/Mysql Datanbank angelegt.

Etwas später wollte ich mir das "Game-Panel" Pterodactyl zu legen.

Hat auch alles super funktioniert und auch die Mysql die Pterodactyl braucht geht aber wenn ich jetzt einen weiter Game-Server in Pterodactyl aufmachen kann ich es egal wie nicht mit der Datenbank verbinden.

Als Beispiel hierfür dient ein einfacher Minecraft Server.

Hier mal die Logs von der Console:

https://pastebin.com/KDm3Wq1r

Luckperms MYSQl config:

https://pastebin.com/9GWDE9PP

Ich komme über phpmyadmin ohne Probleme auf diese Datenbank aber leider nicht meine Plugins/Gameserver.

Es liegt nicht an Luckperms ich habe es schon mit anderen Dingen versucht, dort geht es auch nicht.

Da in dem Error log Connection refused steht vermute ich dass irgendetwas die Verbindung ablehnt ich weiß aber leider nicht was. Ich habe die Firewall deaktiviert aber trotzdem geht es nicht.

Ich habe einen Freund mal gefragt ob er wüsste wieso es nicht geht. Er hat vermutet dass die MYSQL nur Verbindungen von Localhost annimmt(Er hat glaube ich recht. da ich extern ja nicht auf die Datenbank connecten kann[was auch so sein soll].Pterodactyl gibt alle Server in einzelne Container und ich vermute dass ist der Grund warum ich nicht so einfach drauf komme).

Nun wollte ich euch fragen ob jmd. weiß wie ich dieses Problem los werde.

Bild zum Beitrag
Minecraft, Datenbank, MySQL, Debian, Docker, MariaDB, Luckperms, Pterodactyl

Fehlermeldung bei Phpmyadmin?

hallo ich habe ihr bei phphmyadmin diese fehler meldung und jetzt kein ich keine rechte mehr änder .

kann mir jeman helfen?

Warning in .\libraries\classes\Dbal\DbiMysqli.php#209

mysqli::query(): (HY000/1034): Fehlerhafte Index-Datei für Tabelle 'db'; versuche zu reparieren

Backtrace

DbiMysqli.php#209: mysqli->query(

string 'SELECT * FROM `mysql`.`db` WHERE `User` = \'shop\' AND `Host` = \'%\' ORDER BY `Db` ASC',

integer 0,

)

DatabaseInterface.php#219: PhpMyAdmin\Dbal\DbiMysqli->realQuery(

string 'SELECT * FROM `mysql`.`db` WHERE `User` = \'shop\' AND `Host` = \'%\' ORDER BY `Db` ASC',

,

integer 0,

)

DatabaseInterface.php#177: PhpMyAdmin\DatabaseInterface->tryQuery(

string 'SELECT * FROM `mysql`.`db` WHERE `User` = \'shop\' AND `Host` = \'%\' ORDER BY `Db` ASC',

integer 256,

integer 0,

boolean true,

)

Privileges.php#1747: PhpMyAdmin\DatabaseInterface->query(string 'SELECT * FROM `mysql`.`db` WHERE `User` = \'shop\' AND `Host` = \'%\' ORDER BY `Db` ASC')

Privileges.php#1834: PhpMyAdmin\Server\Privileges->getUserSpecificRights(

string 'shop',

string '%',

string 'database',

string '',

)

Privileges.php#3125: PhpMyAdmin\Server\Privileges->getHtmlForAllTableSpecificRights(

string 'shop',

string '%',

string 'database',

)

PrivilegesController.php#460: PhpMyAdmin\Server\Privileges->getHtmlForUserProperties(

boolean false,

string '',

string 'shop',

string '%',

string '',

string '',

)

Routing.php#192: PhpMyAdmin\Controllers\Server\PrivilegesController->__invoke(

,

array,

)

index.php#43: PhpMyAdmin\Routing::callControllerForRoute(

,

string '/server/privileges',

,

,

)

Computer, MySQL, PHP, phpMyAdmin

MySQL Startet nicht?

Hallo, meine MySQL(MariaDB) Datenbank startet nicht mehr und ich weiß nicht wieso.
Da ich nun einen Dump machen möchte muss diese um Aktiven zustand sein, was momentan leider nicht Möglich ist.

Ich habe aus den Syslogs dies

Aug  5 19:39:17 rv2689 systemd[1]: Starting MySQL Community Server...
Aug  5 19:39:17 rv2689 systemd[110214]: mysql.service: Failed to determine group credentials: No such process
Aug  5 19:39:17 rv2689 systemd[110214]: mysql.service: Failed at step GROUP spawning /usr/share/mysql/mysql-systemd-start: No such process
Aug  5 19:39:17 rv2689 systemd[1]: mysql.service: Control process exited, code=exited, status=216/GROUP
Aug  5 19:39:17 rv2689 systemd[1]: mysql.service: Failed with result 'exit-code'.
Aug  5 19:39:17 rv2689 systemd[1]: Failed to start MySQL Community Server.
Aug  5 19:39:17 rv2689 systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
Aug  5 19:39:17 rv2689 systemd[1]: Stopped MySQL Community Server.
Aug  5 19:39:17 rv2689 systemd[1]: mysql.service: Start request repeated too quickly.
Aug  5 19:39:17 rv2689 systemd[1]: mysql.service: Failed with result 'exit-code'.
Aug  5 19:39:17 rv2689 systemd[1]: Failed to start MySQL Community Server.

Die MySQL error logs:

root@rv2689:/var/log/mysql# tail -f /var/log/mysql/error.log 
2022-08-05T21:40:38.936047Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.29-0ubuntu0.20.04.3)  (Ubuntu).
2022-08-05T21:40:39.690223Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-08-05T21:40:39.932957Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2022-08-05T21:40:39.933028Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/var/run/mysqld/mysqlx.sock' failed, can't create lock file /var/run/mysqld/mysqlx.sock.lock'
2022-08-05T21:40:39.991422Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-08-05T21:40:39.991479Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-08-05T21:40:39.991761Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2022-08-05T21:40:39.991789Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2022-08-05T21:40:39.992343Z 0 [ERROR] [MY-010119] [Server] Aborting
2022-08-05T21:40:41.465019Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.29-0ubuntu0.20.04.3)  (Ubuntu).

Vielleicht Sagt mir das nicht, aber vielleicht einen von euch

Ich hoffe mir kann jemand helfen

Wen man anders ein Dump erstellen kann ohne das die MySQL in einen Funktionsfähigen zustand sein muss wäre mir das auch recht da ich die Datenbank umziehen möchte und keine andere Möglichkeit sehe außer ein Dump zu benutzen.

LG

System: Ubuntu 20.04

Computer, Fehler, Linux, Datenbank, MySQL, LOGS, startet-nicht, fail

PHP MySql Login / Passwort überprüfung?

Kann mir da jemand sagen wo der Fehler liegt ? Ich bin da am verzweifeln.

Login, Registrierung, Fehlermeldung, SQL Struktur habe ich alles in die Frage gepackt damit ihr einen besseren überblick habt.

login.php:

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $username = htmlspecialchars(stripslashes(trim($_POST['username'])));
    $password = htmlspecialchars(stripslashes(trim($_POST['password'])));

    $statement = $pdo->prepare("SELECT * FROM user WHERE username = :username");
    $result = $statement->execute(array('username' => $username
                                    ));
    $user = $statement->fetch();
    //Überprüfung des Passworts
    if ($user !== false && password_verify($username, $password['passwort'])) {
        $_SESSION['userid'] = $user['id'];
        die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
    } else {
        $errorMessage = "Nutzername oder Passwort war ungültig<br>";
    }

}catch (PDOException $e) {
    print "Error!: " . $e->getMessage() ;
    exit;
  }

Konsole :

<br />
<b>Warning</b>: Undefined variable $pdo in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\Test\assets\php\login.php:14
Stack trace:
#0 {main}
 thrown in <b>C:\xampp\htdocs\Test\assets\php\login.php</b> on line <b>14</b><br />

register.php

<?php
   $server = 'localhost';
   $user = 'root';
   $psw = null;
   $dbName = 'TestApp';
try {
   $conn = new PDO('mysql:host='.$server.';dbname='.$dbName.';charset=utf8', $user, $psw);
   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

// POST wird mit AJAX gesendet
   $username = htmlspecialchars(stripslashes((trim($_POST["username"])))) ;
   $password =  password_hash(htmlspecialchars(stripslashes((trim($_POST["password"])))) ,PASSWORD_DEFAULT) ;
   $cash =     100;

// Schreibt in die Datenbank

   $sql = "INSERT INTO user (username,password,cash) VALUES (:username,:password,:cash) ";
   $sqlvars = array("username"  => $username,
   "password" => $password,
   "cash" => $cash);
   $Abfrage = $conn->prepare($sql);
   $Abfrage->execute($sqlvars);


}catch (PDOException $e) {
  print "Error!: " . $e->getMessage() . "<br/>";
  exit;
}

SQL STRUKTUR :

Datenbankname : Test

Tabelle : user , 5 Spalten/Rows

  • id | int , (auto increment)
  • username | varchar , (unique)
  • password | varchar, (gehasht mit salt sha512)
  • cash | varchar
  • time | datetime, (mit current time stamp)

und ich mache alles mit AJAX.

-PDO statt mysqli

Computer, Webseite, Programmierer, programmieren, JavaScript, Datenbank, Informatik, MySQL, PHP, Webentwicklung, Backend, phpMyAdmin, PDO

Mehrere Webseiten über ein Login System organisieren?

Ich hab mehrere Webseiten die teils über verschiedene Server verstreut sind und es wäre ziemlich lästig für jede ein eigenes zu machen also hab ich beschlossen sowas ähnliches wie oAuth nur mit PHP zu bauen, am besten so zweckmäßig wie möglich um das ganze zu erleichtern. Kann man das Konzept als fertig bezeichnen oder muss man da noch was dran ändern?

Dass man sich anmelden kann wird man auf die anmeldeseite geleitet, man gibt seine Daten ein und man wird auf die eigentliche Seite zurückgeleitet

um einen Benutzer anzumelden greift der dienst als erstes auf einen langen string zurück nennen wir es mal API Token. dieser wird während der nutzer auf die anmeldeseite geleitet wird mit post übergeben um zum einen sicherzustellen dass die webseite autorisiert dazu ist daten anzufragen und zum anderen dass das login system weiß wohin es den token und den Nutzer nach der anmeldung leiten soll. Dann meldet sich der nutzer auf der loginseite n und der nutzername und das passwort wird validiert etc. danach stellt der authentifizierungsserver das access Token aus, was beim weiterleiten wieder zurückgepostet wird. Dieses access token wird dann beim nutzer als cookie gespeichert und der Dienst der dann die Zeichenkette erhalten hat fragt dann die benötigten daten(nutzername, geburtsdatum etc.) mit curl von autentifizierungsserver ab und somit ist der nutzer angemeldet.

Das heißt ich müsste das script was prüft welchen Benutzername man hat muss mit jedem einzelnen Seitenaufruf erneut mittels dem access token den nutzernamen anfragen, eventell kann man das aber auch über nen session cookie mit nutzername regeln

Also: kann man das umsetzen oder habe ich was vergessen?

Computer, Webseite, programmieren, JavaScript, Datenbank, MySQL, PHP, Webserver

PHP dynamisch mit unterschiedlichen Datenbanken verbinden?

Hallo!

Folgende Situation:

Es gibt mehrere Datenbanken. Eine für alle Installationen meines Projektes (beinhaltet Zugangsdaten für Schul-DB's) und dann weitere, schulspezifische Datenbanken, in denen jeweils andere Dinge stehen (wie zum Beispiel Schüler mit ihren Logindaten, etc.)

Der Benutzer ruft also eine Loginseite auf und gibt eine Schul-ID ein. Nach Buttonklick wird die an ein PHP-Skript übergeben, welche dann aus der Datenbank aller Instanzen die entsprechenden Zugangsdaten für die schulspezifische Datenbank ausliest (anhand der Schul-ID).

Anschließend sollen diese als Variable gesetzt werden, sodass von überall in diesem Skript darauf zugegriffen werden kann. Dabei soll das Ganze allerdings nur für diese Session ersetzt werden und nicht in der Datei. Sodass andere Schüler andere Schul-ID's und damit auch andere Schul-DB's verwenden können.

Wenn der Benutzer dann auf der Loginseite seinen Benutzernamen und sein Passwort eingibt, wird dieses wieder an das PHP-Skript übergeben, welches nun in der schulspezifischen DB nachschaut, ob dort der entsprechende Nutzer existiert.

Folgendes Schema habe ich bis jetzt:

class DB {
  private static $_api_username = "root";
  private static $_api_password = "";
  private static $_api_host = "localhost";
  private static $_api_name = "programmingnow_host";
  private static $_api;

  private static $_db_username = $_SESSION['school_db_user'];
  private static $_db_password = $_SESSION['school_db_pass'];
  private static $_db_host = "localhost";
  private static $_db_name = $_SESSION['school_db_name'];
  private static $_db;

  function __construct() {
    try {
      self::$_api = new PDO("mysql:host=" . self::$_api_host . ";dbname=" . self::$_api_name . ";charset=utf8mb4",  self::$_api_username , self::$_api_password);

      if (isset($_SESSION['school_db_name'])) {
        self::$_db = new PDO("mysql:host=" . self::$_db_host . ";dbname=" . self::$_db_name . ";charset=utf8mb4",  self::$_db_username , self::$_db_password);
      }
    }
    catch(PDOException $e) {
      echo "Datenbankverbindung gescheitert!";
      die();
    }
  }
  
  function connectToSchoolDB($school_id) {
    $stmt = self::$_api->prepare("SELECT instance_db_name, instance_db_user, instance_db_pass FROM instances WHERE instance_key=:instance_key");
    $stmt->bindParam(":instance_key", $school_id);
    $stmt->execute();
    $result = $stmt->fetch();
    $result['instance_db_name'] = $_SESSION['school_db_name'];
    $result['instance_db_user'] = $_SESSION['school_db_user'];
    $result['instance_db_pass'] = $_SESSION['school_db_pass'];
  }

  [..] // Der ganze Rest an Funktionen (wie Login)
} 

Der obige Code funktioniert aber nicht.

Könnt ihr mir da helfen? Wie kann ich das realisieren bzw. wo liegt der Fehler?

Danke schon einmal im Voraus!

VG!

Computer, Technik, HTML, Webseite, programmieren, MySQL, PHP, Technologie, Webentwicklung

PHP Warning: Undefined array key "status"?

Hey,

Ich habe ein Array in PHP programmiert, welches per MySQL alle Sachen selektiert.

Nun werden aber die Arrays nicht gefunden.

Code:

$stmt = $link->prepare('SELECT * FROM tickets ORDER BY created DESC');
$stmt->execute();
$resultSet = $stmt->get_result();

// pull all results as an associative array
$tickets = $resultSet->fetch_all();

<?php foreach ($tickets as $ticket): ?>
  <a href="view.php?id=<?= $ticket['id'] ?>" class="ticket">
    <span class="con">
      <?php if ($ticket['status'] == 'open'): ?>
        <i class="far fa-clock fa-2x"></i>
      <?php elseif ($ticket['status'] == 'resolved'): ?>
        <i class="fas fa-check fa-2x"></i>
      <?php elseif ($ticket['status'] == 'closed'): ?>
        <i class="fas fa-times fa-2x"></i>
      <?php endif; ?>
    </span>
    <span class="con">
      <span class="title"><?= htmlspecialchars($ticket['title'], ENT_QUOTES) ?></span>
      <span class="msg"><?= htmlspecialchars($ticket['msg'], ENT_QUOTES) ?></span>
    </span>
    <span class="con created"><? date('F dS, G:ia', strtotime($ticket['created'])) ?></span>
  </a>

Fehler:

C:\xampp\htdocs\ticket.php on line 271
" class="ticket">
Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 273

Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 275

Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 277

Warning: Undefined array key "title" in C:\xampp\htdocs\ticket.php on line 282

Warning: Undefined array key "msg" in C:\xampp\htdocs\ticket.php on line 283

Kann mir jemand sagen, ob ich etwas übersehen habe?

Computer, Webseite, programmieren, MySQL, PHP, Webentwicklung

Php Hashen mit "Salz" / PASSWORD_DEFAULT?

$password = "passwort";
$hashed = password_hash($password, PASSWORD_DEFAULT);
if(password_verify($password, $hashed)){
    echo $hashed;
}

Also so würde ich jetzt den string "passwort" hashen mit etwas vollkommen zufälligem / salz und es zb auf meiner datenbank speicher, alles schön und gut.

Jetzt kommt das große aber, wenn ich die Seite von irgendwo anders aufrufe. Dann mich einloggen will wird das eingegebene wieder gehasht mit einem salz um es mit der sql datenbank abzugleichen.

Das geht aber garnicht weil dieses Salz doch immer ein anderer ist wenn ihr versteht was ich meine.

Hashes ohne salz vergleichen kriege ich schonmal ohne probleme hin.

zum beispiel so würde mein login/abgleich mit der datenbank aussehen :

if(isset($_POST["username"]) && isset($_POST["password"])){

$hash = hash("sha512", $_POST["password"]);

$mysqli1 = new mysqli($servername, $user, $pw, $db);
$result = $mysqli1->query('SELECT id FROM user WHERE username = "'. $_POST["username"]. '"  ');
$result1 = $mysqli1->query('SELECT id FROM user WHERE password = "'. $hash. '"  ');

if($result->num_rows == 1 and $result1->num_rows == 1 ) {
  echo "Login erfolreich"; 
} else {
    echo "Falsches Passwort oder Nutzername";
}
$mysqli1->close();
}

Hab jetzt mysqli benutzt weil es irgendwie übersichtlicher ist, und ob das anfällig für Sql Injections oder so ist spielt eigentlich keine rolle erstmal. Manche stört das

PC, Server, Computer, Technik, Web, Webseite, programmieren, Passwort, Hash, Informatik, IT-Sicherheit, Kryptographie, MySQL, PHP, Programmiersprache, Technologie, web-development, Web Developer

JavaScript Problem?

Hab mir einen Passwort Generator gemacht (Code unten), aber irgendwas stimmt da manchmal nicht und ich komm nicht drauf.

Ist noch nicht fertig oder überhaupt ein Krasser Passwort Generator aber hab den aus Langeweile gemacht und dieser Fehler stört mich.

Kann mir jemand weiterhelfen ?

Hier steht kein Undefined.

Hier steht ein Undefined mitten im erstellten Passwort.

Ist nur kurzer JavaScript Code:


let pwLength = 12;
let randomNumber  = Math.round(Math.random() *3);
let ALPHABET = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',  'S', 'T', 'U', 'V', 'W', 'X','Y', 'Z' ];
let alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
let Numbers = ["0","1","2","3","4","5","6","7","8","9"];
let SpecialChar = 
            ["!", "*", "#" ,"," ,";" ,"?", "+", "-", "_" ,".", "=", "~", "^", "%", "(", ")" ,"{", "}", "[", "]", "|", ":", "/" ];
let passwort = "";


    for (i = 0; i <= pwLength - 1; i++){
    /* zufällige Zahl zwischen 0-3,
    Bei jedem Schleifendurchgang geht es in ein anderes if statement rein */
    randomNumber  = Math.round(Math.random() *3);


                    // +1 Großbuchstabe
                if (randomNumber == 0){
                passwort += ALPHABET[Math.round(Math.random() *ALPHABET.length)]; }
                  // +1 Kleinbuchstabe
                if (randomNumber == 1){
                passwort += alphabet[Math.round(Math.random() *alphabet.length)];}
                  // +1 Zahl
                if (randomNumber == 2){
                   passwort += Numbers[Math.round(Math.random() *Numbers.length)];}
                    // +1 Sonderzeichen
                if (randomNumber == 3){
                passwort += SpecialChar[Math.round(Math.random() *SpecialChar.length)];}
    }
                if (passwort.includes("undefined")){
                console.log("Undefined Fehler, Passwort lautet " + passwort);}
                else{ console.log("Dein Passwort lautet : " +passwort )}

Glaube mit Switch Case wäre das besser als if, hab ich aber nie benutzt nur in Tutorials mal gesehen

Bild zum Beitrag
Computer, HTML, programmieren, CSS, JavaScript, Fachinformatiker, Informatik, JQuery, MySQL, web.de, Angular

PHP Error durch require()?

Hi, ich raff grad gar nix mehr, ich hab eine PHP Klasse dbConnection, in der ich mit require ein php File (settings.php) einbinde. Das einbinden funktioniert auch, nur binde ich innerhalb von settings.php ein weiteres php File ein, functions.php. Das wiederrum funktioniert nicht. Ich weiß, meine Erklärung ist bissle kompliziert, daher hier der Code:

dbConnection.php

<?php

try {
    require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/settings/settings.php";
} catch (Throwable|mysqli_sql_exception $exception) {
    error_log(date("d.m.Y, H:m:s") . " | " . $exception . "\n\n", 3, "/hp/cz/aa/gf/www/domains/domain.com/php/logs/php-errors.log");
    header("location: /error/?error=500");
    exit();
}

class dbConnection
{
...
}

settings.php

<?php

try {
    date_default_timezone_set("Europe/Berlin");
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";
} catch (Throwable|mysqli_sql_exception $exception) {
    error_log(date("d.m.Y, H:m:s") . " | " . $exception . "\n\n", 3, "/hp/cz/aa/gf/www/domains/domain.com/php/logs/php-errors.log");
    header("location: /error/?error=500");
    exit();
}

hier die relevanten Pfade:

domain.com/php/classes/dbConnection.php

domain.com/php/settings/settings.php

domain.com/php/functions/functions.php

Der Fehler muss an der in settings.php Datei liegen, da ich schon einmal vor und nach dem require in settings.php ein die("hier"); gemacht habe und dabei als das die("hier"); VOR dem

require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";

"hier" ausgegeben hat, und NACH dem

require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";

mir angezeigt wurde, dass diese Seite nicht funktionieren würde. Komisch ist auch, dass der Fehler nicht aufgefangen wird, daher bin ich gerade etwas ratlos. Hoffe meine Frage ist verständlich, ansonsten gerne einfach nachfragen :)

Computer, Internet, HTML, Webseite, programmieren, MySQL, PHP

Verbindung zur Datenbank checken - PHP?

Hi, ich hab folgende Funktion in einer Klasse dbConenction:

private mixed $connection;

public function __construct()
{
    return $this->connect();
}

private function connect()
{
    try {
        $host = "localhost";
        $username = "USER_NAME";
        $pwd = "PWD";
        $database = "DB_NAME";
        $this->connection = new mysqli($host, $username, $pwd, $database);

        if ($this->connection->connect_error) {
            throw new Exception("Connection to database failed. | " . $this->connection->connect_error);
        }
        return $this->connection;
    } catch (Exception $exception) {
        $this->connection = null;
        databaseErrorHandling($exception);
        return null;
    }
}

Die Verbindung zur Datenbank funktioniert auch, ich kann Queries ausführen. Doch mein Problem, wenn ich zum Beispiel den Username für die Datenbank ändere, soll eigentlich durch

if ($this->connection->connect_error)

eine Exception geworfen werden, weil die Verbindung ja nicht aufgebaut werden kann, da der Username falsch ist. Das Gleiche funktioniert auch nicht, wenn ich zum Beispiel das Passwort ändere. Hab in den Docs von PHP nachgelesen und dort haben die das genauso gemacht...

$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

Jemand eine Idee, warum das nicht funktioniert, so wie es funktionieren sollte :D, oder Verbesserungsvorschläge?

Danke für jede Hilfe!!!

Computer, SQL, HTML, Webseite, programmieren, Datenbank, MySQL, PHP

Meistgelesene Beiträge zum Thema MySQL