Kære gæst, velkommen til Tweak.dk. Hvis dette er dit første besøg her, bør du læse Hjælp. Her forklares i detaljer hvordan denne side fungerer. For at benytte alle funktionerne på denne side, bør du overveje at lade dig registrere. Benyt venligst registreringsformularen for at registrere her eller læs yderligere information om registreringsprocessen. Hvis du allerede er registreret, så log på her.

1

søndag, 19. november 2006, 22:41


Jah jeg har så det her problem med PHP.
Jeg har en form som skal sende data til sig selv, når man trykker på submit, selvfølgelig.
Det fungerer sådan set også meget godt, MEN, når jeg så sætter mit "validering" ind (det er jo nok der jeg fejler), stopper det hele skrivningen.
Valideringen (empty() funktionerne) skulle jo sådan set bare sørge for at der ikke bliver submittet tomme felter.

Jeg kommer så lidt i tvivl om hvad jeg gør helt forkert.
Er det mit empty() eller er det mit isset der burde være anderledes?

Anyway så er koden her:

Kildekode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ( isset ( $_POST['submit']) )
 {
   $hnavn =  $_POST['hnavn'];
   $hrace = $_POST['hrace'];
   $hgender = $_POST['hgender'];
   $hpass = $_POST['hpass'];
   $enavn = $_POST['enavn'];
   $eemail = $_POST['eemail'];
   $eby = $_POST['eby'];

   if (empty($hnavn) || empty($hrace) || empty($hpass) || empty($enavn) || empty($eemail) || empty($eby)) {
    die('Fejl: Udfyld venligst alle felter';
   }
}


2

søndag, 19. november 2006, 23:06


Burde du ikke lige afslutte parameterparantesen i die-funktionen?
die('Fejl: Udfyld venligst alle felter';

Det kan forresten også med fordel laves i javascript.. da der så slet ikke submittes.. men man bare får en alert i bøtten

Dette indlæg er blevet redigeret 1 gange, senest redigeret af "Karga" (19.11.2006, 23:07)


3

mandag, 20. november 2006, 06:12


Citeret

Originally posted by KarGa
Burde du ikke lige afslutte parameterparantesen i die-funktionen?
die('Fejl: Udfyld venligst alle felter';

Det kan forresten også med fordel laves i javascript.. da der så slet ikke submittes.. men man bare får en alert i bøtten


Faktisk også lige den eneste fejl jeg kan se altså den med die();
Du burde sådan set få en Fej, unexspected t-echo eller sådan noget omkring ;

Det kan godt laves med javascript men som jeg ser det vil jeg absolut ikke kalde det en fordel, kun en ekstra validering som kan være med til at spare brugeren for et side reload.
PHP valideringen er 100% nødvendig. Hvorfor?
Tjoeh fordi javascript jo kan slås fra, og spambotter mm. kører ikke med javascript, så tomme formularer vil kunne sendes afsted. Sidst men ikke mindst går jeg ud fra data skal smides i DB evt, og så er det jo vigtigt at datavaliditeten er verificeret


4

mandag, 20. november 2006, 07:41


Ja det var en typisk fhqwhgad fejl at glemme den parantes, men det var deværre ikke fejlen. Ihvertfald ikke den eneste fejl.
Den stopper stadig skrivningen og melder ingen fejl.

Og ja det skal i en database.


5

mandag, 20. november 2006, 08:11


Ikke sikker men prøv lige at rette følgende:

Kildekode

1
if ( isset ( $_POST['submit']) )


til

Citeret

if ( isset ( $_POST["submit"]) )


En helt anden ting prøv lige og post den første linie hvor du definere din form, den med method, action osv.


| asus maximus VI Hero | i7 4770K | 2 x 8gb G.skill | Asus GTX 750 Ti OC |
Common sense is creativities biggest enemy

6

mandag, 20. november 2006, 08:41


enkelt ' eller dobbelt " bør ikke gøre en forskel, tror måske også du har en fejl i din formular kode, smed lige følgende ind

PHP kildekode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if ( isset ( $_POST['submit']) )
 {
   $hnavn =  $_POST['hnavn'];
   $hrace $_POST['hrace'];
   $hgender $_POST['hgender'];
   $hpass $_POST['hpass'];
   $enavn $_POST['enavn'];
   $eemail $_POST['eemail'];
   $eby $_POST['eby'];
   if ((empty($hnavn) || empty($hrace) || empty($hpass) || empty($enavn) || empty($eemail) || empty($eby))) {
    die('Fejl: Udfyld venligst alle felter');
    
   } else {
       echo "<br>til db";
   }
}
?>
<form method="post" action="">
<input type="text" name="hnavn" />
<input type="text" name="hrace" />
<input type="text" name="hgender" />
<input type="text" name="hpass" />
<input type="text" name="enavn" />
<input type="text" name="eby" />
<input type="text" name="eemail" />
<br />
<input type="submit" name="submit" value="send" />
</form>


For at teste og der virker alting fint


7

mandag, 20. november 2006, 08:48


Citeret

Originally posted by WebT
enkelt ' eller dobbelt " bør ikke gøre en forskel, tror måske også du har en fejl i din formular kode, smed lige følgende ind

PHP kildekode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if ( isset ( $_POST['submit']) )
 {
   $hnavn =  $_POST['hnavn'];
   $hrace $_POST['hrace'];
   $hgender $_POST['hgender'];
   $hpass $_POST['hpass'];
   $enavn $_POST['enavn'];
   $eemail $_POST['eemail'];
   $eby $_POST['eby'];
   if ((empty($hnavn) || empty($hrace) || empty($hpass) || empty($enavn) || empty($eemail) || empty($eby))) {
    die('Fejl: Udfyld venligst alle felter');
    
   } else {
       echo "<br>til db";
   }
}
?>
<form method="post" action="">
<input type="text" name="hnavn" />
<input type="text" name="hrace" />
<input type="text" name="hgender" />
<input type="text" name="hpass" />
<input type="text" name="enavn" />
<input type="text" name="eby" />
<input type="text" name="eemail" />
<br />
<input type="submit" name="submit" value="send" />
</form>


For at teste og der virker alting fint


Jeg prøver lige når jeg kommer hjem.
Men er det ikke lidt mærkeligt at det går galt når jeg ændrer inde i if (isset()) blokken? Det er jo så snart siden loader, at det går galt, ikke efter der bliver trykket submit. Formen bliver slet ikke vist. Faktisk bliver intet vist, den stopper fuldstændig udskrivningen, og jeg får bare en blank fil.

Fjerner jeg mit empty() tjek, fungerer det fint.

Hm, kan se du har en ekstra parantes rundt om dit empty tjek, i forhold til mig. Kan det være det?


8

mandag, 20. november 2006, 09:06


Lyder meget underligt, især fordi jeg bare kopierede din kode ind uden at ændre noget (udover den die() selvfølgelig og satte lige en ekstra () uden om if delen, men det bør ikke gøre nogen forskel)

Hvis der ikke er noget "hemligt" i filerne kan du evt prøve at lave en .phps og uploade når du kommer hjem, så vi kan se hele kilden


9

mandag, 20. november 2006, 09:13


Citeret

Originally posted by WebT
Lyder meget underligt, især fordi jeg bare kopierede din kode ind uden at ændre noget (udover den die() selvfølgelig og satte lige en ekstra () uden om if delen, men det bør ikke gøre nogen forskel)

Hvis der ikke er noget "hemligt" i filerne kan du evt prøve at lave en .phps og uploade når du kommer hjem, så vi kan se hele kilden

Det vil jeg prøve når jeg kommer hjem.


10

mandag, 20. november 2006, 13:04


Nå lad os skynde os at glemme denne tråd.
Det viste sig selvfølgelig at jeg bare havde glemt en } :O


11

mandag, 20. november 2006, 13:26


Citeret

Originally posted by fhqwhgad
Nå lad os skynde os at glemme denne tråd.
Det viste sig selvfølgelig at jeg bare havde glemt en } :O


Hvilken tråd? Jeg kan ikke se nogen tråd :$ :crazyeyes:


Seneste tests og artikler

0

Enermax Aeolus Vegas laptopkøler

Sidder du og læser denne test
Læs Mere

0

ASUS Z97-PRO (Wi-Fi ac)

Så er det blevet tid til endnu
Læs Mere

0

Thermaltake Urban T81 - Full Tower

Denne test byder på et stort f
Læs Mere

2

Sony MDR-NC31EM Noise Cancelling earplugs

Sammen med Sony Xperia Z2 og X
Læs Mere
Seneste nyheder

1

ADATA lancerer ny Premier DDR4 2133 U-DIMM hukommelse

ADATA lancerer i dag Premier D
Læs Mere

0

Playstation 4 får ny 1.75 firmware opdatering

Efter en længere ventetid er S
Læs Mere

0

Ny Fractal Design Integra M serie af strømforsyninger

Fractal Design har annonceret
Læs Mere

0

Call of Duty: Advanced Warfare får fire multiplayer map packs

Call of Duty: Advanced Warfare
Læs Mere
Indsend nyhed
Har du fundet en fed nyhed så indsend den så alle andre på Tweak.dk kan få glæde af den.