07. august 2003 - 12:29Der er
49 kommentarer og 1 løsning
Fejlmeddelse = Kunne ikke vælge felter i database-tabellen!!
Hejsa, jeg er ved at lave et news system i php og MySQL. Jeg har oprettet to tabeller under min db = kappels_net som henh. users og news. Under users har jeg prøvet at oprette en user med admin som både bruger og pass. Derefter prøver jeg så at logge ind, men får fejlmeddelesen: Kunne ikke vælge felter i database-tabellen
her er koden
$db = mysql_connect($server, $username, $password) or die ("Desværre ingen forbindelse til databasen");
mysql_select_db($database, $db) or die ("Kunne ikke vælge databasetabel");
$tjek = mysql_query("SELECT navn, password, status FROM users WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");
$tjek = mysql_query("SELECT navn, password, status FROM users WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");
med dette:
$tjek = mysql_query("SELECT navn, password, status FROM users WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());
og paste ouputtet herinde, så er det lidt lettere at hjælpe :-)
Hmm... du sender mig en mail om mit nyhedssystem, og så opretter du også her...
erikjacobsen >> Systemet er indrettet med admin og coadmin, derfor er status nødvendig... Det er dette script Mikkel arbejder på, og det er mig der har lavet det...: http://script.dk/sourcecode.jsp?resourceId=1039
CREATE TABLE users ( id tinyint(4) NOT NULL auto_increment, navn varchar(12) NOT NULL default '', password tinytext NOT NULL, status int(1) NOT NULL default 0, PRIMARY KEY (id) ) TYPE=MyISAM;
# # Data dump for tabellen `users` #
INSERT INTO users VALUES (1, 'admin', md5('admin'), '1');
erikjacobsen >> Det er sukos' loginscript med nogle få ændringer...
kappel >> adm = 1 coadm = 0
status default=0 betyder at brugere oprettet som standard er 0 (coadm). i scriptet er det kun adm der kan oprette brugere
md5('admin') smider et md5-hash af passwordet (i dette tilfælde admin) ind i databasen - hele den linie opretter en bruger (admin) med password (admin) og status 1 (administrator)
CREATE TABLE users ( id tinyint(4) NOT NULL auto_increment, navn varchar(12) NOT NULL default '', password tinytext NOT NULL, status int(1) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM;
# # Data dump for tabellen `users` #
INSERT INTO users VALUES (1, 'admin', 'md5(admin)', 1);
og her er koden:
$tjek = mysql_query("SELECT navn, password, status FROM users WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());
Hvis du ikke allerede har gjort det, skal du igennem samme procedure med denne tekst:
CREATE TABLE users ( id tinyint(4) NOT NULL auto_increment, navn varchar(12) NOT NULL default '', password tinytext NOT NULL, status int(1) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM;
kappel >> grundet til adgangskoden ser "underlig" ud, er at den er crypteret efter MD5 metoden - dette gør at folk der skulle få adgang til din database, ikke kan læse passwordet :-)
Forskellen på de 2 er: Hvis du bruger include og den fejl du vil inkluderer ikke eksisterer melder serveren kun en "Warning". Men bruger du require vil der kommer en "Fatal error".
Ved warnings vil php som standard outputte en advarsel men vil ellers fortsætte med at køre dit script, mens en Fatal error vil outputte en fejl og scriptet vil stoppe med at køre fra den linie hvor fejlen opstod.
ehm, det skulle den vel gerne gøre helt automatisk? det er lidt svært at svare på når jeg ikke kan se hvordan din html / script er sat op. Er der mulighed for jeg kan se det?
Du kan enten paste din kode på www.pastebin.com ? Så kan jeg se den der - du kan bare paste outputtet fra dit script (ink. alt html) så kigger jeg lige på det engang - skriv lige hvilken tekst der er output evt. :-)
Yes, det er til hvis du skal smide mig et stykke kode, så kan du putte det derind, husk dog at du ikke skal smide kode med passwords i ;- ) Da det er offentligt tilgængeligt.
Når du har gjort det, får du en url du kan give mig, så kan jeg se din kode.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.