Dann selecte dir mit einem Query die Variablen die du brauchst und dann summere sie auf
Genau so habe ich das zur Zeit, aber ich finde die Lösung irgendwie unsauber...will es mit einem Query lösen
Dann selecte dir mit einem Query die Variablen die du brauchst und dann summere sie auf
Genau so habe ich das zur Zeit, aber ich finde die Lösung irgendwie unsauber...will es mit einem Query lösen
will es mit einem Query lösen
Wenn du es so machst, wie ich es beschrieben habe, dann löst du es doch mit einem Query.
Deine Art ist nicht nur ein Query, sondern mehrere Sub-Querys, welche doch jeweils wieder als eigenständiges Query interpretiert werden.
Somit ist die Methode die ich vorschlage wesentlich performanter und besser für den Server
Wenn du es so machst, wie ich es beschrieben habe, dann löst du es doch mit einem Query.
Deine Art ist nicht nur ein Query, sondern mehrere Sub-Querys, welche doch jeweils wieder als eigenständiges Query interpretiert werden.
Somit ist die Methode die ich vorschlage wesentlich performanter und besser für den Server
Oh sorry, hab es nicht richtig gelesen.
Ja, aber das ist das Problem, wie mach ich das mit einem Query?
Oder meinst du pro Tabelle ein Query und dann mit PHP Variablen summieren?
Datenbankaktionen sind immer schneller als PHP Aktionen, somit ist es besser es über einen sauberen Query abzubilden statt über ein PHP Script...
Ja, eben, das habe ich mir auch gedacht.
Aber ich weiß eben nicht wie ich das jetzt machen soll, damit ich ein Ergebnis bekomme.
//edit:
Ich hab das jetzt so gelöst, so funktioniert es.
Hat irgendwer eine bessere Lösungsmöglichkeit?
$sql = "SELECT
SUM(money + bmoney +
(SELECT COALESCE(SUM(money),0) FROM gtl_bankaccounts WHERE owner = :name) +
(SELECT COALESCE(SUM(price+cashstorage),0) FROM gtl_businesses WHERE owner = :name) +
(SELECT COALESCE(SUM(price),0) FROM gtl_houses WHERE owner = :name) +
(SELECT COALESCE(SUM(price),0) FROM gtl_garages WHERE owner = :name))
AS
total
FROM
gtl_accounts
WHERE
name = :name";
$query = $connect->prepare($sql);
$query->execute(array('name' => $_SESSION["username"]));
$result = $query->fetch();
$total = (int)$result['total'];
Alles anzeigen
Hatte ich bereits geschrieben. Per SQL JOINs am besten.
Hatte ich bereits geschrieben. Per SQL JOINs am besten.
Kein Plan wie ich das mache, JOINs verwirren mich.
//Edit NEUE FRAGE:
try {
$query = $connect->prepare("UPDATE inbox SET read = 1 WHERE id = :id");
$query->execute(array('id' => (int)$_GET['read']));
}
catch(PDOException $e){
print "Error: " . $e->getMessage();
}
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'read = 1 WHERE id = '1'' at line 1
Was ist hier falsch?
//Edit: Gelöst...musste backticks(`) verwenden....
Gibt es in HTML/CSS ne möglichkeit das % zu ersetzen mit zb. einen kürzel wie "per"
Kann leider kein % verwenden, da AHK dies als "Offene Variable" sieht...
Gibt es in HTML/CSS ne möglichkeit das % zu ersetzen mit zb. einen kürzel wie "per"
Kann leider kein % verwenden, da AHK dies als "Offene Variable" sieht...
Meinst du so etwas?http://unicode.e-workers.de/entities.php
Bessere Seite gefunden, die auch dein Prozent enthält:
https://dev.w3.org/html5/html-author/charref
Wenn du einen ENB oder ähnlichen Grafikmod nutzt, oder auch Fraps etc. kann es zum Crash kommen.
Wenn du einen ENB oder ähnlichen Grafikmod nutzt, oder auch Fraps etc. kann es zum Crash kommen.
Ja, das ist ja das komische...
Ich habe nichts dergleichen installiert...
Mein GTA & SAMP sind frisch installiert
Hey,
hab ein Problem mit meinem PDO Login System.
Er zeigt mir immer an das ich die falschen Login Daten angebe.
Vielleicht findet ihr ja was ich bin am verzweifeln.
public function userLogin($txt_username,$txt_password)
{
try{
$db = getDB();
$hash_password= hash('sha512', $txt_password); //Password encryption
$stmt = $db->prepare("SELECT `user_id` FROM `users` WHERE `user_name`=':txt_username' AND `user_pass`=':hashed_password'");
$stmt->bindParam("txt_username", $txt_username,PDO::PARAM_STR) ;
$stmt->bindParam("hashed_password", $hash_password,PDO::PARAM_STR, 128) ;
$stmt->execute();
$count=$stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
$db = null;
if($count > 0)
{
session_start();
$_SESSION['user_id']=$data->user_id; // Storing user session value
return true;
}
else
{
return false;
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
Alles anzeigen
<?php
if(!empty($_SESSION['user_id']))
{
$session_uid=$_SESSION['user_id'];
include('config/userClass.php');
$userClass = new userClass();
}
if(empty($session_uid))
{
header("Location: index.php");
}
?>
Alles anzeigen
<?php
include("config/config.php");
include("config/userClass.php");
$userClass = new userClass();
$errorMsgReg='';
$errorMsgLogin='';
/* Login Form */
if (!empty($_POST['loginSubmit']))
{
$txt_username=$_POST['txt_username'];
$txt_password=$_POST['txt_password'];
if(strlen(trim($txt_username))>1 && strlen(trim($txt_password))>1 )
{
$uid=$userClass->userLogin($txt_username,$txt_password);
if($uid > 0)
{
header("Location: main.php"); // Page redirecting to home.php
}
else
{
$errorMsgLogin="Please check login details.";
}
}
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Adminbereich</title>
<!-- BOOTSTRAP STYLES-->
<link href="assets/css/bootstrap.css" rel="stylesheet" />
<!-- FONTAWESOME STYLES-->
<link href="assets/css/font-awesome.css" rel="stylesheet" />
<!-- CUSTOM STYLES-->
<link href="assets/css/custom.css" rel="stylesheet" />
<!-- GOOGLE FONTS-->
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
</head>
<body>
<div id="wrapper">
<?php include("template/navbar_header.php"); ?>
<?php include("template/navbar_left.php"); ?>
<div id="page-wrapper" >
<div id="page-inner">
<div id="login">
<h3>Login</h3>
<form method="post" action="" name="login">
<label>Benutzername</label>
<input type="text" name="txt_username" autocomplete="off" />
<label>Passwort</label>
<input type="password" name="txt_password" autocomplete="off"/>
<div class="errorMsg"><?php echo $errorMsgLogin; ?></div>
<input type="submit" class="button" name="loginSubmit" value="Login">
</form>
</div>
</div>
<!-- /. PAGE INNER -->
</div>
<!-- /. PAGE WRAPPER -->
</div>
<?php include("template/footer.php"); ?>
<!-- /. WRAPPER -->
<!-- SCRIPTS -AT THE BOTOM TO REDUCE THE LOAD TIME-->
<!-- JQUERY SCRIPTS -->
<script src="assets/js/jquery-1.10.2.js"></script>
<!-- BOOTSTRAP SCRIPTS -->
<script src="assets/js/bootstrap.min.js"></script>
<!-- CUSTOM SCRIPTS -->
<script src="assets/js/custom.js"></script>
</body>
</html>
Alles anzeigen
Die Session wird in der config.php für die Index.php gestartet.
@Kaliber ?
@Kaliber ?
Brauchst mich nicht nochmal extra anstupsen, aber süß von dir xD
Also als erstes kann ich dir nur empfehlen require_once zu verwenden, anstatt include.
So und ja mit dem Passwort, das sollte eigentlich leicht zu klären sein.
Debugge einfach mal und lass dir ausgeben, wie das Passwort, welches du eingibst in SHA512 aussieht und ob es identisch ist mit dem in der Datenbank.
Wenn es identisch ist, liegt der Fehler in der PDO Abfrage, sind sie nicht identisch liegt der Fehler eventuell beim Hashing oder generell verwendest du 2 unterschiedliche Passwörter
@Kaliber hast du mal ne Begründung warum man require_once nehmen sollte und nicht include? (man will sich ja auch fortbilden).
Also der Fehler liegt denke ich mal in der Datei "userClass.php"
public function userLogin($txt_username,$txt_password)
{
try{
$db = getDB();
$hash_password= hash('sha512', $txt_password); //Password encryption
$stmt = $db->prepare("SELECT `user_id` FROM `users` WHERE `user_name`=':txt_username' AND `user_pass`=':hashed_password'");
$stmt->bindParam("txt_username", $txt_username,PDO::PARAM_STR) ;
$stmt->bindParam("hashed_password", $hash_password,PDO::PARAM_STR, 128) ;
$stmt->execute();
$count=$stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
$db = null;
if($count > 0)
{
session_start();
$_SESSION['user_id']=$data->user_id; // Storing user session value
return true;
}
else
{
return false;
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
Alles anzeigen
es kommt nämlich auf der index.php
an. Habe die Query überprüft und auch nen kleinen Fehler gefunden. Dennoch wurde es nicht besser.
Der Fehler war, das ich das gehashte Passwort in Klammern setzen musste, da sonst ein Syntax Error kam. Ich habe das geändert, doch es bleibt alles so wie es ist.
hast du mal ne Begründung warum man require_once nehmen sollte und nicht include?
Naja, sonst kann es passieren, dass du mehr als 1x eine Datei inkludierst. Und dann kann es zu echt dummen Fehlern kommen.
Also der Fehler liegt denke ich mal in der Datei "userClass.php"
Lass dir doch mal das Passwort ausgeben, damit du dir sicher sein kannst
Versuch es an dein Hauptskript zurück zu geben und nutze print_r oder echo und lass dir beide Passwörter (das was er in der Datenbank findet & das was du eingibst) mal ausgeben und dann vergleiche
Habe gerade verglichen (mit meiner Freundin zusammen)
Die Werte sind Identisch.
f1b430bf72380800c1acbeeb319802ab5bb90a6efb1ea882a978cf5bdd34b6a7c16da49245767a0101e3ece165016469e937d70bdb1dd0b00a89f9abd5f1d691
f1b430bf72380800c1acbeeb319802ab5bb90a6efb1ea882a978cf5bdd34b6a7c16da49245767a0101e3ece165016469e937d70bdb1dd0b00a89f9abd5f1d691
Oben ist der Datenbank-Wert.
Okay, dann liegt der Fehler in deiner PDO Abfrage, schreib diese mal so:
Okay, dann liegt der Fehler in deiner PDO Abfrage, schreib diese mal so:
Jetzt habe ich einen völlig anderen Wert in der Eingabe.
f1b430bf72380800c1acbeeb319802ab5bb90a6efb1ea882a978cf5bdd34b6a7c16da49245767a0101e3ece165016469e937d70bdb1dd0b00a89f9abd5f1d691
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
Hast du dafür eine Erklärung?