Avatar billede mik789 Nybegynder
01. maj 2003 - 12:38 Der er 12 kommentarer og
1 løsning

tjek for input med "hidden"

Jeg har set eksempler, f.eks. i "Start på PHP" s.56, hvor man tjekker om der er noget input i en form ved hjælp af et hidden input. Det nævnte eks. er:

[mysql_connect, mysql_select]

if ($skriv){
[... forskelligt bearbejdning af inputdata]
mysql_query("insert into [... osv.]")
}

og formen:

<form etc....>
<input type="hidden" name="skriv" value="1" />

-----

Hvad gør det skjulte felt her? Hvordan fungerer det som tjek på at der er noget input for formen? Det drejer sig om tjek i forbindelse med input til gæstebog, forum e.l.
Avatar billede schaefner Juniormester
01. maj 2003 - 12:40 #1
Det eneste dit eksempel vil gøre er at tjekke om variablen $skriv er sat, hvilket den i det her tilfælde bruger til at tjekke om der er blevet trykket på submit-knappen, så den ved om den skal skrive til databasen.
Avatar billede Slettet bruger
01. maj 2003 - 12:42 #2
Jeg kan ikke rigtigt se logikken i det...
Normalt ville jeg tjekke om der er indhold input fra en formular på følgende måde...
<input type="text" name="name" value=""/>

if($_POST[name]!="")
{
    //INPUT
}
Avatar billede schaefner Juniormester
01. maj 2003 - 12:42 #3
Når der bliver trykket på submit-knappen, så sender den bl.a. værdien af feltet "skriv," som den så tjekker om er sat.
Avatar billede schaefner Juniormester
01. maj 2003 - 12:43 #4
Men den tjekker ikke om der er skrevet noget i de andre felter, så dem skal du også tjekke om der står noget i :)
Avatar billede schaefner Juniormester
01. maj 2003 - 12:50 #5
Et lille eksempel:

<form>
<input type="text" name="navn"><br>
<input type="text" name="email"><br>
<input type="submit" name="send" value="Send">
</form>

<?php
// Hvis der er trykket på knappen
if(isset($_POST{'send'])) {
  // Tjekker om navn og email er lig med noget
  if($_POST['navn'] != "" && $_POST['email'] != "") {
    // Indsætter data i databasen
    mysql_query("insert into [... osv.]");
  } else {
    // Udskriver en besked hvis felterne var tomme
    echo "Navn og email er ikke udfyldt";
  }
}
?>
Avatar billede schaefner Juniormester
01. maj 2003 - 12:50 #6
en slå fejl:
if(isset($_POST['send'])) {
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 13:05 #7
I dit eksempel, schaefner, vil $_POST['send'] ikke være sat hvis
brugeren sender formen afsted ved at trykke retur i et felt, dvs.
ikke trykke på knappen. Derfor det hidden felt (én løsning...)
Avatar billede mik789 Nybegynder
01. maj 2003 - 13:09 #8
fint! tak skal i have. det jeg ikke havdet tænkt på var, at $skriv ikke er sat før den sendes, dvs. før der er trykket på submit
Avatar billede mik789 Nybegynder
01. maj 2003 - 13:11 #9
jeg tjekker om der er indhold i de andre input-felter (dem som brugeren skal udfylde) med et javascript der ikke sender formen med mindre disse felter er udfyldt
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 13:14 #10
Men, mik789, så kan han jo have slået javascript fra... Tag og check det
på serveren også.
Avatar billede mik789 Nybegynder
01. maj 2003 - 13:16 #11
erikjacobsen> OK... lyder fornuftigt
Avatar billede schaefner Juniormester
01. maj 2003 - 13:17 #12
<form>
<input type="hidden" name="send" value="1">
<input type="text" name="navn"><br>
<input type="text" name="email"><br>
<input type="submit" value="Send">
</form>

<?php
// Hvis der er trykket på knappen
if(isset($_POST['send'])) {
  // Tjekker om navn og email er lig med noget
  if($_POST['navn'] != "" && $_POST['email'] != "") {
    // Indsætter data i databasen
    mysql_query("insert into [... osv.]");
  } else {
    // Udskriver en besked hvis felterne var tomme
    echo "Navn og email er ikke udfyldt";
  }
}
?>

Så burde den være der ;)
Avatar billede mik789 Nybegynder
01. maj 2003 - 13:23 #13
takker igen!
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