Avatar billede hewa Nybegynder
11. februar 2007 - 17:58 Der er 17 kommentarer

Mere feltvalidering

Når jeg validerer et felt, om det er tom, skal min kode ikke gå videre. Det virker også fint, men sætter man bare et mellemrum eller et linjeskift, er feltet ikke tom længere - og det kan man da sige, det er :)

Hvordan kommer jeg ud over det? Hvordan kan jeg sikre mig, at der skal være et synligt tegn og ikke bare et mellerum eller et linjeskift, når jeg validerer et felt?
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:01 #1
Du kunne jo indlæse indholdet over i en variabel, og derefter erstatte (global) mellemrum og linieskift i variabler. Derefter sammenligner du variablens indhold med ""..

Hvis de er lig hinanden, melder du fejl / stopper koden..
Avatar billede hewa Nybegynder
11. februar 2007 - 18:08 #2
Det lyder, som det jeg har brug for. Det er allerede variabler, da det kommer fra en form, men hvordan strikker jeg det sammen?

Det er i øvrigt samme problematisk som det andet indlæg du svarede på :)
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:13 #3
Jeg mener at det er noget i den stil:

$fornavn=$_POST['fornavn']; // "fornavn" er navnet på feltet i din form

$tmp = $fornavn;
$tmp = str_replace(" ", "", $tmp);
$tmp = str_replace("\n","", $tmp);

if ($tmp == "")
{
// fejl
echo "Fejl i fornavn";
exit;

}
Avatar billede mccookie Seniormester
11. februar 2007 - 18:16 #4
2 muligheder....

1)
if(empty($_REQUEST['var'])) { echo "Mangler input"; exit; }

2)
if(empty($_REQUEST['var1'])) { $fejl[] = "Fejl i input 1"; }
if(empty($_REQUEST['var2'])) { $fejl[] = "Fejl i input 2"; }
if(empty($_REQUEST['var3'])) { $fejl[] = "Fejl i input 3"; }

if(count($fejl)) { foreach ($fejl as $fejl_out) { echo $fejl_out . "<br>"; }}


Ikke testet... men en idé

///McCookie
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:18 #5
mccookie> empty, ignorer den mellemrum og linieskift, hvis der ikke er andet tekst?
Avatar billede hewa Nybegynder
11. februar 2007 - 18:18 #6
Men så vidt jeg lige kan gemmenskue, indrømmet jeg er ikke noget haj til det :) men så erstatter den kode alle linjeskift og mellemrum og det var ikke lige det, der var tanken :) Det er bl.a. til et felt til historier, jeg skal bruge det.
Er det ikke sådan, det vil virke?
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:19 #7
hewa> jo, men det sker jo i en tmp-variablen.. det vil sige, en ekstra kopi af dit indhold..

fornavn ændres der jo ikke noget ved..
Avatar billede hewa Nybegynder
11. februar 2007 - 18:20 #8
Halløj igen mccookie :)
Det skal faktisk bruges på det vi legede med tidligere i dag :)
Avatar billede hewa Nybegynder
11. februar 2007 - 18:25 #9
thesurfer --> men så står jeg med to variabler $fornavn og $tmp?
Hvordan slipper jeg så af med de sidste linjeskif eller mellemrum i $fornavn?
- eller er der noget, jeg ikke helt er med på?
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:29 #10
hewa> Ja, så har du 2 variabler.. der er ingen der siger at du absolut skal bruge alle variabler..

I dit spørgsmål skriver du:
"Når jeg validerer et felt, om det er tom, skal min kode ikke gå videre."

Det er netop det koden her gør.. "exit;" skulle meget gerne stoppe udskrivningen..

Men for at fjerne det sidste mellemrum/linieskift, kan du bruge koden fra
http://www.eksperten.dk/spm/761942
Avatar billede plx Nybegynder
11. februar 2007 - 18:37 #11
http://dk2.php.net/trim

trim-funktionen er næsten lavet til dette formål
Avatar billede thesurfer Nybegynder
11. februar 2007 - 18:39 #12
plx> nå ja.. :-)
Avatar billede hewa Nybegynder
11. februar 2007 - 18:58 #13
Der hvor problemet opstår, er når mine tekster skal vises i en form - og det virker ikke... trim fjerne ikke lige de ting jeg gerne vil :) Det kan godt ske, det gør når indholdet fra databasen bliver vist via en echo, men der er jo fra starten ikke noget linjeskif.
Avatar billede hewa Nybegynder
11. februar 2007 - 21:58 #14
Med svaret på spørgsmålet inden, tak thesurfer, og svaret fra plx - og 3 timer mere... så virker det :) Smid et svar plx og tak til dig også :)
Avatar billede hewa Nybegynder
14. december 2007 - 18:20 #15
thesurfer og plx - en gammel tråd, vi hellere må lukke. Hvem napper pointene? Kan jeg dele dem mellem jer?
Avatar billede thesurfer Nybegynder
14. december 2007 - 20:44 #16
Ingen points til mig, tak.
Avatar billede hewa Nybegynder
15. december 2007 - 01:24 #17
Oki :) plx, så må du på banen :)
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