I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan skrive (!$post_empty) i stedet for ($post_empty == 0).
Kan vi få lidt mere kode? Hvis vi skal hjælpe, så er det nemmest når vi kender navne på alle variabler mm.
Men som udgangspunkt kan du tjekke, om der er noget i en variabel, ved blot at skrive :
if ($var1 && $var2 && $var2) { echo "Alle variabler indeholder et eller andet"; } else { echo "Mindst én af variablerne var tomme"; }
Synes godt om
Slettet bruger
27. september 2004 - 08:01#2
Det var for ikke at gentage at jeg lavede en link til det andeet spørgsmål. Der er koden der checker om felterne er udfyldt. Jeg prøver lige at lege med dit eksempel.
Synes godt om
Slettet bruger
27. september 2004 - 08:07#3
(!$post_empty) giver det samme. Den gemmer i basen når jeg trykker opdater. Det vil jeg meget gerne undgå.
Synes godt om
Slettet bruger
27. september 2004 - 08:34#4
Nu har jeg forsøgt lidt forskelligt igen, og enten skriver den i databasen når den skal, og så gør den det også ved opdatering, eller også det modsatte. Jeg kan ikke finde en kombination der ikke gemmer ved opdatering.
1) Din form bruger POST 2) Den går til en side, der gemmer data i databasen 3) Denne side redirecter til en side, der viser et svar til brugeren, evt ved at hente noget i databasen
På grund af denne redirect vil en opdater kun opdater "vis et svar" siden, og ikke den side, der gemmer i databasen.
(hvis jeg ellers har forstået dig korrekt)
Synes godt om
Slettet bruger
27. september 2004 - 09:28#6
Ja du har forstået det, bortset fra at jeg ikke har flere sider. Det foregår på een side. Sidst jeg lavede noget lignende, blev jeg nødt til, at lave det på to sider for netop at undgå, at den gemmer i utide.
Men jeg ville gerne have det til at virke på een side. Jeg kan bare ikke finde en kombination der udelukker opdatering og så gemmer når alle felter er udfyldt og der trykkes på submit knappen.
if ($post_empty == 0) { $insertSQL = sprintf("INSERT INTO ...... en masse linier kode header("Location: sammefil.php?vis=$id"); exit; }
hvor $id er nummeret på den indsatte, og vis gør, at der kommer et passende svar til kunden (du skal have en ny if, der checker på om vi kommer ind på denne måde).
Jeg har ikke kode, jeg kan vise dig nu, men jeg bruger det selv for tiden ;)
Synes godt om
Slettet bruger
27. september 2004 - 09:59#13
Mener du at:
header("Location: sammefil.php?vis=$id"); exit;
Skal ind i bunden lige før denne:
}
Giver det ikke en header already sent .... fejl ? Jeg synes jeg har prøvet noget lignende, men jeg prøver lige efter kaffepausen :-)
Synes godt om
Slettet bruger
27. september 2004 - 10:40#14
Hmmm, det virker, men ikke som det skal. Den glemmer simpelthen alle variabler ved at kalde den. Jeg har de fleste af felterne i sessions og dem glemmer den ved at bruge den header i bunden.
Synes godt om
Slettet bruger
27. september 2004 - 10:43#15
Rolig nu. Det er vist mig der er et fjols. Tester lige lidt mere.
Synes godt om
Slettet bruger
27. september 2004 - 10:44#16
Det ser ud til at virke Erik. TAK. Vil du svare, eller ? ;-)
Synes godt om
Slettet bruger
27. september 2004 - 10:56#17
Men jeg får en fejl i denne:
header("Location: sammefil.php?vis=$id");
når alle felter ikke er udfylt og den ryger i det check. Så skriver den:
Warning: Cannot modify header information - headers already sent by .....
Hvis alle felter ikke er udfyldt skal det vel ikke sættes ind i databasen, og så kommer du ikke dertil...?
Men ellers skal dit script selvfølgelig overholde en passende struktur, der sikrer, at der ikke kommer noget "ud" før det skal. Beregning først, og så al det der HTML bagefter.
Synes godt om
Slettet bruger
27. september 2004 - 11:04#19
Det er jo en formular og hvis man glemmer et felt ryger den i:
if (!isset($_POST['form1'])) { $post_empty = 0; foreach ($_POST as $key => $value) { if ($_POST[$key] == "" || $_POST[$key] == NULL) { $post_emptykey[] = $key; $post_empty++; } } for ($i = 0; $i < $post_empty; $i++) { echo "<center><font color='#FF0000'>"; echo 'Du skrev ikke noget i '.$post_emptykey[$i].'!<br><br>'; echo "</font></center>"; } }
og så stopper den med den der warning, hvor den før kom med formularen igen og man kunne udfylde resten. Jeg kan ikke se hvorfor den lander helt nede i bunden hvor jeg satte den header ind.
Synes godt om
Slettet bruger
27. september 2004 - 11:05#20
Jo så er den her: if ($post_empty == 0) { $insertSQL = sprintf("INSERT INTO ...... en masse linier kode
jo ikke 0 og den springer gem rutinen over, men lander så i header linien. Den skal nok flyttes uden for den rutine ?
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.