PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Denkfehler ?? PHP $_SESSION
Beitrag
<blockquote data-quote="Curanai" data-source="post: 2710123" data-attributes="member: 534923"><p>Hi, darf ich als Alltagsbinäro einen winzigen Vorschlag einstreuen?</p><p></p><p>Nehmen wir mal an, Deine Table in der Datenbank hat 50.000 User (rein fiktiv) und Du suchst quasi den einen - mit name und passwort. Jetzt loggst Du Dich ein - Du bist Teil dieser Table und hast die User-ID 1. Damit stehst Du gaaaanz oben. Dein SELECT rattert aber dennoch durch die 49.999 anderen, denn es könnte ja noch einer kommen. Also? Richtig: Begrenzer per Limit rein! Der ist eben nicht nur Begrenzer, sondern auch Abbrecher - wir reden also eigentlich über Performance.</p><p></p><p>Ergänzend:</p><p>Dann könnte man noch über "ticks" nachdenken - das hilft man dem MySQL Interpreter ein wenig sich schneller darauf einstellen zu können, was er da eigentlich machen bzw. nutzen soll. Setze also Datenbanken, Tables und Spalten - sofern nur MySQL - in "`" (ohne ").</p><p></p><p>print_r() hat noch einen zweiten Parameter - versuche [php]echo '<pre>' . print_r($_SESSION['einloggen'], true) . '</pre>';[/php]</p><p></p><p>Bei größeren Queries solltest Du Dir angewöhnen, diese in eine eigene Variable zu schreiben und entsprechend zu strukturieren. So könnte es bspw. aussehen (Grund: spätere Wartung, Lesbarkeit usw.):</p><p>[php]</p><p>$select = 'SELECT</p><p> `id`,</p><p> `name`,</p><p> `rechte`</p><p>FROM</p><p> `mitarbeiter`</p><p>WHERE `name`=? &&</p><p> `passwort`=?</p><p>LIMIT 1;';</p><p>$zugang = $db->prepare($select);</p><p>[/php]</p><p></p><p>Vermeide noch so kleine Redundanz (hier: trim und isset()) - überarbeitet wäre das viel schlanker:</p><p>[php]</p><p>if (</p><p> isset($_POST['aktion'], $_POST['name'], $_POST['passwort']) &&</p><p> $_POST['aktion'] == 'einloggen'</p><p>) {</p><p> $name_formular = trim($_POST['name']);</p><p> $passwort_formular = trim($_POST['passwort']);</p><p> </p><p> if (</p><p> $name_formular != '' &&</p><p> $passwort_formular != ''</p><p> ) {</p><p> // ...</p><p> }</p><p>}</p><p>[/php]</p><p></p><p>Und ja, ich formatiere wirklich if-Anweisungen über mehrere Zeilen so - auch hier: Wartung, Lesbarkeit etc.</p><p></p><p>Das mit while() musst Du überarbeiten - das geht hier nur, weil max. ein Datensatz zurückkommt. Es ist recht dreckig gemacht.</p><p></p><p>Zuguterletzt: require_once! Der kann Sinn ergeben, dürfte in dem Fall aber eine Kanone auf einen Spatz sein. <img src="/styles/default/xenforo/smilies/biggrin.gif" class="smilie" loading="lazy" alt=":D" title="Big Grin :D" data-shortname=":D" /></p><p></p><p>Schlag mich bitte nicht, ich baue abartig große Projekte. Selbst Dein' Einsatz von " oder ' bei Stringausgaben stößt bei mir auf keine Gegenliebe (hat was mit dem PHP-Interpreter zu tun). Es lässt sich überall Performance rauskitzeln und dann ist eine Applikation gestrafft, wartungsfreundlich und „fast as hell“! Je früher man sich daran gewöhnt und es macht, umso besser. Also ganz egal ob Hobby, Amateuer, Semi-Pro oder Pro ...</p><p></p><p>Keine Bange, Du hast auch Dinge drin, die mir gefallen und schon dicht am PSR (Empfehlung zum Code-Schreiben) angelehnt sind. Dafür bekommste von mir einen Daumen hoch!</p><p></p><p>Ich wünsche Dir aber dennoch weiterhin ganz viel Spaß beim Coding!</p></blockquote><p></p>
[QUOTE="Curanai, post: 2710123, member: 534923"] Hi, darf ich als Alltagsbinäro einen winzigen Vorschlag einstreuen? Nehmen wir mal an, Deine Table in der Datenbank hat 50.000 User (rein fiktiv) und Du suchst quasi den einen - mit name und passwort. Jetzt loggst Du Dich ein - Du bist Teil dieser Table und hast die User-ID 1. Damit stehst Du gaaaanz oben. Dein SELECT rattert aber dennoch durch die 49.999 anderen, denn es könnte ja noch einer kommen. Also? Richtig: Begrenzer per Limit rein! Der ist eben nicht nur Begrenzer, sondern auch Abbrecher - wir reden also eigentlich über Performance. Ergänzend: Dann könnte man noch über "ticks" nachdenken - das hilft man dem MySQL Interpreter ein wenig sich schneller darauf einstellen zu können, was er da eigentlich machen bzw. nutzen soll. Setze also Datenbanken, Tables und Spalten - sofern nur MySQL - in "`" (ohne "). print_r() hat noch einen zweiten Parameter - versuche [php]echo '<pre>' . print_r($_SESSION['einloggen'], true) . '</pre>';[/php] Bei größeren Queries solltest Du Dir angewöhnen, diese in eine eigene Variable zu schreiben und entsprechend zu strukturieren. So könnte es bspw. aussehen (Grund: spätere Wartung, Lesbarkeit usw.): [php] $select = 'SELECT `id`, `name`, `rechte` FROM `mitarbeiter` WHERE `name`=? && `passwort`=? LIMIT 1;'; $zugang = $db->prepare($select); [/php] Vermeide noch so kleine Redundanz (hier: trim und isset()) - überarbeitet wäre das viel schlanker: [php] if ( isset($_POST['aktion'], $_POST['name'], $_POST['passwort']) && $_POST['aktion'] == 'einloggen' ) { $name_formular = trim($_POST['name']); $passwort_formular = trim($_POST['passwort']); if ( $name_formular != '' && $passwort_formular != '' ) { // ... } } [/php] Und ja, ich formatiere wirklich if-Anweisungen über mehrere Zeilen so - auch hier: Wartung, Lesbarkeit etc. Das mit while() musst Du überarbeiten - das geht hier nur, weil max. ein Datensatz zurückkommt. Es ist recht dreckig gemacht. Zuguterletzt: require_once! Der kann Sinn ergeben, dürfte in dem Fall aber eine Kanone auf einen Spatz sein. :D Schlag mich bitte nicht, ich baue abartig große Projekte. Selbst Dein' Einsatz von " oder ' bei Stringausgaben stößt bei mir auf keine Gegenliebe (hat was mit dem PHP-Interpreter zu tun). Es lässt sich überall Performance rauskitzeln und dann ist eine Applikation gestrafft, wartungsfreundlich und „fast as hell“! Je früher man sich daran gewöhnt und es macht, umso besser. Also ganz egal ob Hobby, Amateuer, Semi-Pro oder Pro ... Keine Bange, Du hast auch Dinge drin, die mir gefallen und schon dicht am PSR (Empfehlung zum Code-Schreiben) angelehnt sind. Dafür bekommste von mir einen Daumen hoch! Ich wünsche Dir aber dennoch weiterhin ganz viel Spaß beim Coding! [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 7, ▼ = 3, ◇ = 2 und die Summe von ▲ und ▼ durch ◇ geteilt wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Denkfehler ?? PHP $_SESSION
Oben