[php] na nieuwe versie php foutje

Pagina: 1
Acties:
  • 31 views sinds 30-01-2008

  • Koelkasten
  • Registratie: Februari 2001
  • Laatst online: 02-07 00:29

Koelkasten

har har koelkast op je knar

Topicstarter
Okey ik heb op dde webserver een nieuwere versie van php staan als dat we op een andere webserver hebben staan. Precies dezelfde code werkt wel op de oudere php engine maar niet meer op de nieuwe.

de code is om een formulier te checken op ontbrekende velden. De velden worden uit het HTML form van een andere pagina meegegeven uit hidden fields. Het probleem wat ik met de nieuwe versie van php heb is dat hij altijd $correct op "no" zet en dus niet verder gaat met de rest van het script (wat verderop komt) waar hij het formulier ook gaat mailen zeg maar. ook al zijn er geen verplichte velden of zijn alle verplichte velden ingevult hij blijft $ correct op NO zetten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ($_SERVER ["REQUEST_METHOD"]== "POST" )
 { 
      $correct = "yes"; 
      $message = ""; 

      #Check voor verplichte velden 
      $check_required = split(",", $_POST["required"]); 
      for($i=0; $i<count($check_required); $i++) 
      { 
       if(strlen($$check_required[$i]) < 1) 
          { 
              echo("U bent vergeten het veld <B>". $check_required[$i] ."</B> in te vullen.<P>"); 
              $correct = "no"; 
          } 
      }



Makkelijke oplossing is natuurlijk de net iets oudere versie van php terug zetten op die andere server maar dat is een workaround geen echte oplossing.

Sommige mensen....


Verwijderd

waarom die dubbele $ bij $$check_required?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Nokia:
waarom die dubbele $ bij $$check_required?
Omdat dat een hele vieze manier is, voor de manier de je eigenlijk zou moeten gebruiken, en nou wil 't geval dat de juiste manier precies overeenkomt met wat je zou moeten veranderen om het in de nieuwe versie van PHP te laten werken.

Het is namelijk heel basic een array-vraag:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$check_required = split(",", $_POST["required"]); 
// overigens is er wat voor te zeggen hier foreach te gebruiken:
for($i=0; $i<count($check_required); $i++) { 
   // let op:
   if ( strlen ( $_POST [ $check_required[$i] ] ) < 1 ) { 
       echo(
         "U bent vergeten het veld <B>". 
             $check_required[$i] 
         ."</b> in te vullen.<P>"); 
      $correct = "no"; 
   } 
}


Eigenlijk heel eenvoudig, en met een beetje nadenkwerk was je daar best wel uitgekomen.

[ Voor 3% gewijzigd door drm op 02-03-2003 15:01 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Dit topic is gesloten.