[PHP] variabele doorgeven met form probleem

Pagina: 1
Acties:

Onderwerpen


  • Rambo
  • Registratie: Maart 2001
  • Laatst online: 19-12-2024
pagina1:
Hier geef ik de variabele $verzend een waarde.
PHP:
1
2
3
4
5
6
...
<form action="bijwerken_taak_verwerk.php" method="post">
<input type="text" name="$verzend">
<center><input type="Submit" value="Verzend"></center>
</form>
...


pagina2:
Hier wordt die variabele $verzend weer doorgegeven als variabele $verzend3 naar de volgende pagina (pagina3)
PHP:
1
2
3
4
5
6
7
8
(if else gedoe)
...
echo "<form action='bijwerken_taak_verwerk4.php' method='post'>";
echo "<input type='text' name='$verzend2'>";        
echo "<input type='hidden' name='$verzend3' value=".$_POST['$verzend'].">";
echo "<input type='Submit' value='Verzend'>";
echo "</form>";
...


pagina3:
Maar hier is de variabele $verzend3 leeg :/
($verzend2 ook)
PHP:
1
2
3
...
$query="SELECT * FROM planning WHERE (taak='".$_POST['$verzend3']."' AND persoon='".$_POST['$verzend2']."')";
...


echo "$query";
in pagina3 geeft:

code:
1
SELECT * FROM planning WHERE (taak='' AND persoon='')


Ik snap er HELEMAAL niks meer van, ben er echt al uren mee bezig :/

Wie kan met uitleggen wat ik verkeerd doe? (register globals=on)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
$_POST;

Verwijderd

ik heb dit zelfde probleem ook
wat is nou de oplossing $_post; ?????????
komt dit door de standaart instellingen van de nieuwe php ?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Je geeft trouwens ook een varname in HTML een $ mee. wat je ws niet wilt.

Verwijderd

Wat is dat toch met die grote hoeveel vraagtekens...?

Dit is dus echt een standaard php manual vraag... dat ik nog zo gek ben om het op te zoeken mag Joost weten.

Je kunt $_POST global gebruiken in tegenstelling tot $HTTP_POST_VARS, mists het op de server aanstaat natuurlijk.

http://www.php.net/manual/en/reserved.variables.php

En voor je probleem, de naam van ja variabele is nu $verzend, als je hm dus gaat gebruiken wordt het $$verzend. Met andere woorden, je moet geen $ bij de name value zetten.

edit:
Maar dat had Nielz al gezegd

[ Voor 29% gewijzigd door Verwijderd op 19-12-2002 12:13 ]


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

name="$verzend">
das al fout
dus zal je in je $_POST nooit wat vinden
tip
PHP:
1
2
3
4
5
<?
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>

Doet iets met Cloud (MS/IBM)


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
[antfucking mode]
ja het heeft dus niks met die $_POST te maken, en strikt genomen ook niet met die name='$verzend' in de eerste file (hoewel vast enorm error-prone gaat dit nog wel goed). In de tweede file echo je echter een zut HTML, en dan gaat het WEL mis wanneer je je input names van een $ voorziet. PHP denkt dan namelijk dattie de waarde van $verzendx moet invullen, en die zijn juist dan nog leeg!
[/antfucking mode]

[ Voor 8% gewijzigd door Genoil op 19-12-2002 12:23 ]


  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 09-09 17:23
je moet je variabelen in $_POST['$verzend'] niet tussen enkele aanhalingstekens zetten. Zoals je in de PHP-manual kunt lezen, wordt alles tussen ' niet geparsed (daarom wordt tekst tussen enkele aanhalingstekens ook iets sneller verwerkt). Dus of geen aanhalingstekens, of dubbele aanhalingstekens

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Martin Sturm schreef op 19 december 2002 @ 13:08:
je moet je variabelen in $_POST['$verzend'] niet tussen enkele aanhalingstekens zetten. Zoals je in de PHP-manual kunt lezen, wordt alles tussen ' niet geparsed (daarom wordt tekst tussen enkele aanhalingstekens ook iets sneller verwerkt). Dus of geen aanhalingstekens, of dubbele aanhalingstekens
Geen aanhalingstekens mag alleen als het een integer is. Enkele is in principe goed, zolang je er maar geen variabele inzet. Dus $woei['z']; kan wel, $woei['$z'] iets minder.
En met dubbele gaat hij het wel parsen :)

Acties:
  • 0 Henk 'm!

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 09-09 17:23
Nielsz schreef op 19 December 2002 @ 13:21:
[...]

Geen aanhalingstekens mag alleen als het een integer is. Enkele is in principe goed, zolang je er maar geen variabele inzet. Dus $woei['z']; kan wel, $woei['$z'] iets minder.
En met dubbele gaat hij het wel parsen :)

Volgens mij zeg ik dat toch? Zonder aanhalingstekens mag ook als het geen integer is, het werkt alleen niet altijd :)

Acties:
  • 0 Henk 'm!

Verwijderd

[b][message=16428459,noline]M0rpheus schreef op 19 december 2002 @

...

PHP:
1
2
3
4
5
6
7
8
(if else gedoe)
...
echo "<form action='bijwerken_taak_verwerk4.php' method='post'>";
echo "<input type='text' name='$verzend2'>";        
echo "<input type='hidden' name='$verzend3' value=".$_POST['$verzend'].">";
echo "<input type='Submit' value='Verzend'>";
echo "</form>";
...


...
[mierensex / obvious-mode]

In de regel waarin je de value van je verzend meegeeft als hidden value, is het misschien ook wel handig om er quotes omheeg te zetten, eg:
PHP:
1
  echo "<input type='hidden' name='$verzend3' value=\"".$_POST['$verzend']."\">";

Weet niet of dit in jou geval veel uitmaakt, maar het kan problemen opleveren.

[/mierensex / obvious-mode]

Acties:
  • 0 Henk 'm!

Verwijderd

ik krijg het wel werkend maar ik moet nou bij elke verzonden var dat $_post regeltje neerzetten kan ik niet iets veranderen in mn php.ini zodat dit niet meer hoeft ?

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

dat simpele $_POST regeltje maakt je code een stuk duidelijk, overzichtelijker en begrijpelijker. Niet gaan rommelen in de php.ini ten kosten van je goede code dus! :)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

simpel als je 4 of 5 vars hebt maar ik zit hier met een formulier van 100 forms
niet egt handig dus
en met de oudere versies van php ging het tog ook gewoon zonder $_post
waren al die versies slecht dan ?

[ Voor 35% gewijzigd door Verwijderd op 23-12-2002 11:08 ]


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

Verwijderd schreef op 23 December 2002 @ 11:07:
simpel als je 4 of 5 vars hebt maar ik zit hier met een formulier van 100 forms
niet egt handig dus
sjah, da's eventjes een search en replace uitvoeren.. :)
en met de oudere versies van php ging het tog ook gewoon zonder $_post
waren al die versies slecht dan ?
Die waren inderdaad minder goed dan de huidige versies

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 16-09 10:29

Apache

amateur software devver

Je kan $ ook escapen met \ als je het perse wil gebruiken waarschijnlijk, niet dat het aan te raden is.

If it ain't broken it doesn't have enough features

Pagina: 1