Hallo Leute,
ich versuche mich zum ersten Mal an einem PHP-Projekt. Und zwar soll es ein kleines Browserspiel werden.
Bis jetzt läuft das Projekt auch ganz gut (meiner Anfänger-Beurteilung nach), doch bevor ich damit weiter mache und das Projekt immer größer wird, würde ich gerne erstmal einen Rat von euch holen ob die komplette Art und Weise überhaupt Sinn macht.
Das Projekt:
Man loggt sich als Spieler ein und verbindet sich somit mit der Datenbank. Auf jeder Seite werden die nötigen Informationen des Spielers von der Datenbank aufgerufen (mit der menubar.php) und angezeigt.
Man kann später verschiedene Elemente kaufen und unterschiedliche Arbeiten durchführen. Hier ist der Kopfbereich, der auf jeder Seite mitgeschleppt wird:
Auf diese Weise erstelle ich mehrere .php Dateien. Hier ist z.B. die Datei um Arbeiten durchzuführen:
Macht dieser Aufbau so überhaupt einen Sinn? Oder sind mit Fehler untergekommen, welche theoretisch z.B. zu große Auslastung für die Datenbank bedeuten würden oder Sicherheitsprobleme produzieren?
Da ich das Ganze frei nach Gefühl geschrieben haben, wäre ich für jede konstruktive Kritik sehr dankbar!
Viele Grüße,
Joe.
ich versuche mich zum ersten Mal an einem PHP-Projekt. Und zwar soll es ein kleines Browserspiel werden.
Bis jetzt läuft das Projekt auch ganz gut (meiner Anfänger-Beurteilung nach), doch bevor ich damit weiter mache und das Projekt immer größer wird, würde ich gerne erstmal einen Rat von euch holen ob die komplette Art und Weise überhaupt Sinn macht.
Das Projekt:
Man loggt sich als Spieler ein und verbindet sich somit mit der Datenbank. Auf jeder Seite werden die nötigen Informationen des Spielers von der Datenbank aufgerufen (mit der menubar.php) und angezeigt.
Man kann später verschiedene Elemente kaufen und unterschiedliche Arbeiten durchführen. Hier ist der Kopfbereich, der auf jeder Seite mitgeschleppt wird:
PHP-Code:
<?php
//menubar.php
$sql = "SELECT skills, money, ort, jobstart, jobfinish, usecar FROM artx_user WHERE name = '$loginuser'";
foreach ($pdo->query($sql) as $row) {
$userskills = $row['skills'];
$kontostand = $row['money'];
$ort = $row['ort'];
$userjobstart = $row['jobstart'];
$userjobfinish = $row['jobfinish'];
$usecar = $row['usecar'];
}
?>
PHP-Code:
<?php
// job.php
session_start();
// Wenn ein User gefunden wurde
if ($_SESSION['username'])
$loginuser = $_SESSION['username'];
{;
// Mit der Datenbank verbinden
include '../connector.php';
?>
<html>
<head>
<title>Job</title>
</head>
<body>
<?php include '../template/menubar/menubar.php'; ?>
<div class="content">
<?php
// Wenn der Job erledigt ist, dann neuen Job starten
if($jobstatus == 1 AND $userskills >= $jobneedskills) {
$sql1 = "SELECT jobname, jobentf, jobtime, jobmoney, jobskills, jobneedskills, id FROM artx_jobs";
foreach ($pdo->query($sql1) as $row1) {
$jobname = $row1['jobname'];
$jobentf = $row1['jobentf'];
$jobtime = $row1['jobtime'];
$jobmoney = $row1['jobmoney'];
$jobskills = $row1['jobskills'];
$jobneedskills = $row1['jobneedskills'];
$jobid = $row1['id'];
// Die Arbeitszeit wird hier berechnet
include 'job-config.php';
echo
'<div class="job">'.
'<div class="jobline">Stelle als: <b>'. $jobname. '</b></div>'.
'<div class="jobline">Entfernung zum Arbeitsplatz: <b>'. $jobentf. ' km</b></div>'.
'<div class="jobline">Arbeitsweg: <b>'. $arbeitsweg. ' min</b></div>'.
'<div class="jobline">Arbeitszeit: <b>'. $jobtime. ' min</b></div>'.
'<div class="jobline">Gehalt: <b>'. $jobmoney. ' €</b></div>'.
'<div class="jobline">Erfahrungspunkte: <b>'. $jobskills. '</b></div>'.
'<div class="jobline">Benötigte Erfahrungspunkte: <b>'. $jobneedskills. '</b></div>';
echo '
<form method="post" action="'. $link_job_info. '">
<button class="jobbtn" type="submit" name="work" value="'.$jobid.'">Arbeiten gehen</button>
</form>
</div>
';
}
}
// Wenn der Job noch ausgeführt wird
if($jobstatus == 2) {
$sql1 = "SELECT jobname, jobentf, jobtime, jobmoney, jobskills, jobneedskills, id FROM artx_jobs WHERE id = '$userjobid'";
foreach ($pdo->query($sql1) as $row1) {
$jobname = $row1['jobname'];
$jobentf = $row1['jobentf'];
$jobtime = $row1['jobtime'];
$jobmoney = $row1['jobmoney'];
$jobskills = $row1['jobskills'];
$jobneedskills = $row1['jobneedskills'];
$jobid = $row1['id'];
// Die Arbeitszeit wird hier berechnet
include 'job-config.php';
$jobendedatum = date("d.m.Y", $userjobfinish);
$jobendezeit = date("H:i:s", $userjobfinish);
echo '
<div class="loading"></div><br><br>
<div class="job-info-content">
<div class="job-info-line">Du arbeitest gerade als '. $jobname. '</div>
<div class="job-info-line">Dein Feierabend ist <br>am: <b>'. $jobendedatum. '</b><br> um <b>'. $jobendezeit. '</b></div>
<div class="job-info-line"><a href="'.$link_main.'">Zurück zur Zentrale</a>
</div>';
};
};
if($jobstatus == 3) {
$sql1 = "SELECT jobname, jobentf, jobtime, jobmoney, jobskills, jobneedskills FROM artx_jobs WHERE id = '$userjobid'";
foreach ($pdo->query($sql1) as $row1) {
$jobname = $row1['jobname'];
$jobentf = $row1['jobentf'];
$jobtime = $row1['jobtime'];
$jobmoney = $row1['jobmoney'];
$jobskills = $row1['jobskills'];
$jobneedskills = $row1['jobneedskills'];
$jobid = $row1['id'];
// Die Arbeitszeit wird hier berechnet
include 'job-config.php';
echo
'
<meta http-equiv="refresh" content="4; URL='. $link_job. '"/>
<div class="job-info-content">
Der Job wurde durchgeführt und beendet!
<br>Du hast '.$jobmoney.'€ und '. $jobskills.' Erfahrungspunkte erhalten<br><br>
Du wirst automatisch weitergeleitet...
</div>';
;
// Geld und Skills berechnen
$new_money = $kontostand + $jobmoney;
$new_skills = $userskills + $jobskills;
$jobmoney= $pdo->prepare("UPDATE artx_user SET money = ?, skills = ?, jobfinish = ? WHERE id = ?");
$jobmoney->execute(array($new_money, $new_skills, '', $userid));
// Kilometer werden dem Wagen hinzugefügt
if (!empty($usecar)){
$new_laufleistung = $km + $jobentf;
$new_zustand = $zustand - 1;
$new_userkm = $userkm + $jobentf;
$joblaufleistung = $pdo->prepare("UPDATE artx_cars SET zustand = ?, km = ?, userkm = ? WHERE id = ?");
$joblaufleistung->execute(array($new_zustand, $new_laufleistung, $new_userkm, $usecar));
}
};
};
};
?>
</div>
</body>
</html>
Da ich das Ganze frei nach Gefühl geschrieben haben, wäre ich für jede konstruktive Kritik sehr dankbar!
Viele Grüße,
Joe.
Kommentar