[php] Variabelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik het het idee dat ik gek wordt... Ik heb onderstaande code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
                <?php
                $formulier = "<input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Dhr.\" " . $aanhefdhr . ">
                        Dhr.
                        <input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Mevr.\"    " . $aanhefmevr . ">
                        Mevr.<br>
                        Naam:<br>
                        <input name=\"naam\" type=\"text\" class=\"platGrijs\" size=\"80\" value=\"$naam\">" . $foutnaam;

                if ($_POST[aanhef] == "Dhr."){
                    $aanhefdhr = htmlentities("CHECKED", ENT_QUOTES);
                }elseif ($_POST[aanhef] == "Mevr."){
                    $aanhefmevr = "CHECKED";
                }
                $naam       = htmlentities(trim($_POST[naam]), ENT_QUOTES);
                $adres      = htmlentities(trim($_POST[adres]), ENT_QUOTES);
                $postcode   = htmlentities(trim($_POST[postcode]), ENT_QUOTES);
                $woonplaats = htmlentities(trim($_POST[woonplaats]), ENT_QUOTES);
                $telefoon   = htmlentities(trim($_POST[telefoon]), ENT_QUOTES);
                $bericht    = htmlentities(trim($_POST[bericht]), ENT_QUOTES);

                echo $mailformulier;

                ?>


Bij de output wordt de $naam keurig als value van het inputveld gegeven, maar $aanhefmevr is onderaan wel gelijk aan "CHECKED" maar staat niet in de broncode... $aanhefmevr staat verder nergens in het hele script...

Acties:
  • 0 Henk 'm!

Verwijderd

Je zet die variabele in een string voordat je hem een waarde hebt gegeven.

Zet eens error_reporting ( E_ALL ); bovenaan je code.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Waarom werkt $naam dan wel?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het probleem is inmiddels opgelost door het mailformulier in een functie te stoppen... maar:
Waarom werkt $naam dan wel?
Gewoon nieuwsgierig :)

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 12 juni 2004 @ 13:10:
Het probleem is inmiddels opgelost door het mailformulier in een functie te stoppen... maar:


[...]


Gewoon nieuwsgierig :)
Ik denk dat je dan de superglobals niet helemaal goed hebt staan. Dus dat die en $_POST['naam'] accepteerd en ook $naam.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if ($_POST["aanhef"] == "Dhr."){
    $aanhefdhr = htmlentities("CHECKED", ENT_QUOTES); //why htmlentities??
}elseif ($_POST["aanhef"] == "Mevr."){
    $aanhefmevr = "CHECKED";
}
$naam         = htmlentities(trim($_POST["naam"]), ENT_QUOTES);
$adres         = htmlentities(trim($_POST["adres"]), ENT_QUOTES);
$postcode     = htmlentities(trim($_POST["postcode"]), ENT_QUOTES);
$woonplaats = htmlentities(trim($_POST["woonplaats"]), ENT_QUOTES);
$telefoon     = htmlentities(trim($_POST["telefoon"]), ENT_QUOTES);
$bericht     = htmlentities(trim($_POST["bericht"]), ENT_QUOTES);

$formulier = "<input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Dhr.\" " . $aanhefdhr . ">
        Dhr.
        <input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Mevr.\"    " . $aanhefmevr . ">
        Mevr.<br>
        Naam:<br>
        <input name=\"naam\" type=\"text\" class=\"platGrijs\" size=\"80\" value=\"$naam\">" . $foutnaam;

echo $mailformulier;

?>

Dit lijkt er alvast veel meer op. Als je Cheetah's raad op had gevolgd had je geweten dat $_POST[naam] $_POST["naam"] moet zijn. En dan had je ook geweten dat er bepaalde variabelen niet gedeclarereerd waren. Error_reporting() op E_ALL zetten is hoe dan ook altijd aan te raden.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • FireFoz
  • Registratie: Juni 2001
  • Laatst online: 18-06 08:40
NMe84 schreef op 15 juni 2004 @ 15:38:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if ($_POST["aanhef"] == "Dhr."){
    $aanhefdhr = htmlentities("CHECKED", ENT_QUOTES); //why htmlentities??
}elseif ($_POST["aanhef"] == "Mevr."){
    $aanhefmevr = "CHECKED";
}
$naam         = htmlentities(trim($_POST["naam"]), ENT_QUOTES);
$adres         = htmlentities(trim($_POST["adres"]), ENT_QUOTES);
$postcode     = htmlentities(trim($_POST["postcode"]), ENT_QUOTES);
$woonplaats = htmlentities(trim($_POST["woonplaats"]), ENT_QUOTES);
$telefoon     = htmlentities(trim($_POST["telefoon"]), ENT_QUOTES);
$bericht     = htmlentities(trim($_POST["bericht"]), ENT_QUOTES);

$formulier = "<input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Dhr.\" " . $aanhefdhr . ">
        Dhr.
        <input name=\"aanhef\" type=\"radio\" class=\"navigatieSub\" value=\"Mevr.\"    " . $aanhefmevr . ">
        Mevr.<br>
        Naam:<br>
        <input name=\"naam\" type=\"text\" class=\"platGrijs\" size=\"80\" value=\"$naam\">" . $foutnaam;

echo $mailformulier;

?>

Dit lijkt er alvast veel meer op. Als je Cheetah's raad op had gevolgd had je geweten dat $_POST[naam] $_POST["naam"] moet zijn. En dan had je ook geweten dat er bepaalde variabelen niet gedeclarereerd waren. Error_reporting() op E_ALL zetten is hoe dan ook altijd aan te raden.
Dat is niet waar, $_POST[naam] moet ook gewoon werken.

@ TS: welke php versie heb je? Probeer anders eens $HTTP_POST_VAR['naam']

Leef lekker in het nu, er is niks anders


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

FireFoz schreef op 16 juni 2004 @ 13:56:
[...]


Dat is niet waar, $_POST[naam] moet ook gewoon werken.
http://www.php.net/manual/en/language.types.array.php
En dan voornamelijk het stukje "Array do's and don'ts why is $foo[bar] wrong?" ;)

[ Voor 11% gewijzigd door Creepy op 16-06-2004 13:59 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

FireFoz schreef op 16 juni 2004 @ 13:56:
Dat is niet waar, $_POST[naam] moet ook gewoon werken.
Jazeker moet dat werken....als naam een constant zou zijn. :X
FireFoz schreef op 16 juni 2004 @ 13:56:
@ TS: welke php versie heb je? Probeer anders eens $HTTP_POST_VAR['naam']
1. Het is $HTTP_POST_VARS
2. $HTTP_POST_VARS is een global, $_POST een superglobal. $_POST zal dus sowieso eerder moeten werken dan $HTTP_POST_VARS. Verder is $HTTP_POST_VARS nogal in onbruik geraakt sinds $_POST bestaat. IMHO is $HTTP_POST_VARS maar voor 1 ding goed: RSI. :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • FireFoz
  • Registratie: Juni 2001
  • Laatst online: 18-06 08:40
Creepy schreef op 16 juni 2004 @ 13:59:
[...]

http://www.php.net/manual/en/language.types.array.php
En dan voornamelijk het stukje "Array do's and don'ts why is $foo[bar] wrong?" ;)
Dat klopt, maar het werkt wel :P
NMe84 schreef op 16 juni 2004 @ 14:18:
[...]

Jazeker moet dat werken....als naam een constant zou zijn. :X


[...]

1. Het is $HTTP_POST_VARS
2. $HTTP_POST_VARS is een global, $_POST een superglobal. $_POST zal dus sowieso eerder moeten werken dan $HTTP_POST_VARS. Verder is $HTTP_POST_VARS nogal in onbruik geraakt sinds $_POST bestaat. IMHO is $HTTP_POST_VARS maar voor 1 ding goed: RSI. :+
1. typo O-)
2. Als je een heel oude php versie hebt, dan werkt $_POST nog niet en $HTTP_POST_VARS wel :)

Jullie hebben wel gelijk, maar ik vroeg me af of dat wel werkt in het script van de TS :)

Leef lekker in het nu, er is niks anders

Pagina: 1