Avatar billede 7th Praktikant
27. januar 2003 - 21:18 Der er 23 kommentarer og
1 løsning

Nye variabler

Hvordan er det nu man gør hvis man vil lave egne variabler ?

Tidligere kunne man blot nøjes med at skrive for eksempel if ($felt == 0). Jeg har prøvet med både if ($_GET/GLOBAL/POST/REQUEST['felt'] == 0), men får stadig fejl.

Det jeg gerne vil er at sætte et inputfelt = 0, altså if ($felt == 0), så bla bla bla... if if ($felt == 1), så bla bla bla...
Avatar billede svoeber Nybegynder
27. januar 2003 - 21:25 #1
Hvad mener du med:
"Jeg har prøvet med både if ($_GET/GLOBAL/POST/REQUEST['felt'] == 0)"

Har du prøvet
if ($_get['felt'] == 0)
if ($_post['felt'] == 0)
...
osv?
Avatar billede websmith Nybegynder
27. januar 2003 - 21:26 #2
Hmm. Hvis du mener et felt som du har postet via en html formular, så henter du ved at skrive

$_POST['feltnavn'];

fx. echo $_POST['feltnavn'];
Avatar billede svoeber Nybegynder
27. januar 2003 - 21:27 #3
Prøv evt.
$HTTP_GET_VARS['felt']
eller
$HTTP_POST_VARS['felt']
i stedet
Avatar billede ksostack Nybegynder
27. januar 2003 - 21:32 #4
Hvis du vil sætte en variabel lig med noget skriver du:
$variabel = "noget"; // hvis det skal være en streng (string / text)
$variabel = 1 // hvis det skal være et tal(integer)
$variabel = 1.25 // hvis det skal væer et reelt tal (real).
Jeg tror, det du mener er, at du gerne vil kontrollere om et input-felt har en bestemt værdi ??
Det kan du gøre med enten:
if($_GET["variabel"] == "værdi") {
  eller:
if($_POST["variabel"] == "værdi") {
  //gør noget
} else {
  //gør noget andet
}
Avatar billede 7th Praktikant
27. januar 2003 - 21:43 #5
Nah, ikke helt, kan se jeg ikke har forklaret helt tydeligt...

svoeber : ja.

Her er et uddrag af min gamle kode...

elseif (($post) && ($felt == 0))
{
if (empty ($felt) || (! ereg ("[a-zæøå0-9]" , $felt)) || ($felt == "Du mangler at udfylde emne"))
{
$emnefelt = 0;
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"emne\" size=\"27\" type=\"text\" value=\"Du mangler at udfylde emne\"></td>";
}

else
{
$felt = 1;
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"emne\" size=\"27\" type=\"text\" value=\"$felt\"></td>";
}

Det er på denne måde jeg ønsker at kunne lave min egen variable $felt.
Avatar billede 7th Praktikant
27. januar 2003 - 21:45 #6
$emnefelt = 0; skal rettes til $felt = 0;
Avatar billede svoeber Nybegynder
27. januar 2003 - 21:59 #7
Skal du ikke have $emne ind et sted?
Hvad er fejlen helt konkret?
Jeg kan ikke lige gennemskue, hvad du vil have koden til at gøre præcist
Avatar billede 7th Praktikant
27. januar 2003 - 22:10 #8
Jeg har en form hvor jeg tidligere brugte php til at checke inputtet i hver inputfelt.

if ...
{
Først tjekker jeg om post er sat samt hvert inputfelt er tomt (ikke i kodedelen). Første form kommer her.
}

Så kommer vi til elseif-sætningen som indeholder anden form.
elseif (($post) && ($felt == 0)) // hvis posted og $felt = 0 så vis anden form
{
if (empty ($felt) || (! ereg ("[a-zæøå0-9]" , $felt)) || ($felt == "Du mangler at udfylde felt")) // hvis $felt er tomt eller ikke svarer til tegn eller $felt = sætning så
{
$felt = 0; // sættes til 0
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"felt\" size=\"27\" type=\"text\" value=\"Du mangler at udfylde felt\"></td>";
}

else
{
$felt = 1; // felt sættes til 1
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"felt\" size=\"27\" type=\"text\" value=\"$felt\"></td>";
}

Så kommer vi til sidst til mysql delen hvor jeg sætter input ind hvis betingelser er opfyldt.
if (($felt == 1)) // hvis $felt = 1, altså hvis betingelse fra anden form er opfyldt så
{
...write input...
}

Håber det gjorde det lidt klarere, ellers må i skrive igen ;)
Avatar billede svoeber Nybegynder
27. januar 2003 - 22:22 #9
Ok, men hvor bliver $felt sat oprindeligt? Er det også en variabel der kommer fra formularen?
Avatar billede 7th Praktikant
27. januar 2003 - 22:26 #10
Den bliver ikke sat nogen steder før ved $felt = 0; // sættes til 0. Det er det jeg gerne skulle have hjælp til nu. Altså at kunne lave en selvdefineret variabel ($felt), som jeg så kan lege med som jeg lyster...

Jeg har fået opdateret min gamle kode, men mangler altså lige denne lille, men betydelige ting, så formen kan komme til at virke igen.
Avatar billede svoeber Nybegynder
27. januar 2003 - 22:31 #11
Så er jeg lidt lost :)
Hvorfor tjekker du variablen $felt inden den overhovedet er sat?
Men bliver den ikke sat i formularen?
Jeg tror du blander tingene lidt sammen og bruger $felt til flere ting samtidig...
Avatar billede 7th Praktikant
27. januar 2003 - 22:39 #12
Arg...kan godt se hvorfor du er er meget lost :) Jeg rettede i min gamle kode inden jeg pasted den her for at gøre den lidt mere overskuelig, men kan se jeg er kommet til at bruge $felt flere steder. Så er det jo ikke nemt... ;)

Prøver igen.

if (! isset ($post) && empty ($emne))
{
echo "<form action=\"emne.php\" method=\"post\">";
Første form...
echo "</form>";
}

elseif (($post) && ($felt == 0))
{
Anden form hvis emne mangler...
echo "<tr>";
echo "<td class=\"input\">Emne</td><td align=\"middle\" class=\"punkt\" width=\"15\">:</td>";
if (empty ($emne) || (! ereg ("[a-zæøå0-9]" , $emne)) || ($emne == "Du mangler at udfylde emne"))
{
$felt = 0;
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"emne\" size=\"27\" type=\"text\" value=\"Du mangler at udfylde emne\"></td>";
}

else
{
$felt = 1;
echo "<td><input class=\"felt\" maxlength=\"50\" name=\"emne\" size=\"27\" type=\"text\" value=\"$emne\"></td>";
}
echo "</tr>";
}

if (($felt == 1))
{
Gør dit gør dat bla bla bla...
}
Avatar billede svoeber Nybegynder
27. januar 2003 - 22:43 #13
Ok.
Der hvor du skriver

elseif (($post) && ($felt == 0))
{

er det så nødvendigt at tjekke for $felt?
Så vidt jeg kan se er det ikke sat, så jeg tror du skal nøjes med:

elseif ($post)
{
Avatar billede 7th Praktikant
27. januar 2003 - 22:52 #14
Jo, for hvis man skriver forkert en gang til skulle den jo gerne ikke submitte dette, og derfor mener jeg at kunne huske at $felt er nødvendigt der. Men det løser jo stadigvæk ikke mit problem, at jeg gerne vil lave en selvdefineret variabel. Jeg får en Undefined variable fejl.
Avatar billede svoeber Nybegynder
27. januar 2003 - 23:21 #15
Hmm...
jeg tror ikke jeg kommer til at forstå det uden at se al koden i sammenhæng :(

Jeg har desværre ikke tid længere idag.
Men et sidst tip på falderebet:

Prøv i stedet:

elseif (($post) && isset($felt) && ($felt == 0))
{
Avatar billede 7th Praktikant
27. januar 2003 - 23:30 #16
Det er ok, prøver videre lidt endnu, ellers må jeg uploade koden imorgen...
Avatar billede ksostack Nybegynder
28. januar 2003 - 06:16 #17
I den php-fil hvor du "tegner" formen til at submitte data laver du også checket på felterne:
<?
if (!isset($_POST)) {
?>
<form action="<?= $PHP_SELF ?>" method="POST">
<input type="text" name="emne"><br>
<input type="submit" value="Send">
</form>
<?
} elseif(empty($_POST["emne"])) {
?>
<form action="<?= $PHP_SELF ?>" method="POST">
Udfyld emne:<br />
<input type="text" name="emne"><br />
<input type="submit" value="Send">
</form>
<?
} else {
//Sæt data ind i databasen her.
echo "Emne er ikke tomt";
}
?>
Avatar billede 7th Praktikant
28. januar 2003 - 11:36 #18
ksostack : ja jeg laver en check på hver inputfelt hvis det ikke er tomt.

Anyway jeg tror ikke helt jeg har fået forklaret og skåret mit problem ud i pap grundig nok, kan jeg se på response, min fejl, men jeg dog har løst problemet nu, omendt måske på en lidt mere indviklet måde. Jeg skrev en kommentar i nat, men den er åbenbart ikke blevet sendt.

svoebers sidste kommentar 27/01-2003 23:21:06 ledte mig på sporet. Da jeg ikke lige nu er hjemme, er det måske ikke helt korrekt det jeg skriver nu, men det ser nogenlunde sådan her ud.

// check inputfelter hvis ! empty

if ((isset ($_GET['post'])) && ((isset ($felt)) || ($felt == 0)) || ((isset ($felt1)) || ($felt1 == 0)))

Sådan fortsætter jeg hele vejen ned...nåmen når jeg kommer hjem poster jeg lige min løsning, og så må du svoeber gerne smide et svar imens...
Avatar billede ksostack Nybegynder
29. januar 2003 - 08:43 #19
<?
if (isset($_POST)) {
  foreach($_POST as $felter) {
  list($felt, $vaerdi) = $felter;
      ?>
      <form action="<? $PHP_SELF ?>" method="POST">
      <?
      if($felt != "knap" && $vaerdi == "") {
        ?>
        Du skal udfylde feltet: <br />
        <input type="text" name="<?= $felt ?>"><br />
        <?
      } else {
          ?>
          <input type="text" name="<?= $felt ?>" value="<?= $vaerdi ?>"><br />
          <?
  }
  }
} else {
      // her "tegnes" formen, som standard, hvis alle felter var tomme,
      // eller hvis man kommer ind "fra gaden"
      ?>
      <form action="<? $PHP_SELF ?>" method="POST">
      <input type="text" name="felt1"><br /> <? // du kan også kalde dem for ?>
      <input type="text" name="felt2"><br /> <? // "navn", "emne" m.v. ?>
      <input type="text" name="felt3"><br />
      <input type="text" name="felt4"><br />
      <input type="text" name="felt5"><br />
      <input type="text" name="felt6"><br />
      <input type="submit" name="knap" value="Send">
<?
}
?>
</form>
Avatar billede ksostack Nybegynder
29. januar 2003 - 09:02 #20
Rettelse:
  }
  }
} else {
skal være:
  }
  <?
  <input type="submit" name="knap" value="Send">

  ?>
  }
} else {
//ksostack
Avatar billede 7th Praktikant
29. januar 2003 - 10:03 #21
ksostack : meget venligt af dig, men du behøves altså ikke at bruge mere tid på spørgsmålet ;) Jeg glemte at paste koden igår, men gør det lige så snart jeg kommer hjem idag. Så tror jeg du vil forstå det lidt bedre. Din metode fejler ellers ikke noget, men jeg har gjort det således, at jeg checker hver inputfelt via nogle "funktioner", og udskriver en fejlmeddelelse i inputfeltet hvis felt, og hvis ellers ikke, så står værdi i inputfelt hvis fejl fra andre inputfelter. Lyder måske lidt kryptisk, anyway iøvrigt hvis nogen har lyst må de gerne være behjælpelig med at gennemteste min beta gæstebog :) Linket følger senere når jeg kommer hjem...

svoeber : venter stadig på et svar fra dig.

ksostack : du må også gerne smide et svar, så kan du få lidt points for din hjælp.
Avatar billede 7th Praktikant
29. januar 2003 - 21:55 #22
Jeg har løst problemet på denne måde: http://rnb.users.whitehat.dk/guestbook/kode.phps

Hvis man vil se hvordan det virker i praktisk, kig da: http://rnb.users.whitehat.dk/guestbook/

P.S. der er ingen check på site url endnu...
Avatar billede svoeber Nybegynder
29. januar 2003 - 22:54 #23
Svar :)
Avatar billede 7th Praktikant
31. januar 2003 - 07:03 #24
Takker alle for hjælpen :)
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