php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.02.2011, 16:28  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Spätestens in einem Browsergame würde ich:
- HTML von PHP trennen
- Code einrücken damit er lesbarer wird
- nicht mehr prozedural arbeiten

Was dein Form da angeht vermute ich mal das der "Link" garnicht auf das includende-Script selbst zeigt, lass das action-feld doch frei ( return to sender ) und übergib dein "Action"-Feld per POST.

Designtechnisch ist das dort oben wortwörtlich Grütze, du kombinierst 2 Funktionen in einer Funktion die absolut garnichts gemein haben. ( URL-Generierung und SQL-Verbindungsaufbau ), Garbage-Developement.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.02.2011, 23:16  
Aichix3
Gast
 
Beiträge: n/a
Standard

@ tr0y Dass der MySQL Verbindungsaufbau in Connect() in einer anderen Datei liegt, hat damit etwas zutun, dass mehrere, verschiedene Seiten die selbe Login Routine benötigen. Das Includen des Login Scripts aus einer seperaten Datei macht hier mehr Sinn als den Script in jede einzelne Seite zu schreiben.
Mir ist unklar, wie ich HTML und PHP noch mehr voneinander trennen sollte, als ich es ohnehin schon mache.
Und vielen Dank für den Tipp mit der Action Property meiner Login Form. Nach dem Entfernen der Action aus dem <form> Tag wurden die $_POST Vars übertragen. Ergo: Problem gelöst.

@ eagle275 Danke für den Tipp in Bezug auf Sicherheit beim Verwenden von MySQL. Solange der Hacker nur raten kann, reicht es aus, außergewöhnlichere Datenbank- und Feldnamen zu verwenden, oder?
  Mit Zitat antworten
Alt 25.02.2011, 23:24  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Aichix3 Beitrag anzeigen
@ eagle275 Danke für den Tipp in Bezug auf Sicherheit beim Verwenden von MySQL. Solange der Hacker nur raten kann, reicht es aus, außergewöhnlichere Datenbank- und Feldnamen zu verwenden, oder?
Nein, tut's nicht.

Informiere dich bitte - das Stichwort hast du genannt bekommen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 26.02.2011, 00:14  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von Aichix3 Beitrag anzeigen
@ tr0y Dass der MySQL Verbindungsaufbau in Connect() in einer anderen Datei liegt, hat damit etwas zutun, dass mehrere, verschiedene Seiten die selbe Login Routine benötigen.
Von der Idee mit der "in eine Datei packen" will ich dich ja auch nicht abbringen. Du solltest nur nicht SQL-Verbindungsaufbau-Methoden in einer Funktion mit "URL-Generierungsroutinen" packen. Die Funktion erfüllt statt einer Aufgabe die auch durch den Funktionsname repräsentiert wird, zwei aufgaben. Wobei die Zweite nicht durch den Funktionsnamen "erklärt" wird.

Du kannst zum "Scriptweiten Verbindungsmanagement" eine einfache Statische Klasse verwenden, die du "so" nutzen kannst, und wo du auch nur einmal eine Verbindung aufbaust ( am anfang des Scriptes ).

Als beispiel:
- irgendwo am Anfang deines Scriptes in der Index.php vor allen Includes -
PHP-Code:
require_once('database.connection.php');
database::connect('localhost''userweißichnicht''passwortkennichnicht''tolledatenbank'); 
- database.connection.php -
PHP-Code:
// class database

class database {

   
// mysql object keeper
   
static private $dbhandle;

   
// mysql connect method
   
static public function connect($host$user$pw$db) {
      if ( 
self::$dbhandle === NULL ) {
         
self::$dbhandle = new mysqli($host$user$pw$db)
         
// insert errorhandling for mysqli object here
      
}
      else {
         throw new 
Exception('Mysql Connection besteht bereits.');
      }
   }

   
// mysql query method
   
static public function query($sqlstmt) {
      if ( 
self::$dbhandle !== NULL ) {
         
$result self::$dbhandle->query($sqlstmt);
         
/* du kannst hier noch statistische daten sammeln */
         /* beispielsweise das Query zählen, die Query Arbeitszeit messen */
         /* natürlich gehört hier auch das errorhandling hin */
         
return $result;
      }
      else {
         throw new 
Exception('Mysql Query fehlgeschlagen, Verbindung besteht nicht.');
      }
   }

- handhabe irgendwo im code der von index.php included wird -
PHP-Code:
// daten holen aus db: irgendwas
$result database::query("SELECT this, that FROM here WHERE that='this' LIMIT 0,1");

// mehr code... 
Zitat:
Zitat von Aichix3 Beitrag anzeigen
Das Includen des Login Scripts aus einer seperaten Datei macht hier mehr Sinn als den Script in jede einzelne Seite zu schreiben.
Mir ist unklar, wie ich HTML und PHP noch mehr voneinander trennen sollte, als ich es ohnehin schon mache.
Templating. Lesestoff: http://de.wikipedia.org/wiki/Template_Engine

Mein Favorit in Sachen Template-Engines: http://www.smarty.net/

Komplexe Engines wie Smarty sollte man sich anschauen und beurteilen ob einem der Aufwand sich dort einzuarbeiten Recht ist und dem Projekt wirklich etwas bringt. Wenn man auf viele Funktionen der Templates auch auf lange Sicht verzichten kann, könnte man sich eigene Template-Klassen bauen die genau das machen was man braucht. In der Regel ist Smarty aber zukunftsicherer und weniger Aufwand.

Du hast im übrigen PHP garnicht von HTML getrennt, in deinen PHP Files fliegt HTML wie Unkraut rum. ( Bitte nicht so ernst nehmen wie es klingt, aber es ist sinngemäß genau das was es aktuell bei dir ist ).

Zitat:
Zitat von Aichix3 Beitrag anzeigen
Und vielen Dank für den Tipp mit der Action Property meiner Login Form. Nach dem Entfernen der Action aus dem <form> Tag wurden die $_POST Vars übertragen. Ergo: Problem gelöst.
Klingt als arbeitest du mit "verwurmten" Apache-Rewrites.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Array werte zusammen rechnen fabi288 PHP Einsteiger 13 03.01.2011 16:08
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
PHPLot von der Datenbank zum mehrdimensionalen Array mannimammut PHP Tipps 2009 1 15.12.2009 10:40
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
funktion die array zurück gibt PHP Tipps 2005-2 24 07.09.2005 09:49
leere Arrayfelder aus dem Array werfen micbur PHP Tipps 2005-2 5 02.09.2005 16:08
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zurück mit $_post, php _post array, $_post mehrere formen, php $_post trennen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum