Mit BlueJ programmieren?

Hallo alle zusammen,

ich sitze gerade schon seit fast anderthalb Stunden an diesen drei Aufgaben und weiß einfach nicht weiter. Kann mir jemand helfen, der mit BlueJ Erfahrung hat?

Vielen Dank im Voraus.

Hier die Aufgaben:

/**Projekt: ReihungMax01_roh
 * Klasse : Reihung
 * @author: thh
 * @version: 13.5.14/2.11.12
 */
public class Reihung {
  // Objektvariablen deklarieren
  int anzahl = 19;
  double[] platz = new double[anzahl]; //Reihung deklarieren; wird 19 Kommazahlen 
  // als Werte erhalten; 
  /** 
   * Konstruktor fuer Objekte der Klasse Reihung */
  public Reihung() {
    // gesamte Reihung initialisieren, indem ... 
    for (int i = 0; i < anzahl; i++) {     // alle Inhalte der Reihung festgelegt werden
      platz[i] = 100 + 200*Math.random(); // <-- 5.
    }
  }
  
  /** die Gesamtzahl der Elemente
   * in der Reihe ausgeben */
  public int gibAnzahl() {
    return anzahl;
  }

  /** ein bestimmtes Element der Reihung ausgeben
   * die Nr. des gewuenschten Elementes angeben */
  public double gibPlatz(int i) {
    if (i < anzahl && i >= 0) { 
      return platz[i]; 
    }
    else { 
      return -888.888; 
    }
  } 
   
  /** Aufgabe 1:
   * setzt fuer zwei Elemente der Reihung platz neue Werte fest.
   * Das Element mit dem Index 5 in Reihung platz[ ] wird auf 555.55 gesetzt
   * Das Element mit Index 9 auf der Wert 99.99  */
   
  /** Aufgabe 1:
   * setzt ein bestimmtes Element der Reihung platz[ ] auf einen
   * neuen vorzugebenden Wert. 
    Schreibe nun für i den Index des Elements, welches verändert werden soll
    und für wert den Wert der eingesetzt werden soll*/
   
  /** Aufgabe 2: 
   * sucht das Maximum in der Reihung platz[ ] 
   * und meldet diesen Wert als Antwort */
   
  /** Aufgabe 3: 
   * sucht den Index, an dem das Maximum in der Reihung platz[ ] steht 
   * und meldet diesen Index */
}

/* 
 * 2. Beschreibe deine Idee in Worten. 
 *  Erstelle den Rumpf dieser Methode, die das Maximum in der Reihung 
 *  platz sucht und als Antwort zurueckgibt. 
 *  Achte auf die Farbunterlegung beim Schreiben neuer Methoden.
 *  Erkennst du im Quelltext die Idee/den Algorithmus wieder?
 * 
 * 3. Entwirf und implementiere eine Methode, die den Index nennt,
 *  an dem das Maximum steht. 
 *  Was ist der Unterschied zu Aufg.2?
 *  
 * 4. ** platz[i] = 100 + 200*Math.random();
 *  Hierdurch werden Zahlen zwischen 100.0 und 299.99999 zufaellig erzeugt.
 *  Welche Werte koennen die Elemente der Reihung annehmen, wenn
 *  Z.18 lautet:   platz[i] = 500*Math.random() + 200 ;  ?
 *  *** Z.18 lautet: platz[i] = 13 + i*Math.random() + 20*i ; ?
 * 5. Kopieren (auf Dateiebene ausserhalb von BlueJ) das gesamte
 *  Projekt-Verzeichnis und gib der Kopie einen neuen Namen wie ReihungMax02.
 *  Oeffne dieses Projekt und arbeite im neuen Projekt weiter. 
 */
Computer, Programmieren, Java, Programmierung, BlueJ, Informatik
JavaScript will nicht (Text in Element ändern per onclick)?

Hallo alle miteinander,

ich tüftle derzeit daran, den Text eines Elements zu ändern, sobald im unteren Menü ein Feld angeklickt wurde. Das Ganze funktioniert jedoch nicht und ich verstehe nicht wirklich warum. Könnt ihr mir helfen den Fehler zu finden?

Die wli-Variablen sollen den neuen Text enthalten, da ich das für jemanden programmiere, der keine Ahnung von JavaScript hat und ich es somit vereinfachen wollte, das er den Text ohne etwas kaputt zu machen, bearbeiten kann.

Hier einmal der Code, an dem ich herumprobiert habe. Allerdings ohne den CSS-Teil:

<script type="text/javascript">
  wli1 = "wli1";
  wli2 = "wli2";
  wli3 = "wli3";
  wli4 = "wli4";
  wli5 = "wli5";
  wli6 = "wli6";

  function fwli1() {
    document.getElementById("werdegangcon").value = wli1;
  }

  function fwli2() {
    document.getElementById("werdegangcon").value = wli2;
  }

  function fwli3() {
    document.getElementById("werdegangcon").value = wli3;
  }

  function fwli4() {
    document.getElementById("werdegangcon").value = wli4;
  }

  function fwli5() {
    document.getElementById("werdegangcon").value = wli5;
  }

  function fwli6() {
    document.getElementById("werdegangcon").value = wli6;
  }
</script>
<div class="conh15">
  <div class="con100">
    <div class="con_top center nummer">
      <h3>Werdegang</h3>
    </div>
    <div class="con_mid center" id="werdegangcon">
      2394    Abschluss des Abiturs mit Auszeichnung</br>
      2394    Job als Haustechnikerin
    </div>
    <div class="con_bot center">
      <ul class="werdegang">
        <li id="weli1" onclick="fwli1()">vor der Akademie</li>
        <li id="weli2" onclick="fwli2()">2395</li>
        <li id="weli3"onclick="fwli3()">2399</li>
        <li id="weli4"onclick="fwli4()">2401</li>
        <li id="weli5"onclick="fwli5()">2402</li>
        <li id="weli6" onclick="fwli6()">2403</li>
      </ul>
    </div>
  </div>
</div>
HTML, Programmieren, JavaScript, Programmierung
PHP: echo geht nicht?

Hey,

ich programmiere gerade einen Bezahldienst und ich will zum Testen ein echo ausführen.

Irgendwie wird alles nach der Reihe ausgeführt, aber das echo nicht. Es sieht so aus, als würde er ihn einfach überspringen.

Ich habe den String print mit //Hier markiert:

if (array_key_exists('postdata', $_SESSION)) {
  $stmt = $link->prepare('SELECT balance FROM users WHERE username = ?');
  // In this case we can use the account ID to get the account info.
  $stmt->bind_param('s', $stringArray);
  $stmt->execute();
  $stmt->bind_result($oldBalanceReceiver);
  $stmt->fetch();
  $stmt->close();

  $newBalancePayer = $balance - $_SESSION['postdata']['amount'];
  $newBalanceReceiver = $oldBalanceReceiver + $_SESSION['postdata']['amount'];

  // Changeable
  $fees = 5;
  $newFees = 100 - $fees;

  $reallyNewBalanceReceiver = ($newBalanceReceiver / 100) * $newFees;

  //HIER
  //HIER
  //HIER
  //HIER
  echo "test";
  echo $stringArray;
  //HIER
  //HIER
  //HIER

  $stmt = $link->prepare('UPDATE users SET balance = ? WHERE id = ?');
  $stmt->bind_param("di", $newBalancePayer, $_SESSION['id']);
  $result2 = $stmt->get_result();
  $stmt->execute();

  $stmts = $link->prepare('UPDATE users SET balance = ? WHERE username = ?');
  $stmts->bind_param("ds", $reallyNewBalanceReceiver, $stringArray);
  $result2 = $stmts->get_result();
  $stmts->execute();

Wenn man es von ganz am Anfang anschaut, ging alles am Anfang.

Aber irgendwie heute am nächsten Tag, ging das nicht mehr:

$stmts = $link->prepare('UPDATE users SET balance = ? WHERE username = ?');
$stmts->bind_param("ds", $reallyNewBalanceReceiver, $stringArray);
$result2 = $stmts->get_result();
$stmts->execute();

Deshalb wollte ich $stringarray ausgeben lassen, was mir aber kein Output gibt, genauso nicht wie ein ganz normaler String.

Kann mir jemand helfen?

Ich habe das mit dem echo gelöst. Wie auch immer ich das geschafft habe. $stringarray ist anscheinend in einem anderen if statement und deshalb wird nichts ausgegeben.

Wie soll ich die Variable überall erreichbar machen? Ich kann das

if (array_key_exists('postdata', $_SESSION)) {

Nicht in dem anderen if statement machen, weil dort die Seite neugeladen wird.

Das ist mein anderes if statement:

foreach ($avaibleusernames as $subarray) {
  if (in_array($_POST['username'], $subarray)) {
    echo "he";
    $usernameFound = true;
    echo "test";
    $stringArray = implode("", $subarray);
    echo "test";
    $_SESSION['postdata'] = $_POST;
    unset($_POST);
    header("Location: ".$_SERVER['PHP_SELF']);
    exit;
    break;
  }
}
Computer, Website, HTML, Programmieren, Programmierung, MySQL, PHP
Objektorientierte Programmierung Informatik?

Hallo, ich bin wieder interessiert gewesen meine Informatik Kenntnisse aufzufrischen, nachdem ich ein Jahr lang Informatik in der Schule hatte, und mir wurde die Seite “inf-Schule” empfohlen.

Ich wollte jetzt unbedingt ein Programm zu dem Spiel “Elf-Hoch” schreiben, bekomme es aber nicht hin wie ich will…:/

Folgende Spielsituation soll mit Objekten erfasst werden:

  • Es gibt 2 Würfel, die geworfen werden können.
  • Es gibt eine Kasse, in die Marken eingezahlt und ausgezahlt werden können.
  • Es sollen (vorerst) 3 Spieler mitspielen. Jeder Spieler hat einen Namen und verfügt über eine bestimmte Anzahl von Marken. Jeder Spieler kann die Würfel werfen. Jeder Spieler hat zudem Zugriff auf die Kasse. 
  • Es gibt einen Spielmanager, der das Spiel leitet. Der Spielmanager fordert hierzu die Spieler der Reihe nach zum Spielen auf.

Wie könnte ich z.B. den Spielmanager einbeziehe, damit er die Spieler Reihe nach zum Spielen auffordert?

Oder wie beziehe ich die Kasse mit den Marken ein?

Kann mir jemand dabei möglichst schnell helfen?

from random import randint

class Wuerfel(object):

def __init__(self):

self.augen = randint(1, 6)

def werfen(self):

self.augen = randint(1, 6)

def getAugen(self):

return self.augen

#----------------------------------------

# Spieler

#----------------------------------------

class Spieler(object):

def __init__(self, pName):

self.name = pName

self.rWuerfel = None

self.punkte = 0

def setWuerfel(self, pWuerfel):

self.rWuerfel = pWuerfel

def wuerfeln(self):

self.rWuerfel.werfen()

self.punkte = self.punkte + self.rWuerfel.getAugen()

def getName(self):

return self.name

def getPunkte(self):

return self.punkte

#----------------------------------------

# Test

#----------------------------------------

wuerfel1 = Wuerfel()

wuerfel2 = Wuerfel()

spieler1 = Spieler('Nina')

spieler1.setWuerfel(wuerfel2)

spieler2 = Spieler('Sabine')

spieler2.setWuerfel(wuerfel1)

spieler3 = Spieler('Louis')

spieler3.setWuerfel(wuerfel1)

for i in range(5):

spieler1.wuerfeln()

spieler2.wuerfeln()

spieler3.wuerfeln()

print('Punktestand', spieler1.getName(), ':', spieler1.getPunkte())

print('Punktestand', spieler2.getName(), ':', spieler2.getPunkte())

print('Punktestand', spieler3.getName(), ':', spieler3.getPunkte())

print()

L.G. Leo

Software, Schule, Programmieren, Programmierung, Informatik, Python, Softwareentwicklung, Softwareproblem, Objektorientierte Programmierung
Informatik Schule - Objektorientierte Programmierung?

Hallo, ich bin wieder interessiert gewesen meine Informatik Kenntnisse aufzufrischen, nachdem ich ein Jahr lang Informatik in der Schule hatte, und mir wurde die Seite “inf-Schule” empfohlen.

Ich wollte jetzt unbedingt ein Programm zu dem Spiel “Elf-Hoch” schreiben, bekomme es aber nicht zum laufen…:/

Folgende Spielsituation soll mit Objekten erfasst werden:

  • Es gibt 2 Würfel, die geworfen werden können.
  • Es gibt eine Kasse, in die Marken eingezahlt und ausgezahlt werden können.
  • Es sollen (vorerst) 3 Spieler mitspielen. Jeder Spieler hat einen Namen und verfügt über eine bestimmte Anzahl von Marken. Jeder Spieler kann die Würfel werfen. Jeder Spieler hat zudem Zugriff auf die Kasse. 
  • Es gibt einen Spielmanager, der das Spiel leitet. Der Spielmanager fordert hierzu die Spieler der Reihe nach zum Spielen auf.

Kann mir jemand helfen dieses Programm zum laufen zu bringen?

L.G. Leo

#----------------------------------------
# Wuerfel
#----------------------------------------
from random import randint
class Wuerfel(object):
   def __init__(self):
     self.augen = randint(1, 6)
   def werfen(self):
     self.augen = randint(1, 6)
   def getAugen(self):
     return self.augen
#----------------------------------------
# Spieler
#----------------------------------------
class Spieler(object):
   def __init__(self, pName):
     self.name = pName
     self.rWuerfel = None
     self.punkte = 0
   def setWuerfel(self, pWuerfel):
     self.rWuerfel = pWuerfel
   def wuerfeln(self):
     self.rWuerfel.werfen()
     self.punkte = self.punkte + self.rWuerfel.getAugen()
   def getName(self):
     return self.name
   def getPunkte(self):
     return self.punkte
#----------------------------------------
# Test
#----------------------------------------
wuerfel1 = Wuerfel()
wuerfel2 = Wuerfel()
spieler1 = Spieler('Zauberhand')
spieler1.setWuerfel(wuerfel2)
spieler2 = Spieler('Loser')
spieler2.setWuerfel(wuerfel1)
for i in range(5):
   spieler1.wuerfeln()
   spieler2.wuerfeln()
   print('Punktestand', spieler1.getName(), ':', spieler1.getPunkte())
   print('Punktestand', spieler2.getName(), ':', spieler2.getPunkte())
   print()
Schule, Programmieren, Programmierung, Informatik, Python, Python-programmieren
Wie kann man client-seitig Spielerposition "gut" interpolieren?

Hey,

ich schreibe grad an einem kleinen Spiel.

Dort hat man mehrere Spieler (oh Wunder Multiplayer) und diese können sich mit Kommandos bewegen.
So ein Kommando ist zum Beispiel "bewege dich mit Geschwindigkeit x auf Spieler y zu".

Nun möchte ich nicht jeder Positionsveränderung vom Client zum Server übertragen, sondern im Grunde nur die Kommandos, welche die Spieler betreffen.
Das wird auch funktionieren.

Allerdings will ich natürlich nicht alle Spieler übertragen, sondern nur jene in der Nähe. Und da gibt es das kleine Problem:
a bewegt sich zu b, b zu c, c zu d und d wurde nicht mehr zum Client übertragen weil zu weit weg.

Wo ich jetzt drüber schreibe fällt mir auf, dass ich wohl einfach solche Ketten komplett übertragen muss und dass diese ziemlich wahrscheinlich irgendwo terminieren.

Denke mal das ist bereits die Lösung und eine Alternative gibt es nicht.
Man könnte natürlich vorzeitig terminieren und zum Beispiel bei einer genügend großen Entfernung einfach eine feste Position einsetzen, obwohl sich der Spieler dort bewegt. Die Bewegung des weit entfernen Spielers ist vermutlich ziemlich irrelevant über die gesamte Strecke gesehen. Ab und an muss man dann doch mal die Spieler in der Umgebung aktualisieren, wobei das sowieso passieren muss, wenn sich Bewegungskommandos ändern.

Andere Ideen dazu?

Gruß

Netzwerk, Programmierung, Spieleprogrammierung, Interpolation
Login ohne LDAP?

Hallo habe eine Frage und zwar habe ich eine Login Page mit der ich mich bei einer Applikation anmelden kann. Dies funktioniert im normalen Fall mit einem LDAP Server. Zu Hause habe ich jedoch keinen LDAP Server.

Die Applikation läuft lokal und ich habe eine lokale Datebank mit den Benutzern.

Das heißt man müsste für die Applikation so tun, als hätte die Abfrage funktioniert und user passwort wären gefunden und die Werte fix setzen. Dazu habe ich meinen Code auf das wichtigste minimiert:

Es scheint kein LDAP Problem zu sein.

    public function login(Request $request)
    {
           
        $request['remember'] = $request['remember'] ? true : false;
        $validatedData = $request->validate([


            'username' => 'required',


            'password' => 'required',


            'remember' => 'boolean'


        ]);
        $pass = htmlspecialchars(strip_tags($validatedData["password"]));


        $name = htmlspecialchars(strip_tags($validatedData["username"]));


        $isAuthorized = 0;


        
        $user = [


            'id' => 1,


            'firstName' => "Max",


            'lastName' => "Mustermann",


        ];


    
 
        Auth::attempt($user, $validatedData['remember']);
        
    }

Meine Fehlermeldung:

ErrorException
Undefined index: password

Es ist angeführt, dass in EloquentUserProvider.php in der Zeile 156 ein Fehler ist:

    public function validateCredentials(UserContract $user, array $credentials)
    {
        $plain = $credentials['password'];


        return $this->hasher->check($plain, $user->getAuthPassword());
    }

Server, Computer, Technik, Web, Benutzer, Login, Programmierung, Datenbank, lokal, PHP, Problembehebung, Softwareentwicklung, Webentwicklung, Authentifizierung, Username, Authentifizierungsproblem, laravel
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, Website, Technik, HTML, Programmierung, MySQL, PHP, Technologie, Webentwicklung, mysql-datenbank
Fehlermeldung: "Command raised an exception: AttributeError: 'NoneType' object has no attribute 'stop'"?

Hallo!

Ich bin gerade dabei zu versuchen, meinen Discord Musikbot zu programmieren.

Aber als ich den Bot getestet habe, kam die ganze Zeit der Fehler

"Command raised an exception: AttributeError: 'NoneType' object has no attribute 'stop'".

Nun wollt ich fragen, ob ihr mir helfen könnt. Hier ist nochmal der Code:

import discord
from discord.ext import commands
import youtube_dl

class music(commands.Cog):
  def __init__(self, client):
    self.client = client

  @commands.command()
  async def join(self, ctx):
    if ctx.author.voice is None:
      await ctx.send("Du bist in keinem Channel!")

    voice_channel = ctx.author.voice.channel

    if ctx.voice_client is None:
      await voice_channel.connect()
    else:
      await ctx.voice_client.move_to(voice_channel)

  @commands.command()
  async def disconnect(self, ctx):
    await ctx.voice_client.disconnect()

  @commands.command()
  async def play(self,ctx, url):
    ctx.voice_client.stop()
    FFMPEG_OPTIONS = { 'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn' }
    YDL_OPTIONS = { 'format:"bestaudio"' }
    vc = ctx.voice_client

    with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
      info = ydl.extract_info(url, download = False)
      url2 = info['formats'][0]['url']
      source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
      vc.play(source)

  @commands.command()
  async def pause(self, ctx):
    await ctx.voice_client.pause()
    await ctx_send("Pausiert⏸️")

  @commands.command()
  async def resume(self, ctx):
    await ctx.voice_client.resume()
    await ctx_send("Weiter⏯️")

def setup(client):
  client.add_cog(music(client))
Programmieren, Programmierung, Bot, Fehlermeldung, discord
Bezüge in Excell?

Hallo,

ich möchte in Excel eine kleine Datenbank bauen mit mehreren Tabellen die miteinander verknüpft sein sollen. die erste Tabelle ist praktisch meine Schable in die ich Daten eintrage bzw. via Dropdown menü die Daten aus einer anderen Tabelle ziehen möchte. 3 weitere Tabellen sollen dann die "Datenbanken" sein.

Also ich möchte praktisch folgendes:

Ich hab meine Schablone in der ich in einer Spalte per Dropdown Menü eine Auswahl über ein Produkt treffen kann. Zu diesem Produkt sind aber noch weitere Parameter in der Datenbanktabelle gegeben, zum Beispiel Preis, Gewicht, Artikelnummer, Regalnummer, Fachnummer.

Wie ich das Dropdownmenü hinzimmern kann ist ja klar aber wie kann ich diese Parameter gleich mit rüberziehen wenn ich eine der Auswahlmöglichkeiten wähle? Die schablone sieht ungefähr so aus in Spalten:

Die Anzahl an Artikel, das Gewicht und der Preis sollen dann zusammengerechnet werden bei mehreren Artikeln.

die Datenbanktabelle sieht ungefähr so aus:

kann mir jemand helfen wie ich nun diese Parameter mit von der Datenbank in die jeweiligen Zellen importieren kann wenn ich nur in dem Dropdownmenü eine Auswahl treffe?

Vlt hat ja auch jemand eine Idee wie ich die Artikel Nach Typ trennen kann? Also ich wähle in einem Dropdownmenü z.B. "Schraube" aus und im nächsten feld entsteht dann ein Dropdownmenü das mir entsprechend die verschiedenen Varianten(M5x20, M5x25,...) zur Auswahl gibt? Wäre euch echt mega dankbar für hilfreichen Kommentare!!

Danke schon mal und eine angenehme Woche euch allen.

Mit freundlichen Grüßen

Michél

#

PS: Wer Rechtschreibfehler findet darf Sie behalten :D

Bezüge in Excell?
Computer, Office, Excel, Programmierung, Datenbank, Tabellenkalkulation
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, Website, Technik, Web, Programmieren, Passwort, Programmierung, Hash, Informatik, it-security, Kryptografie, Kryptographie, MySQL, PHP, Programmiersprache, Technologie, web-development, Web Developer

Meistgelesene Fragen zum Thema Programmierung