Code – die besten Beiträge

Unity Loginsystem mit PHP 500 Error?

Hallo, wisst ihr vielleicht warum dieser Code nicht funktioniert?

Ich habe einen Root Server mit MariaDB, PHP 8.2 und phpMyAdmin.

Das ist mein Servercode:

<?php

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

  // variables submited by user
  $loginUser = $_POST["loginUser"];
  $loginPass = $_POST["loginPass"];

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

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

  echo "Conected successfully, now we will show the users.<br><br>";

  $sql = "SELECT password FROM users WHERE username = " . $loginUser;
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    // output data of each row
    while ($row = $result->fetch_assoc()) {
      if ($row["password"] == $loginPass) {
        echo "login Success";
      }
      else {
        echo "wrong credentials";
      }
    }
  }
  else {
    echo "Username does not exist";
  }

  $conn->close();
?>

Das ist mein Unity-Code:

void Start()
{
  // A correct website page.
  StartCoroutine(Login("testuser", "123456"));
}

IEnumerator Login(string username, string password)
{
  WWWForm form = new WWWForm();
  form.AddField("loginUser", username);
  form.AddField("loginPass", password);

  using (UnityWebRequest www = UnityWebRequest.Post("http://blabla/Login.php", form))
  {
    yield return www.SendWebRequest();

    if www.result != UnityWebRequest.Result.Success)
    {
      Debug.Logwww.error);
    }
    else
    {
      Debug.Logwww.downloadHandler.text);
    }
  }
}

In Unity bekomme ich folgende Fehlermeldung:

Und wenn ich auf das PHP-Dokument im Internet gehe:

Danke für eure Hilfe.

Bild zum Beitrag
Webseite, Code, MySQL, PHP, Unity

Box collider funktioniert nicht mit rb.MovePosition?

Ich habe mit Unity angefangen und habe ein kleines problem:
Und zwar habe ich eine kamera mit boxcollider und einen terrain mit terraincollider. Nur leider kann ich die kamera durch das terrain durchschieben! Ich habe schon den verdacht dass es an rb.MovePosition liegt aber weiß nicht wie ich das reparieren kann! Alles wie zumbeispiel rigidbody sind auf der kamera da bin ich mir sicher! Es kommt auch kein Fehler in der Konsole!
Mein Kompletter code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SmoothMove : MonoBehaviour
{
   public float rotationSpeed = 2.0f;
   public float smoothRotationFactor = 5.0f;
   private float yaw = 0.0f;
   private float pitch = 0.0f;

   public float jumpForce = 10.0f;
   public float moveSpeed = 20.0f;
   private Rigidbody rb;
   private bool isMovingForward = false;

   private void Start()
   {
       rb = GetComponent<Rigidbody>();
   }

   private void Update()
   {
       HandleCameraRotation();

       if (Input.GetKeyDown(KeyCode.Space))
       {
           Jump();
       }

       if (Input.GetKeyDown(KeyCode.UpArrow))
       {
           StartMovingForward();
       }

       if (Input.GetKeyUp(KeyCode.UpArrow))
       {
           StopMovingForward();
       }

       if (isMovingForward)
       {
           MoveForward();
       }
   }

   private void HandleCameraRotation()
   {
       if (Input.GetMouseButton(0))
       {
           yaw += rotationSpeed * Input.GetAxis("Mouse X");
           pitch -= rotationSpeed * Input.GetAxis("Mouse Y");
           Quaternion targetRotation = Quaternion.Euler(pitch, yaw, 0.0f);
           transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * smoothRotationFactor);
       }
   }

   private void Jump()
   {
       rb.velocity = new Vector3(rb.velocity.x, rb.velocity.y + 5, rb.velocity.z);
   }

   private void StartMovingForward()
   {
       isMovingForward = true;
   }

   private void StopMovingForward()
   {
       moveSpeed = 20f;
       isMovingForward = false;
   }

   private void MoveForward()
   {
       moveSpeed += 0.1f;
       Vector3 forwardDirection = transform.forward;
       forwardDirection.y = 0.0f; // Keep movement on the horizontal plane
       rb.MovePosition(rb.position + forwardDirection * moveSpeed * Time.deltaTime);
   }
}

Ich würde mich sehr freuen wenn ihr mir helft. Danke :)

C Sharp, Code, Programmiersprache, Spieleentwicklung, Unity 3D, Visual Studio, Unity

Passt der Pseudocode zu dem Algorithmus (n-step SARSA)?

Vielleicht sagt n-step SARSA ja dem einen oder anderem was, falls nicht, hier die Kurzfassung: Es geht um Reinforcement Learning. Pro Zeitschritt kann man eine Action nehmen und bekommt dafür einen Reward. Bei n-step SARSA summiert die Rewards für n Schritte auf und berechnet dann "wie gut" der aktuelle Stand so ist indem man den aufsummierten Reward mit dem zu noch zu erwartenden Reward (bis man am Ziel ist) addiert.

So sieht anscheinend der Code dazu aus:

Hier mal ein Beispiel:

Man bekommt immer 0 Reward außer wenn man im Ziel (G) ankommt. Weil man über 10 Schritte aufsummiert hat, wird die Info 10 Schritte nach hinten "übermittelt". Macht total Sinn. Was ich aber an dem Code nicht check ist der r > 0 check.

Angenommen n = 10, dann passiert das erste update bei r = 9-10+1 = 0

Also t = 9, in dem Bild aber schon bei t = 7 (was meiner Meinung nach auch richtig ist)

Laut code wird ja V(S_r) angepasst, warum aber nicht V(S_t)? Ich hab dann ja ausgehen von t n Rewards gesammelt, sodass ich dann den Stand zum Zeitpunkt t anpassen sollte?

Und wenn man jetzt z.B. einen schnelleren Weg zum Ziel findet, von mir aus in 6 Schritte, würde r = 5 - 10 + 1 = -4 sein und macht nie ein Update. Das kann nicht stimmen, der Wer müsste dann einfach die Summe der Rewards von t=0 bis t=5 sein (Dafür ist auch der r+n < T check).

Bin ich irgendwie lost grad oder stimmt da echt was nicht?

Bild zum Beitrag
Mathematik, programmieren, Code, Algorithmus, Pseudocode

Wie lege ich einen lokalen Benuterz mithilfe eines Powersehll Skript an?

Hierzu möchte ich ein Formular vwerdenden.

Folgendes habe ich erstellt:

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'lokaler Benutzer'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)
$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Benutzername:'
$form.Controls.Add($label)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,70)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'vollständiger Name:'
$form.Controls.Add($label)
$Benutzername = New-Object System.Windows.Forms.TextBox
$Benutzername.Location = New-Object System.Drawing.Point(10,40)
$Benutzername.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($Benutzername)
$Name = New-Object System.Windows.Forms.TextBox
$Name.Location = New-Object System.Drawing.Point(10,90)
$Name.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($Name)
$form.Topmost = $true
$form.Add_Shown({$textBox.Select()})
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
   $x = $textBox.Text
   $x
}
New-LocalUser $Benutzername  -FullName $Name
Windows, programmieren, Code, dotNet, PowerShell

Meistgelesene Beiträge zum Thema Code