php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2005, 18:17  
Gast
 
Beiträge: n/a
Standard PHP Code so ok?!

Ich habe heute einmal versucht ein wenig mit PHP umzubasteln. Nun würde ich gern wissen, ob der Code so ok ist? Oder gibt es elegantere Lösungen?!

Danke schonmal für Hinweise.

Hier nun der Code:

PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
        
if(!isset($id))

    {
        print(
"    <h1>Welche User soll gelöscht werden?</h1>");
        
        print(
"<form action='deleteuser.php' method='post'>

"
);
        print(
"<input type='hidden' name='id' value='true'>");
        print(
"Benutzername:
"
);
        print(
"<select name='login' size='1'>");
        print(
"<option selected>--------------</option> ");
        
            
$db=mysql_connect("localhost""root""");      
            
//    or die ("Keine Verbindung zum Datenbankserver!");
               
mysql_select_db("museum");                        
               
//    or die ("Die Datenbank kann nicht angesprochen werden!");
               
$anfrage="SELECT `Login` FROM `benutzer`";               
               
$ergebnis=mysql_query($anfrage);
               
//    or die ("Fehler bei der Datenbakabfrage!");
               
$anz=mysql_num_rows($ergebnis);
               for(
$a=0;$a<$anz;$a++)
                   {    
$nn mysql_result($ergebnis$a);
                      print(
"<option>$nn</option>");
                   }    
               
mysql_close($db);
    
        print(
"</select></p>");
        print(
"



"
);
        print(
"<input type='submit' value=' Absenden '>");
        print(
"<input type='reset' value=' Abbrechen'>");
        print(
"</form>");
    }
    
    
    
else
    
    {        print(
"Test erfolgreich
"
);
            
            
$login=$_POST['login'];
                
            
$db=mysql_connect("localhost""root""");      
            
//    or die ("Keine Verbindung zum Datenbankserver!");
               
mysql_select_db("museum");                        
               
//    or die ("Die Datenbank kann nicht angesprochen werden!");

               
$s="SELECT `Login` FROM `benutzer` WHERE `Login` LIKE '";
               
$s.=$login;
            
$s.="'"
                        
               
$ergebnis=mysql_query($s);
               
//    or die ("Fehler bei der Datenbakabfrage!");
               
$anz=mysql_num_rows($ergebnis);
               
               print(
"Sicherheitscheck - Anzahl der gefunden Datensätze: ");
               print(
$anz); 
               
               
              if (
$anz=1)
                      {    
                       
$anfrage="DELETE FROM `benutzer` WHERE `Login` = '";
                    
$anfrage.=$login;
                    
$anfrage.="'"
                    
$ergebnis=mysql_query($anfrage);
                           
                }
            
               else
                   {    print(
"Löschen nicht möglich");
                   }    
                   
               
mysql_close($db);
        }                   
?>
</body>
</html>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.10.2005, 18:21  
Gast
 
Beiträge: n/a
Standard

ich würde statt print() den gebräuchlicheren befehl echo verwenden
 
Alt 22.10.2005, 18:23  
Gast
 
Beiträge: n/a
Standard

OK, daaanke.

Noch jemand nen Rat?!?!
 
Alt 22.10.2005, 18:38  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
            $ergebnis=mysql_query("SELECT `Login` FROM `benutzer`");
            while(
$row mysql_fetch_array($ergebnis) {
              echo
"<option>$row['spaltenname']</option>";
            } 
so würde ich es lösen. Ist viel einfacher und mysql_fetch_array(); ist um einiges schneller als mysql_result();
 
Alt 22.10.2005, 18:49  
Gast
 
Beiträge: n/a
Standard

Die ganzen prints solltest du zusammenfassen:
PHP-Code:
<?
      
echo " <h1>Welche User soll gelöscht werden?</h1>\n
                 <form action='deleteuser.php' method='post'>

\n
                   <input type='hidden' name='id' value='true'>\n
                    Benutzername:
\n
                  <select name='login' size='1'>\n
                    <option selected>--------------</option>\n"
;
?>
Wenn du dir mal den HTML-Code im Browser ansiehst, wirst du feststellen, dass du eine kilometerlange Zeile produzierst, deshalb solltest du \n öfters einsetzen. Außerdem ist
PHP-Code:
if(!isset($id)) 
falsch, schreibe
PHP-Code:
if(!isset($_POST['id'])) 
Gruß
phpfan
 
Alt 22.10.2005, 19:44  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

PHP-Code:
<?php
  $db
=mysql_connect("localhost""root""")or die ('Verbinden: '.mysql_error());
?>
Bei den Anderen genauso.
PHP-Code:
<?php
$login
=$_POST['login'];
$s="SELECT `Login` FROM `benutzer` WHERE `Login` LIKE '";
$s.=$login
?>
Niemals Daten ungeprüft in die DB packen.
mysql_real_escape_string()
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 22.10.2005, 19:46  
Gast
 
Beiträge: n/a
Standard

geht dein script? is es sicher un zuverläßÃ*g? wenn ja is es okay.
 
Alt 22.10.2005, 21:36  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hallo.

Falsch ist noch das $anz=1. Hier setzt du $anz auf 1, anstatt den Wert von $anz mit 1 zu vergleichen.

Nicht falsch, aber unschön ist es, auf die externen Variablen ($_POST['...']) zuzugreifen, ohne deren Existenz vorher zu prüfen. Besser:
PHP-Code:
<?php
$login 
'';
if (isset(
$_POST['logn']))
    
$login $_POST['login'];

// oder:

$login = isset($_POST['login']) ? $_POST['login'] : '';
?>
Weiterhin unschön ist, dass du deinen Code nicht konsequent Einrückst und das HTML, das du ausgibst.

Und, eleganter geht es natürlich auch, aber dazu vielleicht an einem anderen Abend mehr...

Basti
Basti ist offline  
Alt 22.10.2005, 22:02  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von vocken91
ich würde statt print() den gebräuchlicheren befehl echo verwenden
kannst du deine aussage auch begründen, außer, dass echo öfter benutzt wird?
 
Alt 22.10.2005, 22:19  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hier was zum Thema:

http://www.faqts.com/knowledge_base/...l/aid/1/fid/40
http://www.php-faq.de/q/q-string-print.html

Ich wüsste weder, warum echo gebräuchlicher sein soll, noch, warum man es hier verwenden sollte. Es ist Hacke wie Jose - allerdings würde ich mir die Klammern sparen.

Basti
Basti ist offline  
 


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
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
einfacher Code zum Einbinden von "Inhaltsbereichen" MaxDittmann PHP-Fortgeschrittene 6 01.10.2007 15:54
Datei einfügen aus Ausgabepuffer, damit PHP Code funktionier NetLook PHP Tipps 2006 17 25.10.2006 15:09
FiFo macht Probs beim Css Code Matthiasnet HTML, Usability und Barrierefreiheit 10 18.08.2006 13:14
bb code in htm code wandeln janni PHP Tipps 2007 2 04.11.2005 22:36
[Erledigt] JS Code in PHP Code?? HTML, Usability und Barrierefreiheit 12 08.08.2005 15:45
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
Fehler im Code, kann ihn nicht finden PHP Tipps 2005 9 16.05.2005 16:17
Bestätigungmail code? PHP Tipps 2005 7 16.05.2005 13:18
[Erledigt] BB Code entfernen PHP Tipps 2005 2 25.04.2005 15:20
[Erledigt] bb code innerhalb von bb code geht nicht PHP Tipps 2007 2 12.01.2005 17:29
Problem mit COde PHP Tipps 2004 5 28.08.2004 16:04


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