Webseite ohne Anmeldung läuft auf laravel

This commit is contained in:
Robert
2024-01-17 12:43:56 +01:00
parent 57a4470de3
commit bab5bfd58e
435 changed files with 37238 additions and 91 deletions

View File

@@ -0,0 +1,83 @@
<?php
namespace App\Models;
use Exception;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Gerichte extends Model
{
use HasFactory;
function db_gericht_select_karte()
{
try {
$sql_gerichte = "SELECT * FROM gericht ORDER BY RAND() LIMIT 5";
$result_sql_gerichte = DB::select($sql_gerichte);
$result_sql_gerichte1 = DB::select($sql_gerichte);
echo var_dump($result_sql_gerichte);
$verwendete_allergene_code = [];
$verwendete_allergene_string = "";
foreach ($result_sql_gerichte as $row_gerichte) {
// Abfrage der vorhandenen Allergene im aktuellen Gericht
$sql_gericht_hat_allergene = "SELECT * FROM gericht_hat_allergen WHERE gericht_id=" . $row_gerichte->id;
$result_sql_gericht_hat_allergene = DB::select($sql_gericht_hat_allergene);
$allergene = "";
foreach ($result_sql_gericht_hat_allergene as $row_allergene) {
$allergene .= $row_allergene->code . ", ";
$drin = 0;
foreach ($verwendete_allergene_code as $verwendet){
if ($verwendet == $row_allergene->code){
$drin =1;
}
}
if ($drin == 0) {
$verwendete_allergene_code[] = $row_allergene->code;
}
}
}
$sql_allergen = "SELECT code, name FROM allergen";
$result_sql_allergen = DB::select($sql_allergen);
$data = [
"allergene" => $verwendete_allergene_string,
"result_sql_allergen" => $result_sql_allergen,
"verwendete_allergene_code" => $verwendete_allergene_code,
"result_sql_gerichte" => $result_sql_gerichte1,
"allergene1" => $allergene
];
return $data;
} catch (Exception $ex) {
$data = array(
'id' => '-1',
'error' => true,
'name' => 'Datenbankfehler ' . $ex->getCode(),
'beschreibung' => $ex->getMessage());
return $data;
}
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* Diese Datei enthält alle SQL Statements für die Tabelle "benutzer"
*/
namespace App\Models;
use Exception;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Benutzer extends Model
{
use HasFactory;
function anmelden(string $email, string $passwort)
{
$link = connectdb();
$sql = "SELECT * FROM benutzer
WHERE (`email` = '$email')";
$result = $link->query($sql);
$row = $result->fetch_assoc();
if ($row['passwort'] == NULL) {
$row = 0;
} elseif ($row['passwort'] == $passwort) {
session_start();
mysqli_begin_transaction($link);
$sql = "UPDATE benutzer
SET letzteanmeldung = current_time, anzahlfehler = 0
WHERE email = '$email'";
$link->query($sql);
// $sql = "UPDATE benutzer SET anzahlanmeldungen = anzahlanmeldungen + 1 WHERE id = " . $row['id'];
$sql = "CALL incrementAnzahlAnmeldungen(" . ($row['id']) . ")";
$link->query($sql);
mysqli_commit($link);
$_SESSION['uid'] = session_id();
$_SESSION['login'] = 1;
$_SESSION['name'] = $row['name'];
$_SESSION['email'] = $row['email'];
return 1;
} else {
mysqli_begin_transaction($link);
$sql = "UPDATE benutzer
SET anzahlfehler = anzahlfehler+1, letzterfehler = current_time
WHERE email = '$email'";
$link->query($sql);
mysqli_commit($link);
}
return 0;
}
}