PHP-Login Fehler?

Guten Tag,

Ich habe einen Fehler beim einloggen in mein Loginsystem mit PHP. Ich kann user registrieren, also der username und der password_hash werden richtig in der DB gespeichert. Wenn ich mich aber mit einem bestehenden user der in der Datenbank existiert anmelden möchte, klappt das nicht und es kommt diese Fehlermeldung:

Fehlermeldung Beginn:

Warning: Trying to access array offset on value of type bool in C:\xampp\htdocs\login.php on line 16

Anmeldung fehlgeschlagen, versuche es erneut.

Fehlermeldung Ende.

Mein PHP register Script:

<?php

// Datenbankverbindung

include ('connection.php');

// Benutzereingabe aus Formular

$username = $_POST['username'];

$password = $_POST['password'];

// Das Passwort hashen

$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

// SQL-Abfrage, um den Benutzer in der Datenbank zu speichern

$sql = "INSERT INTO users (username, password_hash) VALUES (?, ?)";

$stmt = $conn->prepare($sql);

$stmt->execute([$username, $hashedPassword]);

// Erfolgsmeldung oder Weiterleitung zur Anmeldeseite

header('Location: login.html');

?>

Mein PHP login Script:

<?php

// Datenbankverbindung

include ('connection.php');

// Benutzereingabe aus Formular

$username = $_POST['username'];

$password = $_POST['password'];

// SQL-Abfrage, um das gespeicherte Passwort abzurufen

$sql = "SELECT password_hash FROM users WHERE username = ?";

$stmt = $conn->prepare($sql);

$stmt->execute([$username]);

$row = $stmt->fetch();

// Überprüfen, ob das eingegebene Passwort korrekt ist

if ($row && password_verify($password, $row['password_hash'])) {

    // Anmeldung erfolgreich, führe die notwendigen Aktionen aus

    // z.B., setze eine Sitzung und leite den Benutzer weiter

    session_start();

    header('Location: index.html');

} else {

    echo "Anmeldung fehlgeschlagen, versuche es erneut.";

}

?>

Wäre cool wenn mir jemand bei diesem Problem weiterhelfen könnte, bin noch nicht so fit in dieser Thematik.

SQL, HTML, Webseite, Datenbank, MySQL, PHP, Programmiersprache, Webentwicklung
BigData - Milliarden Zeilen aus SQL Tables laden?

Anstatt direkt auf Stack-Overflow zu lümmeln möchte ich der deutschen Community mal ne Chance geben. In einem meiner Projekte geht es darum mehrere Millarden Zeilen an Relationalen Daten zu laden, lokal in einer DB zu speichern und dann in die Cloud zu laden.

  • Nein wir haben keinen Zugang zum Azure Backbone
  • Ja, traffic ist aktuell ein Problem aber nicht das Akute

Nun haben wir eine DB2 OnPrem und wir ich bisher in den Datagateways vorgegangen bin ist mit ORDER BY X OFFSET X FETCH FIRST X um die Datenmenge aufzuteilen und parallel abzuarbeiten.

Die o.g. Datenmenge von ein paar Milliarden setzen sich aus mehreren Tabellen zusammen, alle haben einen Primary Key. Jage ich nun eine Query mit Order-By über die Datenmenge, dauert das für 35k Datensätze ca. 2:15 Minuten.

Kurze Formel wegen dem Microbatching:

135 Sekunden * 256 (Microbratches) * 8 (Jobbatches) landen wir bei einer Ladezeit (READ ONLY) von ca. 76,8 Stunden.

Hat jemand von euch eine Idee, wie man das Problem angehend könnte?

Hier mein Lösungsansatz:

  1. Temptable der Quelle errichten, da ich auf die Quelle KEIN Lock setzen kann
  2. OrderBy weglassen und die physische reihenfolge des statischen Temptables als Faden für die Ingestion der Daten verwenden.

Mit dem Ansatz würde es nur ca. 12 * 256 * 8 Sekunden brauchen also 24.576 was durchaus akzeptabel wäre.

Für den Zukünftigen Real-Time Ansatz werden ohne hin in die Quellsysteme Events eingebaut, welche die eindeutige ID an die Gateways kommunizieren um die Daten in die Cloud zu transferieren. - Meiner Meinung nach der einzige Weg near-real-time in dieser Datenmenge zu realisieren (Gibts hier vielleicht alternative Vorschläge? - Ich kann ja nicht annehmen, dass jedes Quellsystem änderbar ist und ich möchte Insellösungen vermeiden)

Danke schonmal im Voraus :)

Grüße

SQL, Datenbank
Datenbanken Normalisierung - dritte Normalform bei folgender Tabelle?

Moin zusammen,

ich gehe vor meiner Prüfung nochmal einige Aufgaben durch, eine davon Normalisierung. Da wir keine Lösungen haben habe ich keine Chance mich selber zu kontrollieren. Chat GPT liefert auch jedesmal eine neue Lösung, der scheint auch nicht so zuverlässig zu sein. Die Aufgabe ist folgende:

1f) Zerlegen Sie die Tabelle so, dass sie der dritten Normalform genügt. Markieren Sie in Ihrer Zerlegung alle Primär- und Fremdschlüssel. In Ihrer Zerlegung dürfen Sie keine zusätzlichen Attribute etwa in Form künstlicher Schlüssel verwenden. (Die Tabelle füge ich hinzu).

Bei der dritten Form sollten ja alle Attribute voll funktional Abhängig vom Primärschlüssel sein. Somit müssen Spalten die nicht nur vom Primärschlüssel abhängig sind in eine weitere Tabelle ausgelagert werden.

Mein Lösungsvorschlag wäre gewesen (Primärschlüssel sind dick):

Tabelle 1: Serie Erfinder
Tabelle 2: Serie(Fremdschlüssel auf Tabelle1), Staffel, Folge, Titel, Länge, Special

Weitere Informationen zu der Tabelle:

  • Zu jeder Serie kann es mehrere Staffeln geben. Innerhalb einer Staffel kann es mehrere Folgen geben. Staffeln und Folgen sind durchnummeriert.
  • Jede Serie wurde von genau einer Person erfunden. Der Name der Person befindet sich in der Spalte ‚Erfinder’.
  • Einige Folgen sind so genannte Specials. Ob eine Folge ein Special ist, ist in der Spalte ‚Special’ vermerkt.

Datenbanken Normalisierung - dritte Normalform bei folgender Tabelle?
Studium, SQL, IT, Datenbank, Informatik, Normalform, normalisierung
Als Student Online Geld verdienen (Programmieren)?

Hallo,

Da ich noch Student bin und nicht sehr viel Geld habe, bin ich auf der Suche nach Jobs (Freelancing). Mein Ziel ist es um die 1200-2000 Fr. zu verdienen, da ich mir ein MacBook kaufen möchte, aber ich weiss nicht genau wie ich das anstellen soll. In meiner Freizeit programmiere ich sehr gerne und interessiere mich generell sehr gerne für die IT. Ich kenne mich schon mit Java, SQL, Python, C++, Javascript aus und ich bin auch recht gut darin.

Mein einziges Problem darin ist, dass ich nicht weiss, wie ich etwas verkaufen soll, damit ich irgendwie an das gewünschte Geld komme. Was ich sehr gut kann, ist das, was in einer App im Hintergrund passiert. Also das Logische hinter einer App. Was ich aber wiederum noch nicht sehr gut kann, ist das Designen einer App, damit es benutzerfreundlich ist und damit man die auch verwenden kann. Ich kann ja keine App verkaufen, ohne das entsprechende Design. Ich habe auch vor das mit Flutter zu lernen, aber bis dahin geht es mir ein bisschen zu lange.

Was ich auch noch sehr gut kann, ist Datenbanken erstellen, Queries, ERM, Schema usw. Ich kann diese auch dann mit der dementsprechenden Software verknüpfen.

Ich habe bisher keine Option gefunden, mit diesem Wissen irgendwelches Geld zu verdienen. Natürlich kenne ich auch Plattformen wie FIverr, aber ich habe das Gefühl da ich da keinen Gewinn erzielen werde, denn wenn ich z.B. anbiete eine WordPress Homepage zu machen, dann gibt es schon 50 andere die schon mehr Erfahrung haben als ich und auch schon 5-Sterne-Bewertungen haben und warum sollten dann Kunden bei mir einkaufen, wenn es andere gibt, wo es besser ausschaut.

Mein Ziel ist es ja nicht etwas langzeitiges zu finden, sondern ich möchte eigentlich nur an den gewünschten Betrag zu kommen, und das auch möglichst schnell.

Vielleicht habt ihr ein paar Tipps, wie ich an mein Ziel näher kommen könnte.
PS: Mir wäre es auch egal, müsste ich dafür eine neue Programmiersprache lernen.

Ich hoffe, jemand kann mir irgendwie helfen
Danke im Voraus!

LG
Simone

Geld verdienen, Job, Nebenjob, SQL, Java, JavaScript, Minijob, pro, Taschengeld
PHP Rechteverteilung?

 Hallo zusammen. Ich habe eine Aufgabe, in der es darum geht, eine einfache Webseitenstruktur zu erstellen. Dabei soll es eine einfache Inventarliste sowie eine Benutzerverwaltung geben. Dabei soll es einen Admin geben, der in der Lage ist, in der Inventarliste Sachen hinzuzufügen, sowie in der Benutzerverwaltung Mitarbeiter zu erstellen, Updaten und Löschen. Folgendes Problem: In der Einlogen.php habe ich eine Methode getRights() erstellt. in dieser Methode wird dem eingeloggten User die Rollen gegeben, welche sich in der Tabelle Rechte befinden. Diese werden in Session-Variablen gespeichert. Jedoch speichert die Session-Variable, die für die Rollen zuständig ist die Rollen nicht. So hat selbst der Admin-Account keinen Zugriff auf die Benutzerverwaltung. Die Abfragen selbst funktionieren. Ist selbst getestet worden. 

 Einen schönen Abend noch.

<?php
Session_start();
// Überprüfe, ob der Benutzer angemeldet ist
$server= "localhost";
  $port="3307";
  $user = "root";
  $passwd = "usbw";
  $datenbank = "benutzerdaten";
  $con = mysqli_connect($server,$user,$passwd,$datenbank,$port);
  mysqli_select_db($con,"benutzerdaten");
  
  // Prüfen, ob der User den Adminbereich betreten darf
  if(!isset($_SESSION['Rollen']) OR !in_array('User_administrieren', $_SESSION['Rollen']) == true)
    die("Sie haben keine Berechtigung, diese Seite zu betreten!\n");
 ?>

 

<html>
  <head>
  
   <meta charset="utf-8">
   
   <title>Registrierung</title>
   
   <link rel="Stylesheet" type="text/css" href="Abschlussprojekt.css">
   
  </head>
  
  <body>
  <div class ="headmain2">
     <a class= "Startseite" href="Startseite.php">Benutzerverwaltung</a>
     <a class= "Inventarliste" href="Inventarliste.php">Inventarliste</a>
     <a class= "Benutzerverwaltung" href="Benutzerverwaltung.php">Benutzerverwaltung</a>
 
      </div>
      
</body>
</html>
SQL, Datenbank, PHP, Programmiersprache
SQL Server ist kaputt?

Hallo,

ich habe ein ziemlich fehlerhaftes SQL Statement (transaction-Statement) in SQL Management Studio abgesetzt. Nun funktioniert irgend etwas nicht mehr so das mir Schnittstellen QUues volllaufen. Ein weiterer Faktor ist das mir das SQL-Server Management Studio (läuft auf einem WIndows-Server) viel Arbeitspeicher braucht SQL Server Windows NT - 64Bit verbraucht über 1 GB. Weiß jemmand was man da machen kann oder warum das so romort?

Das abgesetzte Statement

BEGIN TRANSACTION;
IF EXISTS (SELECT A.PATIENTENID, A.FALLID, A.BEFUNDID, A.SOURCE, A.UNTERSUCHUNGSART, A.UNTERSUCHUNGSZEIT, A.BEFUNDTEXT, A.AUFTRAGSNR,B.GEB, B.GESCHLECHT, B.NACHNAME, B.VORNAME, C.MERKMALTEXT,D.AUFTRAGSART,D.AUFTRAGSTATUS,D.FD, E.DOCID, F.ORT, F.FD FROM dbo.BEFUND as A, dbo.PATIENT as B, PATMERKMAL as C, LABOR_AUFTRAG as D, dbo.HCMDOC as E, dbo.BEHANDLUNG as F WHERE BEFUNDID=BEFUNDID )
BEGIN
UPDATE dbo.BEFUND SET 
PATIENTENID=PATIENTENID,
FALLID=FALLID,
SOURCE=SOURCE,
UNTERSUCHUNGSART=UNTERSUCHUNGSART,
UNTERSUCHUNGSZEIT=UNTERSUCHUNGSZEIT,
BEFUNDTEXT=BEFUNDTEXT,
AUFTRAGSNR=AUFTRAGSNR
WHERE BEFUNDID=BEFUNDID;
END
ELSE
BEGIN
INSERT INTO dbo.BEFUND (PATIENTENID,FALLID,BEFUNDID,SOURCE,UNTERSUCHUNGSART,UNTERSUCHUNGSZEIT,BEFUNDTEXT,AUFTRAGSNR) 
VALUES ('122','8753','45775','Source','uart','4665','Befundtext','094z74');
END
IF NOT EXISTS (SELECT 1 FROM dbo.SYSTEM WHERE NAME=SOURCE )
BEGIN
INSERT INTO dbo.SYSTEM (NAME) 
VALUES (SOURCE);
END
SQL, Datenbank, SQL-Server

Meistgelesene Fragen zum Thema SQL