php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2006, 13:10  
Gast
 
Beiträge: n/a
Standard

mit $_POST['user'] gehts.... danke
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.10.2006, 19:47  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Klar ist dein Skript nur erstmal schnell zusammengehackt. Dennoch mal ein paar Vorschläge (vor allem, die Abfolge der Verarbeitung zu ändern ist wichtig):

PHP-Code:
<?php
session_start
();
if(!isset(
$_SESSION['USER_NAME']) || $_SESSION['USER_NAME'] == "")
-> if(!empty($_SESSION['USER_NAME'])

PHP-Code:
 {header("Location: login.php");die();}
if(
$_SESSION['RIGHTS'] < 10) {header("Location: logout.php");die();} 
Beim Location eine absolute URI angeben (rfc 26216, Sect. 14.30)

PHP-Code:
print("[b]Eingeloggter User:[/b] ".$_SESSION['USER_NAME']."  -  <a href=\"./logout.php\">Logout</a>

"
); 
Mach erstmal die Verarbeitung der Anfrage, bevor du schon Daten ausgibst!

Kleine Spitzfindigkeiten:
[b] ist eine Anweisung, den Inhalt fett darzustellen. Das ist eine Anweisung zur Art und Weise der Darstellung. Der Sinn von HTML ist eigentlich, die Struktur der Inhalte zu beschreiben - für die Darsellung gib es css. Also besser [b] nehmen.

Und, ein Typograph würde hier ein "&ndash;" anstatt einem Minuszeichen verwenden.

PHP-Code:
if(!$_POST['filled']){ 
Anscheinend hast du dein Error Reporting Level garnicht hochgesetzt. Andernfalls würdest du hier eine Meldung sehen, wenn das Formular noch nicht abgeschickt wurde. Immer error_reporting mind. auf E_ALL setzen (per gleichnamiger Funktion, php.ini oder .htaccess etc.)

PHP-Code:
    print("<h2>Benutzer hinzuf&uuml;gen (ohne Funktion!)</h2>");
    print(
"<FORM name=\"adduser\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">\n");
    print(
"Benutzername: <INPUT type=\"text\" name=\"user\" value=\"\" />
\n"
); 
Für Feldbezeichnungen gibt es das label-Element.
Und, warum die HTML-Tags mal in Klein- nd mal in Großbuchstaben? Besser alles klein schreiben.

PHP-Code:
    print("Passwort: <INPUT type=\"password\" name=\"pass1\" value=\"\" />
\n"
);
    print(
"Passwort (wdh): <INPUT type=\"password\" name=\"pass2\" value=\"\" />
\n"
);
    print(
"Rechte (1-?): <INPUT type=\"text\" name=\"rights\" value=\"1\" /> [size="1"]Ab 10 = Admin[/size]
\n"
); 
Bei small das gleiche Spiel, wie oben. Wer weiß, morgen solls vielleicht nichtmehr klein, sondern grau sein.

PHP-Code:
    print("<INPUT type=\"hidden\" name=\"filled\" value=\"1\" />\n");
?>
   <input type="hidden" name="PHPSESSID" value="<?=session_id()?>">
Die Kurzfassung der PHP-Tags (<?) besser ganz vermeiden. Damit machst du dih von dieser Konfiguration abhängig und kannst dann z.B. nicht mehr einfach eine X(HT)ML-File zur Ausgabe einbinden.

Und, das Feld nur einsetzen, wenn kein Session-Cookie gesetzt werden konnte. Ist zwar nicht so wichtig, aber je weniger die SID rumgeistert, um so besser.

PHP-Code:
<?php
    
print("<INPUT type=\"submit\" value=\"Eintragen\" />\n");
    print(
"</FORM>");


}else{    
// AUSGEFÜLLT
    
if($_POST['pass1'] != $_POST['pass2']){

        die(
"Die zwei eingegebenen Passwörter stimmen nicht überein!");
Wäre doch nicht schlecht, diesen Satz als Fehlermeldung im wieder angezeigten Formular lesen zu können, oder? Also eben erstmal die Anfrage komplett bearbeiten und dann Daten an den Browser ausgeben.

PHP-Code:
    }else{ //PASSWÖRTER STIMMEN
    
$link2 mysql_connect("localhost","root","")
        or die(
"Verbindung zur Datenbank fehlgeschlagen!");
    
    
mysql_select_db("users")
        or die(
"Auswählen der Datenbank fehlgeschlagen!");

        
$abfrage "SELECT * FROM user WHERE user='".$_POST['name']."'"
Wertemenge eingrenzen, ggf. magic_quotes.gpc rückgängig machen und unbedingt mysql_real_escape_string() verwenden.

Und, warum jetzt plötzlich deutsche Bezeichnungen ($abfrage)?

PHP-Code:
        $ergebnis mysql_query($abfrage)
            or die(
"Fehler bei der Abfrage (".$abfrage.")!");
echo(
mysql_fetch_assoc($ergebnis));
        while(
$row mysql_fetch_assoc($ergebnis)){ 
Warum hier while? Prüfe einfach mysql_num_rows().

Basti
Basti ist offline  
Alt 25.10.2006, 12:11  
Gast
 
Beiträge: n/a
Standard

öh. danke...
in einem wort? überwältigt

ich werd das wenn cih zeit finde mal entsprechend umsetzen und posten
 
 


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
While schleife -> letzter durchgang Skazi PHP Tipps 2006 7 16.09.2006 00:11
Problem mit while schleife obi PHP Tipps 2006 6 31.08.2006 13:40
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
while schleife - spezial datensatz einblenden Buschdieb PHP Tipps 2006 2 09.04.2006 13:05
while Schleife gibt nicht alle Daten aus PHP Tipps 2006 2 12.01.2006 19:24
[Erledigt] While schleife in while schleife = nur ein datensatz?! PHP Tipps 2005-2 9 28.10.2005 12:48
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
While Schleife Beatbox Off-Topic Diskussionen 8 19.05.2005 21:55
while schleife beenden PHP Tipps 2005 3 29.03.2005 20:35
IF ELSEIF ELSEIF ELSE mit While Schleife PHP Tipps 2005 9 04.03.2005 23:27
Variabel aus while schleife ausserhalb der schleife nutzen PHP Tipps 2005 8 12.02.2005 18:04
resultausgabe mit while schleife in pdf dokument PHP Tipps 2004 2 23.09.2004 14:56
Nach while Schleife funzt nix mehr?! PHP Tipps 2004 15 25.08.2004 00:25
[Erledigt] probleme mit ner while schleife PHP Tipps 2004 5 23.07.2004 17:28
Prob mit While schleife JEGO PHP Tipps 2004 2 04.06.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
new-aduser while schleife, php while schleife nicht vollständig ausgeführt, php while-schleife wird nicht ausgeführt, $_session in schleife ändern

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:21 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.