[php] eregi probleempje

Pagina: 1
Acties:

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Ik wil met eregi een beperking op een veld leggen (alleen A of B) en dacht dat te doen zoals hieronder staat, maar dan krijg ik de foutmelding sowieso in beeld. Kan iemand mij vertellen wat ik verkeerd doe?
PHP:
1
<?$FileName = "broche" . session_id()  . ".txt";//echo " $FileName ";$aantalregels = 50 ;include ("libFlatTable.php");if ($submit1 == "submit"){    if (!eregi("[A-B]", $kleurnummer)){        $Table = array();        $Table["kleurnummer"]    = $kleurnummer;        $Table["voornaam"]       = $voornaam;        WriteTableFile("$FileName", $Table);    }    else {                echo " Alleen A of B ";         }}else    {     if (file_exists($FileName))       {         $Table = ReadTableFile($FileName);        $kleurnummer     = $Table["kleurnummer"];        $voornaam       = $Table["voornaam"];       }     else         {           $tekst = "" ;         }    }?><form action="bestelformulier_broche.php" method="post" name="mainform1" id="mainform1"><?php    for($regelteller = 0;$regelteller < $aantalregels;$regelteller++)    {     echo '<input type="text" name="kleurnummer['.$regelteller.']" value="'.$kleurnummer[$regelteller].'" size="1" maxlength="1">';     echo '<input type="text" name="voornaam['.$regelteller.']" value="'.$voornaam[$regelteller].'" size="40" maxlength="40"><br>';    }?><input type="submit" name="submit1" value="submit" class="button"></form>?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

$accepted_colors = array('A', 'B');

if(in_array($kleurnummer, $accepted_colors))

Is imho iets netter om dat te checken.

Verwijderd

in dit geval (met maar 2 keuzes) is zelfs if($kleurnummer == "A" or $kleurnummer == "B") ook wel een optie.

en in geval van a, A, b, B misschien iets als if(uppercase($kleurnummer) == "A" or uppercase($kleurnummer) == "B"), maar dan is ACM's oplossing wat efficienter.

Ik wil je ook als tip geven alleen het relevante stukje code te posten :>

  • Skef
  • Registratie: April 2001
  • Laatst online: 01-09 15:32

Skef

Ik scheer.me

[off-topic]
Mitsah, je hebt mail: info@veiljegek
Gr. Sander
[/off-topic]

Ik zou ook voor de methode van ACM gaan, deze is minder belastend voor de server dan een eregi...

"Computer games don’t affect kids: I mean if Pac-Man affected us as kids, we’d all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."


  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Ik heb nu dit maar werkt nog niet. Ik kan gewoon waarde Z invullen bijvoorbeeld. Ik neem aan dat ik de code van ACM zo in mijn code moest zetten, of heb ik het verkeerd gedaan?
PHP:
1
<?$accepted_colors = array('A', 'B');if ($submit1 == "submit"){        $Table = array($kleurnummer, $accepted_colors);        $Table["kleurnummer"]    = $kleurnummer;        $Table["voornaam"]       = $voornaam;        WriteTableFile("$FileName", $Table);}else    {     echo " Alleen A of B invoeren aub! ";    }         if (file_exists($FileName))       {         $Table = ReadTableFile($FileName);        $kleurnummer     = $Table["kleurnummer"];        $voornaam       = $Table["voornaam"];       }     else         {           $tekst = "" ;         }?>

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 14:19
Waar is je IF :? |:(

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 14:54 schreef ddc het volgende:
Waar is je IF :? |:(
?Ik begrijp je niet!

Verwijderd

if(eregi([^a,b],$jadajada) {
#fout
}

Verwijderd

Gewoon even hier: [url="http://www.javaregex.com/cgi-bin/pat/test.asp"]http://www.javaregex.com/cgi-bin/pat/test.asp[/url]

testen

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 13:14

CyeZ

Vroem vroem!!!

Op maandag 22 juli 2002 14:56 schreef Mitsah het volgende:

[..]

?Ik begrijp je niet!
Uit post van ACM:
if(in_array($kleurnummer, $accepted_colors))
Waar heb je die code gelaten? :?

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 14:19
Mitsah:
?Ik begrijp je niet!
Jij niet begrijp?
Jij eerst cursus volgen!

Verwijderd

Op maandag 22 juli 2002 13:43 schreef ACM het volgende:
$accepted_colors = array('A', 'B');

if(in_array($kleurnummer, $accepted_colors))

Is imho iets netter om dat te checken.
if($accepted_colors[$kleurnummer])

best omslachtig dus

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 15:06 schreef ddc het volgende:

[..]

Jij niet begrijp?
Jij eerst cursus volgen!
Laten we een beetje vriendelijk blijven! :(

Verwijderd

Op maandag 22 juli 2002 13:32 schreef Mitsah het volgende:
Ik wil met eregi een beperking op een veld leggen (alleen A of B) en dacht dat te doen zoals hieronder staat, maar dan krijg ik de foutmelding sowieso in beeld. Kan iemand mij vertellen wat ik verkeerd doe?
PHP:
1
&lt;?$FileName = &quot;broche&quot; . session_id()  . &quot;.txt&quot;;//echo &quot; $FileName &quot;;$aantalregels = 50 ;include (&quot;libFlatTable.php&quot;);if ($submit1 == &quot;submit&quot;){    if (eregi(&quot;[^a,b]&quot;, $kleurnummer)){        $Table = array();        $Table[&quot;kleurnummer&quot;]    = $kleurnummer;        $Table[&quot;voornaam&quot;]       = $voornaam;        WriteTableFile(&quot;$FileName&quot;, $Table);    }    else {                echo &quot; Alleen A of B &quot;;         }}else    {     if (file_exists($FileName))       {         $Table = ReadTableFile($FileName);        $kleurnummer     = $Table[&quot;kleurnummer&quot;];        $voornaam       = $Table[&quot;voornaam&quot;];       }     else         {           $tekst = &quot;&quot; ;         }    }?&gt;&lt;form action=&quot;bestelformulier_broche.php&quot; method=&quot;post&quot; name=&quot;mainform1&quot; id=&quot;mainform1&quot;&gt;&lt;?php    for($regelteller = 0;$regelteller &lt; $aantalregels;$regelteller++)    {     echo '&lt;input type=&quot;text&quot; name=&quot;kleurnummer['.$regelteller.']&quot; value=&quot;'.$kleurnummer[$regelteller].'&quot; size=&quot;1&quot; maxlength=&quot;1&quot;&gt;';     echo '&lt;input type=&quot;text&quot; name=&quot;voornaam['.$regelteller.']&quot; value=&quot;'.$voornaam[$regelteller].'&quot; size=&quot;40&quot; maxlength=&quot;40&quot;&gt;&lt;br&gt;';    }?&gt;&lt;input type=&quot;submit&quot; name=&quot;submit1&quot; value=&quot;submit&quot; class=&quot;button&quot;&gt;&lt;/form&gt;?&gt;

dat moet hem zijn

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 15:05 schreef CyeZ het volgende:

[..]


[..]

Waar heb je die code gelaten? :?
Aha, dan had ik dat verkeerd begrepen. Ik heb het nu zo gedaan:
PHP:
1
&lt;?$accepted_colors = array('A', 'B');if(in_array($kleurnummer, $accepted_colors)){    if ($submit1 == &quot;submit&quot;){        $Table = array();        $Table[&quot;kleurnummer&quot;]    = $kleurnummer;        $Table[&quot;voornaam&quot;]       = $voornaam;        WriteTableFile(&quot;$FileName&quot;, $Table);    }    else        {             echo &quot; Alleen A of B invoeren aub! &quot;;        }        if (file_exists($FileName))       {         $Table = ReadTableFile($FileName);        $kleurnummer     = $Table[&quot;kleurnummer&quot;];        $voornaam       = $Table[&quot;voornaam&quot;];       }     else         {           $tekst = &quot;&quot; ;         }}?&gt;

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 15:11 schreef matthijs_c het volgende:
Op maandag 22 juli 2002 13:32 schreef Mitsah het volgende:
Ik wil met eregi een beperking op een veld leggen (alleen A of B) en dacht dat te doen zoals hieronder staat, maar dan krijg ik de foutmelding sowieso in beeld. Kan iemand mij vertellen wat ik verkeerd doe?
PHP:
1
&lt;?$FileName = &quot;broche&quot; . session_id()  . &quot;.txt&quot;;//echo &quot; $FileName &quot;;$aantalregels = 50 ;include (&quot;libFlatTable.php&quot;);if ($submit1 == &quot;submit&quot;){    if (eregi(&quot;[^a,b]&quot;, $kleurnummer)){        $Table = array();        $Table[&quot;kleurnummer&quot;]    = $kleurnummer;        $Table[&quot;voornaam&quot;]       = $voornaam;        WriteTableFile(&quot;$FileName&quot;, $Table);    }    else {                echo &quot; Alleen A of B &quot;;         }}else    {     if (file_exists($FileName))       {         $Table = ReadTableFile($FileName);        $kleurnummer     = $Table[&quot;kleurnummer&quot;];        $voornaam       = $Table[&quot;voornaam&quot;];       }     else         {           $tekst = &quot;&quot; ;         }    }?&gt;&lt;form action=&quot;bestelformulier_broche.php&quot; method=&quot;post&quot; name=&quot;mainform1&quot; id=&quot;mainform1&quot;&gt;&lt;?php    for($regelteller = 0;$regelteller &lt; $aantalregels;$regelteller++)    {     echo '&lt;input type=&quot;text&quot; name=&quot;kleurnummer['.$regelteller.']&quot; value=&quot;'.$kleurnummer[$regelteller].'&quot; size=&quot;1&quot; maxlength=&quot;1&quot;&gt;';     echo '&lt;input type=&quot;text&quot; name=&quot;voornaam['.$regelteller.']&quot; value=&quot;'.$voornaam[$regelteller].'&quot; size=&quot;40&quot; maxlength=&quot;40&quot;&gt;&lt;br&gt;';    }?&gt;&lt;input type=&quot;submit&quot; name=&quot;submit1&quot; value=&quot;submit&quot; class=&quot;button&quot;&gt;&lt;/form&gt;?&gt;

dat moet hem zijn
Geprobeerd maar hij geeft geen foutmelding op bijvoorbeeld Z ofzo

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 14:19
Wat voor foutmeling dan? :(

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 15:23 schreef ddc het volgende:
Wat voor foutmeling dan? :(
als er iets anders dat A of B ingevuld wordt moet ie zeggen:

Alleen A of B

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 14:19
Je hebt toch ook geen else statement onderaan gemaakt |:(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 22 juli 2002 15:09 schreef matthijs_c het volgende:

[..]

if($accepted_colors[$kleurnummer])

best omslachtig dus
Maar jouw code is niet hetzelfde als de mijne ;)
Jouw code is vies :+
Je slaat de "isset" over en je kijkt niet of het een waarde heeft, maar kijkt of de array-waarde valideerbaar is tot een boolean (met de waarde true).

Als er op $accepted_colors['A'] toevallig 0 had gestaan heb je een probleem, terwijl ie wel geset is.
Daarnaast kijk je naar de index van het array en niet of een waarde erin zit.

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 13:43 schreef ACM het volgende:
$accepted_colors = array('A', 'B');

if(in_array($kleurnummer, $accepted_colors))

Is imho iets netter om dat te checken.
Met jouw oplossing heb ik de volgende code gekregen (ik hoop dat dit is wat je bedoelt), maar het werkt niet. Wat doe ik nu verkeerd?

Ik heb bij de eerste else een echo gezet. Er komt fout! Array op mijn scherm te staan!
PHP:
1
&lt;?$accepted_colors = array('A', 'B');if ($submit1 == &quot;submit&quot;) {    if(in_array($kleurnummer, $accepted_colors)) {        $Table = array();        $Table[&quot;kleurnummer&quot;] = $kleurnummer;        $Table[&quot;voornaam&quot;]       = $voornaam;        WriteTableFile(&quot;$FileName&quot;, $Table);    }    else {            echo &quot; fout! $kleurnummer&quot;;         }}else {      if (file_exists($FileName)) {             $Table = ReadTableFile($FileName);            $kleurnummer = $Table[&quot;kleurnummer&quot;];            $voornaam       = $Table[&quot;voornaam&quot;];      }      else {                   $tekst = &quot;&quot; ;           }}?&gt;

  • Grum
  • Registratie: Juni 2001
  • Niet online
print_r( $kleurnummer );

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Op maandag 22 juli 2002 16:29 schreef Grum het volgende:
print_r( $kleurnummer );
Ok nu kan ik de array uitlezen, maar werkt de code nog niet. Ik kan zonder foutmelding een andere letter dan a en b invullen
Pagina: 1