[PHP] $_POST wordt niet gevuld?

Pagina: 1
Acties:
  • 173 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Ik heb een form gemaakt voor het bewerken van gegevens. De data wordt uit de database opgehaald en in de <input> velden gezet. Tot zover niets aan de hand. Als ik echter de page submit, worden de waarden niet opgeslagen in de $_POST, terwijl dat wel gebeurt als ik ze handmatig invul. Hieronder de relevante 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
require_once("cms_func.php");
$company = get_company($_SESSION['login_bedrijven']);

function check_edit_company_fields(){
return empty($_POST['company_email'])
        ||empty($_POST['country_code'])
        ||empty($_POST['state_code']) 
        ||empty($_POST['company_name']) 
        ||empty($_POST['company_address'])
        ||empty($_POST['company_city'])     
        ||empty($_POST['company_postal_code'])
        ||empty($_POST['company_password']) 
        ||empty($_POST['company_coc_code']) 
        ||empty($_POST['company_contact']);
}
?>

<form name="form1" method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>">
          <table width="75%" border="0">
            <tr>
              <td>Bedrijfsnaam</td>
              <td><input type="text" size="40" name="company_name" value="<?php echo($company->getCompanyName()); ?>"/></td>

//... enz

<tr>
              <td colspan="2"><input type="submit" name="submit" value="Bijwerken"/>
              <input name="reset" type="reset" value="Leegmaken"/></td>
            </tr>

//... enz
<?php
if(isset($_POST['submit']) && isset($_POST['verificationcode'])){
                        if(!check_edit_company_fields()){
// De functie check_edit_company_fields() retourneert dus false
?>


Waar heb ik al gezocht?
Op php.net, GoT, Google (maar daar krijg ik geen nuttige resultaten uit, misschien zoek ik verkeerd?).

Heeft er iemand een idee hoe het komt dat dat $_POST niet gevuld wordt?

Acties:
  • 0 Henk 'm!

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 12:26
wat is de output van je php-script?

Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Er is geen output. Ik wil de variabelen weer ophalen nadat ze eventueel gewijzigd zijn, en ze dan weer opslaan in de database, en daarna weer terugkeren naar de hoofdpagina, zeg maar.

Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Hij heeft het over de HTML-uitvoer die dit script oplevert, en die zou inderdaad wel eens hulp kunnen bieden. ;) Heb je misschien een testlinkje, of kun je de resulterende HTML even posten? :)

'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!

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 12:26
ik bedoel niet de output na de post, maar gewoon de output van het formulier

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verander eens, maakr debuggen wel makkelijker

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function check_edit_company_fields(){
print_r($_POST);
return empty($_POST['company_email'])
        ||empty($_POST['country_code'])
        ||empty($_POST['state_code']) 
        ||empty($_POST['company_name']) 
        ||empty($_POST['company_address'])
        ||empty($_POST['company_city'])     
        ||empty($_POST['company_postal_code'])
        ||empty($_POST['company_password']) 
        ||empty($_POST['company_coc_code']) 
        ||empty($_POST['company_contact']);
}

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
mwah, ik hoop dat ik jullie goed begrepen heb, onderstaand de html-code die geproduceerd wordt. Het is best een lap, maar zo heb je in ieder geval het hele plaatje

HTML:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<script language="javascript1.5">

// Nog te ontwikkelen functie die dynamisch
// de listbox met provincies bijwerkt na selectie
// van een land
function updateStates(){
    
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel='stylesheet' href='../css/spendsmart_cms.css' type='text/css' />
<title>CMS - Bedrijfsgegevens wijzigen</title>
</head>

<body>
<div class="pagecontent">
    <div class="header"><img src="../img/spendsmarttransp.gif" border="0px" usemap="#Map"/>
        <map name="Map" id="Map"><area shape="rect" coords="0,0,416,97" href="index.php" target="_self" /></map>

    </div>
    <div class="menu">
<!-- HET MENU IS EVEN WEG -->   
</div>

    
    <div class="content">
        <h2>Wijzigen</h2>
        Welkom, u kunt hier uw bedrijfsgegevens wijzigen. 
        <hr width="95%"/>
        <form name="form1" method="post" action="/spendsmart/cms/edit_company.php">
          <table width="75%" border="0">
            <tr>
              <td>Bedrijfsnaam</td>

              <td><input type="text" size="40" name="company_name" value="Jan's Bedrijf">blaat</td>
            </tr>
            <tr>
              <td>Contactpersoon </td>
              <td><input type="text" size="40" name="company_contact" value="Jan Dijs"/></td>
            </tr>
            <tr>
              <td>Rubriek</td>

              <td><select name="category_name" size="1" id="category_name">
                  <option value='DET'>Detailhandel</option>
<option value='Jan's rubriek'>Het is de rubriek die door Jan is aangemaakt</option>
<option value='STD'>Standaard categorie</option>
              </select></td>
            </tr>
            <tr>
              <td>E-Mail</td>

              <td><input type="text" size="40" name="company_email" disabled="disabled" value="jdjr@pn.nl"/></td>
            </tr>
            <tr>
              <td>Adres</td>
              <td><input type="text" size="40" name="company_address" value="Romy Schneiderweg"/></td>
            </tr>
            <tr>
              <td>Postcode</td>

              <td><input type="text" size="40" name="company_postal_code" value="1325LW"/></td>
            </tr>
            <tr>
              <td>Plaats</td>
              <td><input type="text" size="40" name="company_city" value="Almere"/></td>
            </tr>
            <tr>
              <td>Land</td>

              <td>
                  <select name="country_code" size="1" id="country_code">
                        <option value='BEL'>België</option>
<option value='NED'>Nederland</option>
                    </select>             
                </td>
            </tr>
            <tr>
              <td>Provincie</td>

              <td>
              
                 <select name="state_code" size="1" id="state_code">
                    <option value='DRN'>Drenthe</option>
<option value='FLE'>Flevoland</option>
<option value='FRL'>Friesland</option>
<option value='GLD'>Gelderland</option>
<option value='GRN'>Groningen</option>
<option value='LIM'>Limburg</option>

<option value='NBR'>Noord-Brabant</option>
<option value='NHL'>Noord-Holland</option>
<option value='OVR'>Overrijssel</option>
<option value='UTR'>Utrecht</option>
<option value='ZHL'>Zuid-Holland</option>
<option value='ZLD'>Zeeland</option>
                </select>             
                </td>
            </tr>

            <tr>
              <td>Website</td>
              <td><input type="text" size="40" name="company_website" value="http://www.osiris.hu.nl"/></td>
            </tr>
            <tr>
              <td>KvK nummer </td>
              <td><input type="text" size="40" name="company_coc_code" value="12345678910"/></td>
            </tr>

            <tr>
              <td>Logo</td>
              <td><input name="company_logo" type="file"/></td>
            </tr>
            <tr>
              <td>Wachtwoord</td>
              <td><input name="company_password" size="40" type="password"/></td>
            </tr>

            <tr>
              <td colspan="2"><p>Validatie</p>
              <p>Type de onderstaande code over:</p>
              <img src="../validation/image.php" border="0" alt="Verificatie-afbeelding" /> <br />
              <input type="text" name="verificationcode" id="verificationcode" size="12"  />          </td>
            </tr>
            <tr>

              <td colspan="2"><input type="submit" name="submit" value="Bijwerken"/>
              <input name="reset" type="reset" value="Leegmaken"/></td>
            </tr>
            <tr>
                <td colspan="2">
                                </td>
            </tr>
          </table>
        </form>

    </div>
    
    <div class="googleads">
        googleadje1<br />
        googleadje2
    </div>
    
    <div class="footer">
        Copyright &copy; 2006 by <a href="***" target="_blank">****</a>

    </div>
</div>
</body>
</html>

Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
@LuCarD:

heel vreemd. Die is gewoon gevuld, en ik heb ook nog even gekeken of er toevallig geen typo inzat, maar zelfs dat niet...

Ik zie het al: company_email wordt niet gevuld. Komt waarschijnlijk omdat het veld op disabled staat. Zucht.. |:(

DrClearBottom: inderdaad!

Voor de volledigheid nog even de resultaten van print_r($_POST):

code:
1
Array ( [company_name] => Jan\'s Bedrijf [company_contact] => Jan Dijs [category_name] => DET [company_address] => Romy Schneiderweg [company_postal_code] => 1325LW [company_city] => Almere [country_code] => BEL [state_code] => DRN [company_website] => http://www.osiris.hu.nl [company_coc_code] => 12345678910 [company_logo] => [company_password] => blaat [verificationcode] => [submit] => Bijwerken )

[ Voor 81% gewijzigd door coenbijlsma op 20-12-2006 14:59 ]


Acties:
  • 0 Henk 'm!

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 12:26
name="company_email" disabled="disabled"

Ik kan het verkeerd hebben, maar disabled elementen worden toch niet meegenomen in de post?
Dan zou je functie ook false teruggeven denk ik.

Edit: post anders ook even de resultaten van de print_r op je post-array
Edit2: haha, je bent niet de eerste die daar tegenaanloopt :P

[ Voor 27% gewijzigd door Daspeed op 20-12-2006 14:58 ]


Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Gelukkig maar, dat is een hele troost. Bedankt allemaal!

Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Kijk ook nog even naar regel 49. ;)

'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!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 20-09 00:03

hamsteg

Species 5618

Gebruik ipv disabled, readonly en de waarde wordt wel gepost maar is niet editable.

... gecensureerd ...


Acties:
  • 0 Henk 'm!

Verwijderd

Ik neem aan dat alle velden verplicht ingevuld moeten worden. Want jouw functie returnt ook false als bijvoorbeeld company_address niet is ingevuld

Acties:
  • 0 Henk 'm!

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
@Par0xism: Inderdaad, met uitzondering van de velden die niet in de functie staan.

@hamsteg: ik moet eerlijk toegeven dat ik het gewoon wel mooi vind staan als het veldje grijs is ipv het aanlokkelijke wit. Gaat de gebruiker toch proberen het te verwijderen -> backspace -> et voila, is hij weer op de vorige pagina. :S

Acties:
  • 0 Henk 'm!

  • H004
  • Registratie: Maart 2006
  • Laatst online: 28-05 19:55
Dan pas je toch het uiterlijk aan met css?

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 20-09 00:03

hamsteg

Species 5618

coenbijlsma schreef op woensdag 20 december 2006 @ 16:24:
@hamsteg: ik moet eerlijk toegeven dat ik het gewoon wel mooi vind staan als het veldje grijs is ipv het aanlokkelijke wit. Gaat de gebruiker toch proberen het te verwijderen -> backspace -> et voila, is hij weer op de vorige pagina. :S
Even inline:
HTML:
1
<input name="whatever" size="22" maxlength="64" value="Onzin" READONLY style="background-color: #e4e4e4;">

Het is gewoon fijn om te erop te kunnen vertrouwen dat je alle data gepost krijgt. Vaak zijn readonly velden namelijk ook de zoeksleutels.

[ Voor 15% gewijzigd door hamsteg op 21-12-2006 12:47 ]

... gecensureerd ...

Pagina: 1