Functie in php script werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Willems

Robert Willems

14/02/2012 14:51:43
Quote Anchor link
Hallo mede-scripters!

Ik gebruik onderstaand script om klantgegevens aan een database toe te voegen. Nu heb ik hem ook in gebruik genomen op een tweede website, echter werkt daar 1 functie in het script niet. Normaal hoort het zo te werken dat wanneer je een provincie selecteert (bijv. Utrecht) dat je dan als plaats alleen de plaatsen kunt kiezen welke in de provincie Utrecht liggen. Deze zitten allemaal in mijn database onder de tabel "plaatsen". Nu laad hij echter de juiste plaatsen niet, hij blijft gewoon staan op de tekst "Selecteer eerst een provincie".

Ik kom er zelf niet uit, vandaar dat ik jullie hulp vraag. Het enige verschil wat ik vind is de versie in PHP en MySQL. Misschien weten de mensen hier of er daar een update in zit van een van de functies die ik gebruik. Daar ben ik zelf niet van op de hoogte namelijk.

Op de server waar het script wel naar behoren werkt draait het volgende:

PHP: 5.2.17
MySQL: 4.1.22

Op de server waar hij niet naar behoren werkt draait het volgende:

PHP: 5.3.3-7
MySQL: 5.1.49

Hieronder het script (ik post het maar in zijn geheel, dan kan ik niets missen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
<?
[code]<?
session_start();
$curr_gever = 1;
error_reporting(E_ALL);
include_once("../includes/functions.php");
 $nieuwsbr = true;
//al ingelogd zo ja dan einde
if ($_SESSION["valid_drie"] && $_SESSION["valid_vier"]) {
    $url = WEBSITE_URL."/bedrijven/";
    header("Location: $url");
    exit;
}

// standaard waarden
$formulier = TRUE;
$geslacht="1"; $geboortejaar = date("Y")-16;
//formulier verwerken
if (isset($_POST["submitreg"]) && $_SERVER['REQUEST_METHOD'] == 'POST' ){
    
    $aFout = array();
    $email = StripDanger($_POST['email']);
    $email2 = StripDanger($_POST['email2']);
    $wachtwoord = StripDanger($_POST['wachtwoord']);
    $wachtwoord2 = StripDanger($_POST['wachtwoord2']);

    $bedrijf = StripDanger($_POST['bedrijf']);
    $brancheid = StripDanger($_POST['branche']);
    $contact = StripDanger($_POST['contact']);
    $mobiel = StripDanger($_POST['mobiel']);
    $adres = StripDanger($_POST['adres']);
    
    $postcode = StripDanger($_POST['postcode']);
    $woonplaats = StripDanger($_POST['woonplaats']);
    $provincie = StripDanger($_POST['provincie']);
    if($provincie == "Buitenland")
        $status_bl = 'block';
        else $status_bl = 'none';
    $plaats_bl = StripDanger($_POST['plaats_bl']);
    $telefoon = StripDanger($_POST['telefoon']);
    $fax = StripDanger($_POST['fax']);
    $website = StripDanger($_POST['website']);
    if(!empty($website) && !preg_match("http://", $website))
        $website = "http://".$website;
    
    $omschrijving = htmlspecialchars($_POST["omschrijving"],ENT_QUOTES);
    $trefwoorden = htmlspecialchars($_POST["trefwoorden"],ENT_QUOTES);

    $trefwoorden = substr($trefwoorden ,0,255);
    
    if(isset($_POST["nieuws"]))
    $nieuwsbr = "1";
    else $nieuwsbr = false;
    
    $av = StripDanger($_POST['av']);
    
            if(empty($bedrijf)  || preg_match("/[<>]/i", $bedrijf) )
        {

            $aFout[] = "Er is geen Bedrijfsnaam ingevuld";
            $bedrijf= "";
            
        }

           if(empty($brancheid)  || preg_match("/[<>]/i", $brancheid) )
        {

            $aFout[] = "Er is geen branche ingevuld";
            $brancheid = "";
            
        }

            if(empty($contact)  || preg_match("/[<>]/i", $contact) )
        {

            $aFout[] = "Er is geen contact persoon ingevuld";
            $contact= "";
            
        }

         if(empty($mobiel)  || preg_match("/[<>]/i", $mobiel) )
        {

            $aFout[] = "Er is geen mobiel telefoonnummer ingevuld";
            $mobiel= "";
            
        }

            if(empty($adres)  || preg_match("/[<>]/i", $adres) )
        {

            $aFout[] = "Er is geen adres ingevuld";
            $adres= "";
            
        }
        
            if(empty($postcode)  || preg_match("/[<>]/i", $postcode) )
        {

            $aFout[] = "Er is geen postcode ingevuld";
            $postcode= "";
            
        }
    
            if(empty($woonplaats)  || preg_match("/[<>]/i", $woonplaats) )
        {

            $aFout[] = "Er is geen plaats ingevuld";
            $woonplaats= "";
            
        }
    
        if($provincie == "Buitenland" && empty($plaats_bl) )
        {

            $aFout[] = "Er is geen plaats buitenland ingevuld";
            $plaats_bl= "";
            
        }

       /*     if(empty($telefoon)  || preg_match("/[<>]/i", $telefoon) )
        {
            $aFout[] = "Er is geen telefoonnummer ingevuld";
            $telefoon= "";
            
        } */

            if(empty($omschrijving)  || preg_match("/[<>]/i", $omschrijving) )
        {

            $aFout[] = "Er is geen omschrijving ingevuld";
            $omschrijving= "";
            
        }

            if(empty($trefwoorden)  || preg_match("/[<>]/i", $trefwoorden) )
        {

            $aFout[] = "Vul a.u.b. enkele trefwoorden in";
            $woonplaats= "";
            
        }

        //XXXXXXXXXXXXXXXx            




            //zijn er fouten  ander verwerken    

 if(!empty( $aFout ))
        {

            $errors = '
            <div id="errors" class="warn">
            <ul>'
;
            foreach($aFout as $sFout)

            {

                $errors .= "    <li>".$sFout."</li>\n";
            }

            $errors .= "</ul>
            </div>"
;
        }

        else{
        
        // plaats buitenland fix
        if($provincie == "Buitenland")
        $woonplaats = "$plaats_bl , $woonplaats";
        
        // geen fouten opslaan
        $time = time();
        $valid = "1";
        $emailmd = md5(STD_WG_MAIL.$email);
        $wachtwoordmd = md5(STD_WG_PASS.$wachtwoord);
        $omschrijving = mysql_real_escape_string($omschrijving);
        
        //coordinaten erbij zoeken
        if($provincie == "Buitenland")
        $gadress    = urlencode("$adres, $woonplaats");
        $gadress    = urlencode("$adres, $woonplaats, $provincie, netherlands");
        $urladdress = "http://maps.google.com/maps/geo?q=$gadress&output=csv&key=".STD_GOOGLE_MAPS;
        $geocode = htmlspecialchars(include_remote($urladdress));
        
        $splitxx = explode(",", $geocode);
        $gstatuscode = "$splitxx[0]";
        if($gstatuscode==200){
            $glatitude  = round($splitxx[2],6);
            $glongitude  = round($splitxx[3],6);    
        }

        else{
            $glatitude= "";
            $glongitude = "";                
        }

        // gratis maanden? zo ja invoeren, anders 0
        if(STD_MAANDEN>0)
        $validto = time()+(STD_MAANDEN*2678400);
        else $validto = 0;
        
        $sql_insert = "insert into werkgever
                    (email, bedrijf, wgbranche, contactpersoon, mobiel, adres, postcode,
                    woonplaats, provincie, glatti, glongg, telefoon, fax, website, lidsinds, validto, verlengd, valid, omschrijving,trefwoorden,receivemail)
                    values
                    ('$email', '$bedrijf', '$brancheid', '$contact', '$mobiel', '$adres','$postcode',
                    '$woonplaats', '$provincie', '$glatitude', '$glongitude', '$telefoon', '$fax', '$website', '$time', '$validto', '$time', '$valid','$omschrijving','$trefwoorden','$nieuwsbr')"
;
        $result = mysql_query($sql_insert);
        
        $klantenid = mysql_insert_id() or die("Ongeldige query: " . mysql_error());    
        
        if($klantenid){
            
        echo "Bedrijf toegevoegd!";
        
        }

        
        }
    
    
}


        
        

// content ophalen
$sql_content_result = mysql_query("select titel,content from content where ctid = 7 limit 1");
$rowContent = mysql_fetch_assoc($sql_content_result);
$contText = html_entity_decode($rowContent["content"]);
    $conttitel = html_entity_decode($rowContent["titel"]);
        
        
//meta
$tophead = 3;
$meta_omsch = trim(substr(strip_tags($contText),0,250));
$meta_titel = trim(substr(strip_tags($conttitel),0,250));

$headeradding = "<script type=\"text/javascript\" src=\"./screen/ajax.js\"></script>
<script type=\"text/javascript\" src=\"./screen/ajax2.js\"></script>\n"
;

include("header.php"); ?>



  <?
    echo "<h1>Bedrijf toevoegen</h1>";
    echo '<div class="leftcontent">';
    
      if(isset($MSG)) echo $MSG;
    
    
    if($formulier){
    
    
    if(isset($errors)) echo $errors;
?>


<script>
function findselected(){
var provincie = document.getElementById('provincie');
var bl = document.getElementById('bl');
(provincie.value == "Buitenland")? bl.style.display = 'block' : bl.style.display = 'none'
}
</script>
   <form id="form_sub" name="form_sub" method="post" action="<? echo WEBSITE_URL."/beheer/bedrijftoevoegen.php"; ?>">
    <h3>Bedrijf toevoegen:</h3>
    <p>
      <label>Bedrijfsnaam: * </label>
      <input name="bedrijf" type="text" id="bedrijf" value="<? echo $bedrijf; ?>" />
    </p>
    <p><label>Branche: *</label>
      <select id="branche" name="branche" style="width:220px">
        <option value="">--Kies--</option>
        <? $sql_links = "select brancheid,branche from branche order by branche ASC";
                $result = mysql_query ($sql_links);
                while ($row = mysql_fetch_assoc($result))
                {

                $brancheidx = $row["brancheid"];
                $branche = html_entity_decode($row["branche"]);
                echo "<option value='$brancheidx' ".(($brancheidx==$brancheid) ? 'selected=\"selected\"' : '').">$branche</option>\n";
            
                }

                ?>

      </select>
    </p>
    <p>
      <label>Contact persoon: * </label>
      <input name="contact" type="text" id="contact" value="<? echo $contact; ?>" />
    </p>
    <p>
      <label>Adres: * </label>
      <input name="adres" type="text" id="adres" value="<? echo $adres; ?>" />
    </p>
    <p>
      <label>Postcode: * </label>
      <input name="postcode" type="text" id="postcode" value="<? echo $postcode; ?>" />
    </p>

      <p><label>Provincie *</label>
      <select name='provincie' id="provincie" style="width:220px" onchange="getPlaatsenlijst(this);findselected()">
            <option value="">-- Kies een provincie --</option>
            <option value="drenthe"<? if($provincie =="drenthe") echo ' selected="selected"';?>>Drenthe</option>
            <option value="flevoland"<? if($provincie =="flevoland") echo ' selected="selected"';?>>Flevoland</option>            
            <option value="friesland"<? if($provincie =="friesland") echo ' selected="selected"';?>>Friesland</option>
            <option value="groningen"<? if($provincie =="groningen") echo ' selected="selected"';?>>Groningen</option>
            <option value="gelderland"<? if($provincie =="gelderland") echo ' selected="selected"';?>>Gelderland</option>
            <option value="limburg"<? if($provincie =="limburg") echo ' selected="selected"';?>>Limburg</option>            
            <option value="noord-brabant"<? if($provincie =="noord-brabant") echo ' selected="selected"';?>>Noord-Brabant</option>
            <option value="noord-holland"<? if($provincie =="noord-holland") echo ' selected="selected"';?>>Noord-holland</option>
            <option value="overijssel"<? if($provincie =="overijssel") echo ' selected="selected"';?>>Overijssel</option>            
            <option value="utrecht"<? if($provincie =="utrecht") echo ' selected="selected"';?>>Utrecht</option>            
            <option value="zeeland"<? if($provincie =="zeeland") echo ' selected="selected"';?>>Zeeland</option>
            <option value="zuid-holland"<? if($provincie =="zuid-holland") echo ' selected="selected"';?>>Zuid-holland</option>
            <option value="Buitenland"<? if($provincie =="Buitenland") echo ' selected="selected"';?>>Buitenland</option>
        </select> </p>
            <p>
      <label>Plaats: * </label>
          <select name='woonplaats' id="woonplaats" style="width:220px" class="sellarg">
                <?
        
                if(isset($provincie)){
                
                $up_prov_result = mysql_query("select plaats from plaatsen where provincie = '$provincie' order by plaats ASC");
                while ($plaats_user = mysql_fetch_assoc($up_prov_result)){
                        
                        
                        $prov_plaats = feedschoon($plaats_user["plaats"]);
                        
                        if($prov_plaats!="")                    
                        echo "<option value=\"".$prov_plaats."\""; if($woonplaats==$prov_plaats) echo ' selected="selected"'; echo ">".$prov_plaats."</option> \n" ;
                        unset($prov_plaats);
                
                        }
                
                }

                else echo "<option value=''>Kies eerst een provincie</option>";      
        ?>

      </select>
    </p>
        <p id="bl" style="display:<?=$status_bl?>">
      <label>Plaats buitenland: * </label>
      <input name="plaats_bl" type="text" id="plaats_bl" value="<? echo $plaats_bl; ?>" />
    </p>
    <p>
      <label>Telefoon:  </label>
      <input name="telefoon" type="text" id="telefoon" value="<? echo $telefoon; ?>" />
    </p>
    <p>
      <label>Mobiel: * </label>
      <input name="mobiel" type="text" id="mobiel" value="<? echo $mobiel; ?>" />
    </p>
    <p>
      <label>Fax: </label>
      <input name="fax" type="text" id="fax" value="<? echo $fax; ?>" />
    </p>
        <p>
      <label>Website: </label>
      <input name="website" type="text" id="website" value="<? echo $website; ?>" />
    </p>
    <p>
      <label>E-mail: *</label>
      <input name="email" type="text" id="email" value="<? echo $email; ?>" />
    </p>
    <p class="space">
      <label>Bedrijfsomschrijving:</label>
      <textarea name="omschrijving" id="textarea" style="height:300px; width:350px;"><? echo $omschrijving; ?></textarea>
    </p>
        <p>
      <label>Trefwoorden: *</label>
      <input name="trefwoorden" type="text" id="trefwoorden" value="<? echo $trefwoorden; ?>" />
    </p>
    <p class="small"><label>&nbsp;</label>Geef enkele trefwoorden op als bijv.: bloemist, computerreparatie, timmerman o.i.d.</p>
    
      <label>&nbsp; </label>
     <input name="submitreg" type="hidden" value="submitreg" />
        <input type="submit" id="submitReg2" name="submitReg2" value="Aanmelden" class="knop"
            onclick="javascript:document.getElementById('submitReg2').disabled=true;javascript:document.getElementById('submitReg2').value='Een moment a.u.b.';javascript:document.form_sub.submit();" />
    </p>
  </form>
  <? } ?>
</div>
?>


Toevoeging op 14/02/2012 14:52:50:

Om het even duidelijk aan te geven, het gaat dus om dit gedeelte wat het niet doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
        
                if(isset($provincie)){
                
                $up_prov_result = mysql_query("select plaats from plaatsen where provincie = '$provincie' order by plaats ASC");
                while ($plaats_user = mysql_fetch_assoc($up_prov_result)){
                        
                        
                        $prov_plaats = feedschoon($plaats_user["plaats"]);
                        
                        if($prov_plaats!="")                    
                        echo "<option value=\"".$prov_plaats."\""; if($woonplaats==$prov_plaats) echo ' selected="selected"'; echo ">".$prov_plaats."</option> \n" ;
                        unset($prov_plaats);
                
                        }
                
                }

                else echo "<option value=''>Kies eerst een provincie</option>";      
        ?>
Gewijzigd op 15/02/2012 11:10:14 door Robert Willems
 
PHP hulp

PHP hulp

08/11/2024 17:06:54
 
Stephan Hendrikx

Stephan Hendrikx

14/02/2012 14:55:41
Quote Anchor link
je gebruikt de functie eregi, deze is deprecated vanaf 5.3.

Even googelen wat de vervanger zou moeten zijn, volgens mij preg_match?

maar dit zou duidelijk moeten worden via je error_reporting.
Gewijzigd op 14/02/2012 15:00:11 door Stephan Hendrikx
 
Obelix Idefix

Obelix Idefix

14/02/2012 15:32:27
Quote Anchor link
Waarom plaats je 300+ regels als het om slechts 20 regels gaat?
Misschien maar goed ook:
Waarom al die variabelen kopiëren?
Variabelen buiten quotes.
Zou je willen adviseren om bij je if-statements { en } te gebruiken.
Gebruik binnen PHP zoveel mogelijk ' en in html ". Scheelt escapen.
Bouw foutafhandeling in. Soms gebruik je 'or die', wat al niet geweldig is en ook query's zonder foutafhandeling.

En schakel idd error-reporting in.
 
Robert Willems

Robert Willems

14/02/2012 16:24:18
Quote Anchor link
Hartstikke bedankt voor de reacties tot nu toe. Ik ga er eens naar kijken (ook naar jouw opbouwende kritiek Obelix).

Toevoeging op 15/02/2012 11:03:04:

Ik ben er nu mee bezig geweest en ik heb als eerste de eregi functie vervangen door preg_match. Hij geeft daar nu geen foutmeldingen over via error_reporting(E_ALL) echter werkt de functie waar ik het over heb nog steeds niet.

Moet ik het in de functie findselected() van javascript gaan zoeken misschien? Kan dat een conflict vormen i.c.m. de nieuwe PHP en MySQL versie?
Gewijzigd op 15/02/2012 11:09:57 door Robert Willems
 
Robert Willems

Robert Willems

16/02/2012 16:34:11
Quote Anchor link
Zou iemand mij hier nog mee kunnen helpen? Het is mij nog niet gelukt.
 
Robert Willems

Robert Willems

21/02/2012 09:24:20
Quote Anchor link
Toch nog maar even een subtiel kickje. Ik weet even niet waar ik het in moet zoeken :)
 
Reshad F

Reshad F

21/02/2012 10:14:51
Quote Anchor link
Hoort bij de
Else geen accolades?
 
Robert Willems

Robert Willems

21/02/2012 13:28:11
Quote Anchor link
Ik heb het eventjes nagelopen en volgens mij staan de accolades goed.
 
Reshad F

Reshad F

21/02/2012 13:36:20
Quote Anchor link
je laatste regel kijk daar is naar

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

                else echo "<option value=''>Kies eerst een provincie</option>";  

// moet dit niet zijn

                else { echo "<option value=''>Kies eerst een provincie</option>";     }
  
?>
 
Robert Willems

Robert Willems

21/02/2012 13:45:05
Quote Anchor link
Nee, dat maakt geen verschil Reshadd. Helaas.
 
Obelix Idefix

Obelix Idefix

21/02/2012 13:48:52
Quote Anchor link
Onder bepaalde omstandigheden hoeven er geen { } gebruikt te worden. Aan te raden is echter om dit consequent wel te doen. Heb daar TS al eerder op gewezen.

Weet je zeker dat dit script (en alles wat er verder nodig is) helemaal gelijk is aan het andere?
Zie staan : onchange="getPlaatsenlijst(this);findselected()">
Die findselected kan ik ergens terugvinden, maar waar wijst die getPlaatsenlijst naar?
Komt die uit ./screen/ajax2.js ? Bestaat die wel?
 
Robert Willems

Robert Willems

21/02/2012 14:49:17
Quote Anchor link
Inderdaad Obelix, daar heb je me op gewezen. Ik had echter niet het idee dat het daar aan kon liggen, vandaar dat ik het nog niet gedaan had. Nu wel. Nogmaals bedankt voor de tip!

Ik zit nu inderdaad te kijken naar het benaderen van de .js files (dit had ik zelf al eerder gedaan) en ik vermoed dat het hier verkeerd gaat. Alsof hij de functie in de .js bestanden niet "pakt".

Waar het php script zich bevind is momenteel hier: beta/beheer/toevoegen.php en de .js files zitten in beta/screen/ajax.js en ajax2.js. Nu heb ik in mijn script ../screen/ajax.js en ajax2.js neergezet maar dit lukt niet. Hier ga ik even mee puzzelen.
Gewijzigd op 21/02/2012 14:51:45 door Robert Willems
 
Robert Willems

Robert Willems

27/02/2012 09:40:17
Quote Anchor link
Iemand nog tips? Nergens heb ik problemen mee met de nieuwe PHP + MySQL versie, maar deze functie krijg ik gewoon niet aan de praat.
 
Obelix Idefix

Obelix Idefix

27/02/2012 17:10:13
Quote Anchor link
Robert Willems op 21/02/2012 14:49:17:
Hier ga ik even mee puzzelen.

Wat is er uit dat puzzelen gekomen?
Hoe is dat op de andere site ingesteld (paden)?
Gaat het om 2 js bestanden of zitten daarin ook nog verwijzingen/zijn er meer bestanden?
 
Robert Willems

Robert Willems

28/02/2012 15:34:07
Quote Anchor link
@Obelix en Idefix:

Nou, vrij weinig eerlijk gezegd. 100% zeker dat de paden goed zijn. Op die andere website is het identiek, behalve dat deze in een map genaamd "beta" draait ipv gewoon de root. Dit heeft voorderest echter geen invloed op deze paden.

Het gaat inderdaad om de 2 .js bestanden (welke in de map "screen" staan) en twee bestanden in een "functions" map. Beide zitten een stap dichterbij de root, dus ../screen/ en ../includes/.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.