Avatar billede kappel Nybegynder
07. august 2003 - 12:29 Der 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");

if(mysql_num_rows($tjek) != 0) {

Håber nogle kan hjælpe med problemet,

Med venlig hilsen Mikkel
Avatar billede sumsar-- Nybegynder
07. august 2003 - 12:34 #1
prøv at skifte dette ud:

$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 :-)
Avatar billede kappel Nybegynder
07. august 2003 - 12:51 #2
Smart nu er der tekst med på outouttet:

Unknown column 'status' in 'field list'
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:02 #3
Så har du vel også løst dit problem selv? :)
Avatar billede kappel Nybegynder
07. august 2003 - 13:12 #4
hvis jeg forstår det rigtigt så skal jeg i tabellen users tilføje en ny række = status?

Det prøver jeg lige
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:14 #5
Nej, det skal du ikke. Du kan ligesågodt fjerne den fra SQL-sætningen.
Det kommer an på hvad du vil.
Avatar billede exp Juniormester
07. august 2003 - 13:15 #6
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
Avatar billede kappel Nybegynder
07. august 2003 - 13:17 #7
Jeg prøver logge ind med navn=admin og password=admin, som der er oprettet i databasen.

Har prøvet at slette STATUS i SQL sætningen, men så kommer følgende fejl:

Fejl i brugernavn eller password!
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:23 #8
Du skal måske

"SELECT navn, password FROM users WHERE navn='$_POST[navn]' AND password='$_$POST[dopass]'"
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:23 #9
Ah, nej, ikke helt:

"SELECT navn, password FROM users WHERE navn='$_POST[navn]' AND password='$_POST[dopass]'"
Avatar billede kappel Nybegynder
07. august 2003 - 13:24 #10
Undskyld - > exp  (-:

Jeg forstår bare ikke hvorfor der ikke er et felt i tabellen users der hedder Status?
Avatar billede exp Juniormester
07. august 2003 - 13:26 #11
Der var en fejl i news.sql

Fyr dette ind i phpmyadmin:

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');
Avatar billede kappel Nybegynder
07. august 2003 - 13:27 #12
- > erikjacobsen

Jeg har prøvet at skrive: (og dermed slette status, men EXP siger så er det for at tjekke et eller andet som jeg ikke forstår)

"SELECT navn, password FROM users WHERE navn='$_POST[navn]' AND password='$_$POST[dopass]'"

men så kommer fejlen: Fejl i brugernavn eller password!
Avatar billede exp Juniormester
07. august 2003 - 13:30 #13
Det er fordi der er mulighed for både en administrator og coadministratorer, status fortæller hvilken af delene den pågældende bruger er...!
Avatar billede kappel Nybegynder
07. august 2003 - 13:38 #14
dvs:  administrator: status = 1
      coadministratorer: status = 0
eller omvendt?

Hvad betyder status: default = 0
og
md5('admin')

Jeg har sendt en mail til dig med billeder af opsætningen i phpmyadmin.

Mikkel
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:38 #15
Må vi ikke lige se din kode og hvad der præcis står i din database?
Avatar billede exp Juniormester
07. august 2003 - 13:43 #16
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)
Avatar billede kappel Nybegynder
07. august 2003 - 13:46 #17
- > erikjacobsen

ja her tabellens data:

# phpMyAdmin MySQL-Dump
# version 2.3.2
# http://www.phpmyadmin.net/ (download page)
#
# Vært: localhost
# Genereringstidspunkt: 07/08 2003 kl. 13:45:38
# Server version: 3.23.54
# PHP version: 4.2.2
# Database: : `kappels_net`
# --------------------------------------------------------

#
# Struktur dump for tabellen `users`
#

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());
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:51 #18
Det vil hjælpe med

INSERT INTO users VALUES (1, 'admin', md5(admin), 1);
Avatar billede kappel Nybegynder
07. august 2003 - 13:55 #19
hvordan ændrer jeg det?
Avatar billede erikjacobsen Ekspert
07. august 2003 - 13:58 #20
Du fjerner de to stroffer: ' og '
Avatar billede al1407 Nybegynder
07. august 2003 - 14:00 #21
erikjacobsen: Så vidt jeg husker kræver det da vist ' rundt om strengen i MD5() ?

INSERT INTO users VALUES (1, 'admin', md5('admin'), 1);

ville jeg mene ..
Avatar billede erikjacobsen Ekspert
07. august 2003 - 14:05 #22
Ok :) - så skal de ikke fjernes, men flyttes de to små '-ere *g*
Avatar billede kappel Nybegynder
07. august 2003 - 16:40 #23
- > erikjacobsen

Hvordan gør jeg det?
Det phpmyadmin system jeg bruger kan man ikke uploade text filer hvor det korrekte står i!!
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:00 #24
kappel - du vælger din database, herefter vil du kunne se et tekstfeldt - i mit står der: "Kør SQL forspørgsel(er) på database bob"

Sæt denne tekst ind i:
INSERT INTO users VALUES (1, 'admin', md5('admin'), 1);
og tryk på "udfør"
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:00 #25
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;
Avatar billede kappel Nybegynder
07. august 2003 - 17:15 #26
her er resultatet af : INSERT INTO users VALUES (1, 'admin', md5('admin'), 1);

Underlig adgangskode den danner!! MEN DET VIRKER...

SQL result
Vært: localhost
Database: : kappels_net
Genereringstidspunkt: 07/08 2003 kl. 17:13:16
Generated by: phpMyAdmin 2.3.2
SQL-forespørgsel: SELECT * FROM `users` LIMIT 0, 30;

id  navn        password                          status 
1  admin    21232f297a57a5a743894a0e4a801fc3        1
Avatar billede kappel Nybegynder
07. august 2003 - 17:20 #27
systemet er opbygget omkring en række php-filer, der alle kan includeres

Hvordan gør man det i php?
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:34 #28
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 :-)

include 'fil.inc';
eller
require 'fil.inc';

Du kan læse om de 2 forskellige metoder her:

http://dk.php.net/manual/en/function.include.php
og
http://dk.php.net/manual/en/function.require.php
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:36 #29
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.

Pyha :D håber du forstår.

Mvh
Rasmus
Avatar billede kappel Nybegynder
07. august 2003 - 17:39 #30
Mange tak - jeg tror jeg forstår ellers ved jeg ved jeg fordybe mig - hihi

Mikkel
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:39 #31
Tillader mig at ligge et lille svar, så kan du selv vurderer situationen ;-)
Mvh
Rasmus
Avatar billede kappel Nybegynder
07. august 2003 - 17:43 #32
mit index er i asp, kan man include en side heri?
Avatar billede sumsar-- Nybegynder
07. august 2003 - 17:45 #33
om man kan includere en asp fil i en php fil? du kan godt includerer den, men du kan ikke eksekvere den kode der er i din asp fil.

Hvis jeg forstår dig korrekt
Avatar billede kappel Nybegynder
07. august 2003 - 17:48 #34
Jeg mente omvendt, men er det dét samme?

Jeg bruger Dreamweaver MX, prøver at finde rundt i det - har ikke kunne finde include commmandoren...
Avatar billede kappel Nybegynder
07. august 2003 - 18:07 #35
- > Rasmus
Ved du tilfældigvis hvordan man får det databasen skriver ud på et site til at overholde ens CCS - Style Sheet?

Så er pointerne hjemme...
Avatar billede sumsar-- Nybegynder
07. august 2003 - 18:30 #36
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?
Avatar billede kappel Nybegynder
07. august 2003 - 18:31 #37
ja selvfølgelig, hvordan gør vi det?
Avatar billede sumsar-- Nybegynder
07. august 2003 - 18:36 #38
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. :-)
Avatar billede kappel Nybegynder
07. august 2003 - 18:40 #39
jeg er ikke helt med.
siden det drejer sig om er index.php og style.css
outputtet kan ses på http://fc-ellidshoej.kappels.net/index.php

Mikkel
Avatar billede kappel Nybegynder
07. august 2003 - 18:41 #40
hvad er www.pastebin.com egentlig?
Er det til dette formål, altså med at folk kan vise andre hvad de laver etc.?
Avatar billede sumsar-- Nybegynder
07. august 2003 - 18:44 #41
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.
Avatar billede sumsar-- Nybegynder
07. august 2003 - 18:45 #42
for mig ser det ud somom du outputter noget php til din browser, kan du paste den del af php scriptet der indeholder dette:

<style type="text/css">
<!--
@import url("style.css");
-->
</style>
Avatar billede kappel Nybegynder
07. august 2003 - 19:04 #43
Det eneste php der er i det er:

<?php
  include 'news/news.php';
?>
Avatar billede sumsar-- Nybegynder
07. august 2003 - 19:10 #44
hmmm, du skal have skiftet ovenstående ud:
<style type="text/css">
<!--
@import url("style.css");
-->
</style>

med:

<link rel="stylesheet" href="style.css" type="text/css">

Du skal bare lige finde det rigtige sted i din kode
Avatar billede kappel Nybegynder
07. august 2003 - 19:13 #45
er det i head?
Avatar billede sumsar-- Nybegynder
07. august 2003 - 19:16 #46
yes
Avatar billede sumsar-- Nybegynder
08. august 2003 - 10:51 #47
virkede det?
Avatar billede kappel Nybegynder
08. august 2003 - 11:12 #48
det virker for index.php, men deri har jeg jo lavet en include af news.php og for denne virker det ikke.
news.php ser således ud:

<link rel="stylesheet" href="style.css" type="text/css"></head>
<body>
<?php .......
?>
Avatar billede kappel Nybegynder
08. august 2003 - 14:00 #49
Nu virker det
Avatar billede sumsar-- Nybegynder
08. august 2003 - 14:29 #50
:-) Nice og tak!

Mvh
Rasmus
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester