php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.08.2011, 01:57  
Neuer Benutzer
 
Registriert seit: 19.08.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
mynik befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Unknown column 'Markus' in 'field list'

Ich erhalte die im Titel genannte Fehlermeldung wenn ich versuche dieses Formular :
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
	<link rel="stylesheet" type="text/css" href="css/styles.css"/>
	<title>Registration</title>
</head>
<body>
	<div id="loginform">
	<form action="register.php" method="post">
		<p>Username:<br><input name="new_user" type="text" size="20" maxlength="20" value="<?php echo $_POST['new_user']; ?>"></p>
		<p>Password:<br><input name="new_password" type="password" size="20" maxlength="20" value="<?php echo $_POST['new_password']; ?>"></p>
		<p>Firstname:<br><input name="new_firstname" type="text" size="20" maxlength="20" value="<?php echo $_POST['new_firstname']; ?>"></p>
		<p>Sirname:<br><input name="new_sirname" type="text" size="20" maxlength="20" value="<?php echo $_POST['new_sirname']; ?>"></p>
		<p>E-Mail:<br><input name="new_email" type="text" size="20" maxlength="20" value="<?php echo $_POST['new_email']; ?>"></p>
		<input name="submit" type="submit" value="Registrieren" />
	</form>
	</div>
</body>
</html> 
Mit folgenden Werten zu füllen:
Username: User1
Password: Randompw1
Firstname: Markus
Sirname: Mustermann
Email: mustermail@mail.com

Die Daten werden dann von diesem PHP-Skript verarbeitet:
PHP-Code:
<?php
    
// Überprüft ob als Übergabe-Methode POST verwendet wurde.
    
if($_SERVER['REQUEST_METHOD']=='POST')
    {
        
// Überprüfen, ob das Formular abgeschickt wurde und ob alle Angaben gemacht wurden.
        
if(isset($_POST['new_user'], $_POST['new_password'], $_POST['new_firstname'], $_POST['new_sirname'], $_POST['new_email'])
                 AND
                 
strcmp(trim($_POST['new_user']),'') != 0
                 
AND
                 
strcmp(trim($_POST['new_password']),'') != 0
                 
AND
                 
strcmp(trim($_POST['new_firstname']),'') != 0
                 
AND
                 
strcmp(trim($_POST['new_sirname']),'') != 0
                 
AND
                 
strcmp(trim($_POST['new_email']),'') != 0)
                {
                    
// Fügt die Konfigurationsvariablen der Datenbank hinzu.
                    
include_once 'config.inc.php';
                    
                    
// Erstellen der Verbindung zur MySQL-Datenbank 
                    
if( !$connection mysql_connect$_config['host'], $_config['user'], $_config['password'] ) ) 
                    {
                          die( 
'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
                    }

                    if( !
mysql_select_db$_config['database'], $connection ) ) 
                    {
                           die ( 
'Die Datenbank ' $_config['database'] . ' kann nicht verwendet werden. <br />
                                   MySQL-Error: <br />' 
mysql_error() );
                    }
                    
                    
// Liest die derzeit höchste ID aus jamel_user aus.
                    
$results        mysql_query("SELECT MAX(ID) as currID from jamel_user");
                    
$result            mysql_fetch_assoc($results);
                    
$new_id            $result['currID']+1;  
                    
                    
                    
// Traegt das vom User eingetragene Formular in die Datenbank ein.
                    
$sql =    "INSERT INTO jamel_user (ID, Vorname, Nachname, User, Password, Email)
                             VALUES ($new_id, $new_firstname, $new_sirname, $new_user, $md5pass, $new_email)"
;
                    
                    
$res mysql_query($sql) or die( 'Error[SELECT|User]: <br />
                                                           <pre>' 
$sql '</pre>
                                                           <br />
                                                           MySQL-Error: ' 
mysql_error() );             
                }
    } 
?>
Der aufbau der Tabelle jamel_user lautet:
ID int(11) Primärschlüssel
Vorname char(50)
Nachname char(50)
User char(50)
Password char(50)
Email char(50)

Ich hoffe jemand sieht hier den Fehler heraus, ich komm nämlich schon seit längerem einfach nicht weiter.
Danke.
mynik ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.08.2011, 02:29  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstens: nutze AUTO_INCREMENT, manuelle ID-Berechnung schreit nach RaceConditions.
Zweitens: Werte, die keine Zahlen sind, gehören gequoted.
Drittens: nutze Escaping-Mechanismen, dein derzeitiger Code ist offen wie ein Scheunentor, Stichwort SQL-Injection.
Viertens: mir wird das zu viel, da gibt's noch massenhaft mehr zu bemängeln (Fehlerbehandlung, GLOBALS, etc.) - so solltest du das keinesfalls im Netz verfügabr machen.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 19.08.2011, 04:29  
Neuer Benutzer
 
Registriert seit: 19.08.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
mynik befindet sich auf einem aufstrebenden Ast
Standard

Danke für die zahlreichen Tipps.
Hab das SQL Query nun dahingehend umgeändert das AUTO_INCREMENT verwendet wird, die String-Variablen sind gequotet und mysql_real_escape_string() wird verwendet.
Da das ganze ein Uni-Projekt ist, wird es auch nicht großartig online gehen, trotzdem werde ich versuchen bis zum veröffentlichen der Seite alle möglichen Sicherheitsmaßnahmen zu ziehen.
Danke nochmal.
mynik ist offline   Mit Zitat antworten
Alt 19.08.2011, 13:22  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Boah - schmeißt euren PHP Dozenten raus. Das ist, grade im Hinblick darauf, dass da eigentlich ordentliches Programmieren vermittelt werden soll der absolute Megamurks.

Die isset-Abfrage ist überflüssig. Wenn <input type="text">-Eingabefelder abgeschickt werden, dann ist isset() IMMER true, weil die im $_POST-Array stehen, egal, was eingegeben wurde.

Die Abfragen, welche Felder leer sind gehören vereinzelt. Du willst selbst nicht wirklich ein Web-Formular ausfüllen, und die Anwendung sagt dir dann "Sorry, irgendeins der 261 Eingabefelder ist falsch ausgefüllt." - Die Anwendung hat genau zu beschreiben, WAS WO falsch ist.

PHP-Code:
<form action="register.php" method="post"
Lernt ihr keine Affenformulare? Wenn du das so trennst dann kriegst du bereits eingegebene Daten nach Fehlerzuständen nicht mehr ins Formular zurückgeschrieben.

Die PHP-Fehler sind ja schon genannt worden.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 19.08.2011, 16:07  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Die isset-Abfrage ist überflüssig. Wenn <input type="text">-Eingabefelder abgeschickt werden, dann ist isset() IMMER true, weil die im $_POST-Array stehen, egal, was eingegeben wurde.
Wer sagt dir, dass nur gute Menschen und Bots das Formular absenden?
Es ist absolut richtig, zu prüfen, ob der Wert gesetzt ist, da du sonst Notices ohne Ende produzierst.
Du sagst es ja auch schon selbst: wenn sie abgeschickt werden, und das liegt nicht in deiner Hand, das kann der Client nach Lust und Laune handhaben, welche der von dir gewünschten Felder er dir sendet.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster 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
Sphider Umlaute und MySQL Fehler xnic Datenbanken 2 03.08.2010 20:10
MySQL - Invalid query: Unknown column 'testpasswort' in 'field list' Mo3 PHP Tipps 2010 2 10.05.2010 20:18
[Erledigt] Komischer Fehler: Unknown column 'icus' in 'field list' (mit php) 6setzen PHP Tipps 2009 3 10.12.2009 17:14
[Erledigt] PHP Image Upload &amp; Resize Problem da.eXecutoR PHP-Fortgeschrittene 10 14.08.2009 11:50
fehler: Unknown column '' in 'field list' Capfly Datenbanken 11 14.03.2009 14:29
Erneut Vorstellung meiner Seite. litterauspirna Off-Topic Diskussionen 11 16.02.2009 19:17
Unknown column 'rights' in 'field list' GSJLink Datenbanken 24 30.07.2007 12:26
gelöst: Abfrage Fehler "Column '...' in field list is a Riot Datenbanken 13 01.04.2006 11:19
#1191 - Can't find FULLTEXT index matching the column list ? Cytrix Datenbanken 4 06.02.2006 22:58
Suche Programmierer, Designer, Schreiber... blinkster.de Beitragsarchiv 76 14.08.2005 18:31
Unknown column '...' in 'field list' c-f-g Datenbanken 15 17.06.2005 08:01
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
Unknown column 'D0D0D0' in 'field list' Niedi PHP Tipps 2005 5 03.04.2005 20:17
Unknown column 'preis' in 'field list' Xfer Datenbanken 4 01.11.2004 10:34
Unknown column in 'field list' PHP Tipps 2004 1 18.09.2004 21:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
unknown column \'name\' in \'field list\', unknown column in \'field list\', php unknown column \' \' in \'field list\', error: unknown column \'test\' in \'field list\', unknown column in field list, \unknown column \'text\' in \'field list\'\, field list, unknown column \'field_news_bild_width, unknown column \'tr.name\' in \'field list\', error=unknown column \'text\' in \'field list\', unknown column \'posts\' in \'field list\' sql=select max(posts) from, unknown column \'markus\' in \'field list\', unknown column \'fieldtype\' in \'field list\', unknown column \'texte\' in \'field list\', unknown column \'p.designable\' in \'field list\', unknown column \'test\' in \'field list\', unknown column in \'field list\' mysql, unknown column, \unknown column\ \in \'field list\'\ obwohl vorhanden, unknown column \'field_required\' in \'field list\'

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