Avatar billede riversen Nybegynder
26. juni 2003 - 13:03 Der er 9 kommentarer og
1 løsning

database + lidt mere

Har set nogen laver en include med en fil hvor de har noget tilgang til database. Men hvad plejer man at ligge i sådan en fil? For det eneste jeg kan komme i tanke om er oprettelse af selve forbindelsen.

Og hvis nu man forsøger at fx at oprette en bruger som allerede findes i database, får man jo en warning...hvordan plejer man at håndtere dette? Ved at tjekke i databasen først?

Og tilsidst...hvis jeg har en form jeg gerne vil validere i php når der er trykket på submit knappen. Hvordan gør jeg så sådan at datene forbliver i formen hvis der er fejl.
Avatar billede avminarm Juniormester
26. juni 2003 - 13:20 #1
1) ikke helt forstået, men ja man plejer bare at lægge DB forbindelsen

2) ja man kan tjekke det først eller man kan give hver bruger et unikt ID

3) du giver hver felt en value: <input type="text" name="var" value="<?php echo $_POST['var']; ?>">
Avatar billede riversen Nybegynder
26. juni 2003 - 13:25 #2
2: unikt id? det skal vel under alle omstændigheder tjekkes i db'en
Avatar billede avminarm Juniormester
26. juni 2003 - 13:27 #3
hvis du benytter auto_increment på f.eks ID feltet vil der altid blive oprettet det forrige id.nr + 1 - det er også en god ide at sætte id til at være "primary"
Avatar billede avminarm Juniormester
26. juni 2003 - 13:28 #4
og så er man fri for at tjekke i DB
Avatar billede riversen Nybegynder
26. juni 2003 - 13:32 #5
ja, men brugernavn skal stadig være uniks så det vinder man ikke meget ved. Det skal stadig tjekkes om det er brugt
Avatar billede riversen Nybegynder
26. juni 2003 - 13:35 #6
unikt even
Avatar billede xyborx Nybegynder
26. juni 2003 - 13:41 #7
Mit forslag vil være at opbygge tabellen således:
create table brugere (
  id integer unsigned primary key not null auto_increment,
  navn varchar(20) unique not null,
  pass ....
  ...
)
På den måde har hver bruger et unikt id, som man nemt kan referere til.
Desuden kan der ikke oprettes flere ens brugernavne (også selvom dit check i PHP evt. failer)
Avatar billede riversen Nybegynder
26. juni 2003 - 13:46 #8
vi bevæger os væk fra det jeg egentlig spurgte om...men jeg tjekker bare i databasen først
Avatar billede xyborx Nybegynder
26. juni 2003 - 14:05 #9
Mht hvor man kan lægge den fil der connecter til databasen:
Jeg har på mit site skrevet et par linier i .htaccess der får PHP til at include et par filer før og efter afviklingen af det egentlige script:
php_value auto_prepend_file /sti/til/webroot/.htsecrets/.htprepend.php
php_value auto_append_file /sti/til/webroot/.htsecrets/.htappend.php
Som det kan ses har jeg oprettet mappen .htsecrets hvori jeg har de to PHP filer jeg vil have included. I .htprepend.php oprettes der forbindelse, og i .htappend.php lukkes forbindelsen igen. På den måde behøver jeg overhovedet ikke at koncentrere mig om databaseforbindelsen mere, da alt ordnes "automagisk" :)
Grunden til at alt starter med .ht er at apache som standard er sat til at spærre adgang til disse filer. På den måde mindsker jeg risikoen for at mit password kan hentes af offentligheden.
Avatar billede xyborx Nybegynder
26. juni 2003 - 14:17 #10
Iøvrigt.. For at ovenstående skal fungere (php_value og php_flag i .htaccess) så skal AllowOverride i Apaches konfigurationsfil være sat til enten Options (så vidt jeg husker) eller All.
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