Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

$_post in classes.

Pagina: 1
Acties:

  • x_mtd_x
  • Registratie: November 2012
  • Laatst online: 21-09-2022
goede dag allemaal op tweakers.net
mijn naam is mathieu dijkstra en ik loop weer eens tegen een probleem aan in php

ik heb de volgende code geschreven maar er werkt een stukje niet van $_post opdracht


ik wil deze $_post opdracht in een class hebben staan.

kunnen jullie mij hier bij helpen wat ik verkeerd doe?

mijn php programma zegt het volgende:
Notice: Undefine index: testdata in c:\.......temp\main.php on line 27


vriendelijke groeten mathieu dijkstra.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

/**
 * @author Mathieu Dijkstra
 * @copyright 2012
 */


class ClassTest{
    
   public function formtest(){
        //
        // print een form
        //
    echo '<form method="post" target="_self" enctype="multipart/form-data">
        <input type="text" name="testdata" value="test value is this" size="100" />
<input type="submit" value="send" />
</form>';
    
   } 
    public function GetFormData(){
        
        //
        // 
        // hier is het probleem
        //
        echo $_POST['testdata'];
        //
        // hier is het probleem
        //
    }
}
$ff = new ClassTest;

$ff->formtest();
//
// probleem komt hier in deze aan roep???
//
$ff->GetFormData();
?>

[ Voor 44% gewijzigd door x_mtd_x op 29-11-2012 10:45 ]


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:48
Toon eens alle errors, deze code gaat namelijk een error geven die je niet ziet als je ze niet allemaal toont.

Bovenin je documentje bijvoorbeeld.

PHP:
1
2
error_reporting(E_ALL);
ini_set('display_errors', 'on');

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 21-11 10:00
Je hebt nog geen post gedaan, dus zit er niks in je $_POST denk ik zo.

als je voor de

code:
1
$ff->GetFormData();


even een

code:
1
echo "wanneer wordt dit eigenlijk uitgevoerd";


neerzet begrijp je waarschijnlijk wel wat er gebeurt.


Verder als tip: voortaan even je code in een [ code ] tag neerzetten (zonder spaties) dat leest makkelijker
tip2: voortaan ook even opschrijven wat er gebeurt en wat er dan mis gaat, niet iedereen heeft zin om het uit te proberen.

  • x_mtd_x
  • Registratie: November 2012
  • Laatst online: 21-09-2022
het gekke is als je dit doet doet het het wel:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
echo $_POST['testdata']

?>

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="Mathieu Dijkstra" />

    <title>Untitled 10</title>
</head>

<body>

<form method="post" target="_self" enctype="multipart/form-data">
        <input type="text" name="testdata" value="test value is this" size="100" />
    <input type="submit" value="send" />
</form>'

</body>
</html>


het enigste wat ik gedaan heb is deze zinnen in een echo te verwerken en in een clase te zetten?

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Bij de eerste request klopt dit natuurlijk ook, dan is het formulier niet gesubmit. Kijk eens naar de source in je browser, dan zal je waarschijnlijk dezelfde error zien alleen dan voor je DOCTYPE declaratie.

Je zal eerst moeten checken of $_POST['testdata'] wel bestaat dmv isset.

[ Voor 9% gewijzigd door TJHeuvel op 29-11-2012 13:55 ]

Freelance Unity3D developer


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-11 16:33
Het is sowieso geen handig plan om globals in je class te gebruiken. Probeer dat gedeelte weg te laten en de class aan te roepen met de data als argumenten. Anders krijg je een grote spaghetti.

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je begrijpt niet wat de flow is. Dat je 2e voorbeeld wel werkt komt omdat je dan al eerder een submit hebt gedaan. Roep diezelfde pagina eens op door gewoon op enter te drukken in je adresbalk om een GET-request te doen, dan zal die het ook niet doen.

Overigens mis ik een beetje wat je probeert, kun je uitleggen wat je wilt bereiken?
Pagina: 1