Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:18 Der er 14 kommentarer og
1 løsning

Hvordan undgår jeg det?

Jeg har en side hvor man kan udfylde nogle felter. Når man trykker ok går den til siden tilfoej.php som indsætter disse oplysninger i databsen. Problemet er bare at hvis man går direkte ind på tilfoej.php, så indsætter den jo tomme oplysninger i databsen. Hvordan undgår jeg at man kan tilføje tomme felter i databsen. Man skal kunne gå ind på siden indsaet.php og den bruger så action="tilfoej.php", men man skal ikke bare kunne gå ind på tilfoej.php. Håber alle er med ;-)
Avatar billede sukos Juniormester
09. april 2002 - 14:25 #1
Du kan vel bruge isset?
if (!isset($navn1, $navn2, $navn3)) {
header("Location:indsaet.php");
}
Avatar billede delwin Nybegynder
09. april 2002 - 14:26 #2
retter den lige lidt til

if (!isset($navn1, $navn2, $navn3)) {
    header("Location:".$HTTP_REFERER);
}
Avatar billede milo Nybegynder
09. april 2002 - 14:26 #3
sæt requirements på tabellerne der kræver at de ikke er tomme...og på formular siden, lav så man *skal* udfylde visse felter for at man kan kome til sidne der indsætter det...

Du kan også lave en session...sessionen bliver så lavet på firmular siden, og på tilfoej checker den om man har den session, hvis ja, får man lov at komme længere ned i dokumentet (ned til indsæt til db koden)

Du forstå ? :)
Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:26 #4
Hvad gør den?
Avatar billede milo Nybegynder
09. april 2002 - 14:27 #5
ja isset er så den måde jeg også mente, jeg beskrev den bare teoretisk :D
Avatar billede milo Nybegynder
09. april 2002 - 14:28 #6
checker felterne, fx <input type="text" name="navn1">
Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:30 #7
På siden indsaet.php er alle felterne. Fx. navn, email, alder.
indsaet.php bruger så action="tilfoej.php". tilfoej.php indsætter de oplysninger som man skrev i felterne på siden indsaet.php. Problemet er at hvis folk går direkte ind på siden tilfoej.php uden overhovedet at have været inde på indsaet.php så vil tilfoej.php bare indsætte tomme felter. Hvordan undgås det?
Avatar billede milo Nybegynder
09. april 2002 - 14:32 #8
har jeg jo sagt...sæt properties på felterne i din tabel, der siger at feltet ikke må være tomt, der skal sættes data ind.

Eller, put koden fra tilfoej.php ind i samme dokument? Det er næsten det nemmeste!
Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:33 #9
ok ;-)
Avatar billede milo Nybegynder
09. april 2002 - 14:34 #10
not null...skal tabel felt egenskaber ha... :) - så vidt jeg kan huske...længe siden jeg har rodet med php...
Avatar billede milo Nybegynder
09. april 2002 - 14:37 #11
fx kunne en linje se sådan ud
id int(10) unsigned NOT NULL auto_increment,
Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:49 #12
Den indsætter stadig bare tomme oplysninger hvis jeg går ind på tilfoej.php
Avatar billede qwertyuio Nybegynder
09. april 2002 - 14:54 #13
Kan ikke få det i har skrevet til at virke :-(
Avatar billede filip_b_l Nybegynder
09. april 2002 - 15:07 #14
du kan jo bare kalde din knap i din form et navn... <input type=submit name=go ...>
og så i tilfoj.php skrive
if ($go) {
indsæt
}
else {
echo "Du har ikke tilføjet noget...";
}
Avatar billede dennism Nybegynder
09. april 2002 - 15:13 #15
Lav denne i din FORM:
<input type="hidden" name="action" value="tilfoj">

Lav så denne på tilfoej.php:

if ($action == "tilfoj") {

// Her skal du indsætte den kode som du bruger til at tilføje oplysningerne til databasen med!

} else {
echo "Du har ikke indtastet nogle oplysninger";
}

Er det svar nok, og forstår du?
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