View Full Version : help with eval
Boofo
08-24-2002, 06:59 AM
Can anyone please tell me how to add an eval statement to this so I can put the information into a template? I know it's simple, I just can't see it. :)
if (($bday[2]>=21 and $bday[1]==3) or ($bday[2]<=19 and $bday[1]==4)) {
$zodiacsign="Aries";
} else if (($bday[2]>=20 and $bday[1]==4) or ($bday[2]<=20 and $bday[1]==5)) {
$zodiacsign="Taurus";
} else if (($bday[2]>=21 and $bday[1]==5) or ($bday[2]<=20 and $bday[1]==6)) {
$zodiacsign="Gemini";
} else if (($bday[2]>=21 and $bday[1]==6) or ($bday[2]<=22 and $bday[1]==7)) {
$zodiacsign="Cancer";
} else if (($bday[2]>=23 and $bday[1]==7) or ($bday[2]<=22 and $bday[1]==8)) {
$zodiacsign="Leo";
} else if (($bday[2]>=23 and $bday[1]==8) or ($bday[2]<=22 and $bday[1]==9)) {
$zodiacsign="Virgo";
} else if (($bday[2]>=23 and $bday[1]==9) or ($bday[2]<=22 and $bday[1]==10)) {
$zodiacsign="Libra";
} else if (($bday[2]>=23 and $bday[1]==10) or ($bday[2]<=21 and $bday[1]==11)) {
$zodiacsign="Scorpio";
} else if (($bday[2]>=22 and $bday[1]==11) or ($bday[2]<=21 and $bday[1]==12)) {
$zodiacsign="Sagittarius";
} else if (($bday[2]>=22 and $bday[1]==12) or ($bday[2]<=19 and $bday[1]==1)) {
$zodiacsign="Capricorn";
} else if (($bday[2]>=20 and $bday[1]==1) or ($bday[2]<=18 and $bday[1]==2)) {
$zodiacsign="Aquarius";
} else if (($bday[2]>=19 and $bday[1]==2) or ($bday[2]<=20 and $bday[1]==3)) {
$zodiacsign="Pisces";
} else {
$zodiacsign="Can not define without a birth month and day.";
}
if($zodiacsign=="Can not define without a birth month and day.") {
$zodiacimage="NA.gif";
} else {
$zodiacimage=$zodiacsign.".gif";
}
and here's what I need to put in the template (called getinfo_zodiac):
<tr><td valign="top"><smallfont><B>Zodiac Sign: </B></smallfont></td><td valign="top"><smallfont>$zodiacsign
</smallfont></td></tr>
g-force2k2
08-24-2002, 08:45 AM
Boofo is this what you're looking for?
eval("\$getinfo_zodiac = \"".gettemplate("getinfo_zodiac")."\";");
regards...
g-force2k2
Boofo
08-24-2002, 08:48 AM
I had:
eval("\$zodiacsign = \"".gettemplate("getinfo_zodiac")."\";");
but how do I add it to the above code? I tried and all I get is a big 10 at the top of my profile. :)
Originally posted by g-force2k2
Boofo is this what you're looking for?
eval("\$getinfo_zodiac = \"".gettemplate("getinfo_zodiac")."\";");
regards...
g-force2k2
g-force2k2
08-24-2002, 08:53 AM
Boofo so the second code is the template (getinfo_zodiac) that you're trying to integrate into the getinfo templates? regards...
g-force2k2
Boofo
08-24-2002, 08:55 AM
Yes. I want it to pull up the template if there is a zodiac sign and not do anything if there isn't. Here is the revised code that I need to have the template for.
if (($bday[2]>=21 and $bday[1]==3) or ($bday[2]<=19 and $bday[1]==4)) {
$zodiacsign="Aries";
} else if (($bday[2]>=20 and $bday[1]==4) or ($bday[2]<=20 and $bday[1]==5)) {
$zodiacsign="Taurus";
} else if (($bday[2]>=21 and $bday[1]==5) or ($bday[2]<=20 and $bday[1]==6)) {
$zodiacsign="Gemini";
} else if (($bday[2]>=21 and $bday[1]==6) or ($bday[2]<=22 and $bday[1]==7)) {
$zodiacsign="Cancer";
} else if (($bday[2]>=23 and $bday[1]==7) or ($bday[2]<=22 and $bday[1]==8)) {
$zodiacsign="Leo";
} else if (($bday[2]>=23 and $bday[1]==8) or ($bday[2]<=22 and $bday[1]==9)) {
$zodiacsign="Virgo";
} else if (($bday[2]>=23 and $bday[1]==9) or ($bday[2]<=22 and $bday[1]==10)) {
$zodiacsign="Libra";
} else if (($bday[2]>=23 and $bday[1]==10) or ($bday[2]<=21 and $bday[1]==11)) {
$zodiacsign="Scorpio";
} else if (($bday[2]>=22 and $bday[1]==11) or ($bday[2]<=21 and $bday[1]==12)) {
$zodiacsign="Sagittarius";
} else if (($bday[2]>=22 and $bday[1]==12) or ($bday[2]<=19 and $bday[1]==1)) {
$zodiacsign="Capricorn";
} else if (($bday[2]>=20 and $bday[1]==1) or ($bday[2]<=18 and $bday[1]==2)) {
$zodiacsign="Aquarius";
} else if (($bday[2]>=19 and $bday[1]==2) or ($bday[2]<=20 and $bday[1]==3)) {
$zodiacsign="Pisces";
} else {
$zodiacsign="";
}
g-force2k2
08-24-2002, 09:00 AM
okay Boofo try this code then ::
if($zodiacsign == "") {
$getinfo_zodiac = "";
} else {
eval("\$getinfo_zodiac = \"".gettemplate("getinfo_zodiac")."\";");
}
Boofo
08-24-2002, 09:06 AM
Nope, that didn't do it. Any other ideas? I know it is just a syntax problem I am missing here. I need to eval the template at the end of the code.
g-force2k2
08-24-2002, 09:11 AM
umm... just a question Boofo when you tested my code did you replace my variables with yours?
g-force2k2
Boofo
08-24-2002, 09:14 AM
I tried your code first and then my variables and neither one worked. here is what I had before with it all together:
if (($bday[2]>=21 and $bday[1]==3) or ($bday[2]<=19 and $bday[1]==4)) {
$zodiacsign="Aries";
} else if (($bday[2]>=20 and $bday[1]==4) or ($bday[2]<=20 and $bday[1]==5)) {
$zodiacsign="Taurus";
} else if (($bday[2]>=21 and $bday[1]==5) or ($bday[2]<=20 and $bday[1]==6)) {
$zodiacsign="Gemini";
} else if (($bday[2]>=21 and $bday[1]==6) or ($bday[2]<=22 and $bday[1]==7)) {
$zodiacsign="Cancer";
} else if (($bday[2]>=23 and $bday[1]==7) or ($bday[2]<=22 and $bday[1]==8)) {
$zodiacsign="Leo";
} else if (($bday[2]>=23 and $bday[1]==8) or ($bday[2]<=22 and $bday[1]==9)) {
$zodiacsign="Virgo";
} else if (($bday[2]>=23 and $bday[1]==9) or ($bday[2]<=22 and $bday[1]==10)) {
$zodiacsign="Libra";
} else if (($bday[2]>=23 and $bday[1]==10) or ($bday[2]<=21 and $bday[1]==11)) {
$zodiacsign="Scorpio";
} else if (($bday[2]>=22 and $bday[1]==11) or ($bday[2]<=21 and $bday[1]==12)) {
$zodiacsign="Sagittarius";
} else if (($bday[2]>=22 and $bday[1]==12) or ($bday[2]<=19 and $bday[1]==1)) {
$zodiacsign="Capricorn";
} else if (($bday[2]>=20 and $bday[1]==1) or ($bday[2]<=18 and $bday[1]==2)) {
$zodiacsign="Aquarius";
} else if (($bday[2]>=19 and $bday[1]==2) or ($bday[2]<=20 and $bday[1]==3)) {
$zodiacsign="Pisces";
eval("\$zodiacsign = \"".gettemplate("getinfo_zodiac")."\";");
} else {
$zodiacsign="";
}
Like I said, I know I have the syntax wrong here for evaluating the template. I feel really stupid on this. :)
Originally posted by g-force2k2
umm... just a question Boofo when you tested my code did you replace my variables with yours?
g-force2k2
g-force2k2
08-24-2002, 09:23 AM
well from that code you're showing me you can't use $zodiacsign in the eval because then you changed its original value of what it was to now define the template... maybe that maeks sense? regards
change this:
eval("\$zodiacsign = \"".gettemplate("getinfo_zodiac")."\";");
to this:
eval("\$zodiacsigns = \"".gettemplate("getinfo_zodiac")."\";");
and make sure that you have the $zodiacsigns in the getinfo template where you want the getinfo_zodiac template to appear and also make sure that this code is in the member.php :P (but im sure you know that :))
hopefully that helps somewhat?
g-force2k2
Boofo
08-24-2002, 09:28 AM
LOL I told you I was feeling stupid on this one. Your code works fine. :)
I forgot to change the variable in the getinfo template to $getinfo_zodiac like you had it in the code. I've been tearing myself up over this for almost 3 hours now and it was there slapping me in the face the whole time. It's usually the simple stuff that messes us up, huh? :) Thanks for all for the help. I owe you one, my friend. :)
g-force2k2
08-24-2002, 09:30 AM
lol Boofo don't worry i probably do it waaay more then you ;) damn parse errors for me :p but its all good... i knew that the code should've worked one way or another :) just glad its all good... just another usual day of hacking for us eh? ^^
g-force2k2
Boofo
08-24-2002, 09:32 AM
I need to ask you, for my own curiosity...why couldn't I slip the eval statement in before I had it at zodiacsign="". They do that with the birthday variable and other ones. How come that won't work here? Because of all of the else if statements? I'd like to understand this a little better. :)
g-force2k2
08-24-2002, 09:38 AM
well its not that you can't do it that way... but with each elseif that you have and you want to define it before then $zodiacsign=""; then you'd have to use the same eval station after each esleif... kinda like this:
} else if (($bday[2]>=20 and $bday[1]==4) or ($bday[2]<=20 and $bday[1]==5)) {
$zodiacsign="Taurus";
eval("
} else if (($bday[2]>=21 and $bday[1]==5) or ($bday[2]<=20 and $bday[1]==6)) {
$zodiacsign="Gemini";
eval("
etc... so after defining each zodiacsign you'd have to eval the template ;) but i just avoided that by waiting after the $zodiacsign=""; so that i could define that one as not eval the template and then everything other then "" would eval the template... hope i make any sense :P
g-force2k2
Boofo
08-24-2002, 09:53 AM
Ahhh, ok, that makes sense now. Instead of defining it twelve times, by waiting until after the zodicasign="", you can basically just save some code and do it once, right? So, then for each else statement you have to do an eval if you want to use a template or do it like we did here. I almost went the route of defining the eval after each else if but I knew there had to be an easier way to do it, I just wasn't sure how. :) I should have known that. Duuhhh!!! Believe it or not, that is the first time I have run into more than one else statement. LOL Again, thank you very much for guiding me through this. I had another piece of code with 12 else statements and I used to same type of thing that you showed me here for it and it worked great!
g-force2k2
08-24-2002, 09:55 AM
np Boofo always glad to help someone like you :)
g-force2k2
Boofo
08-24-2002, 10:05 AM
Does that mean I'm special? I get to ride the little yellow bus to school? ;)
You mean you dont anymore :(
Now I am the only one :dead:
Boofo
08-25-2002, 07:48 AM
Move over! After my little fiasco here and the birthday problem (don't even ask, and gforce, that is our little secret :)) it looks like I'm back on the bus. :(
Originally posted by Neo
You mean you dont anymore :(
Now I am the only one :dead:
YAY ^_^
I am sure susy will be drooling all over you once again ;)
Boofo
08-25-2002, 08:22 AM
Is suzy back on the bus, too? Gosh, how long has it been since we've seen her? (Can you say NEVER!) ;)
Originally posted by Neo
YAY ^_^
I am sure susy will be drooling all over you once again ;)
Yeah I was wondering about that oO
I think Freddie is the bus drivig tomorrow Oo
Boofo
08-25-2002, 09:40 AM
I heard Freddie is sitting in the back with us from now on. That's the rumor I started (I mean heard), anyway. :)
Originally posted by Neo
Yeah I was wondering about that oO
I think Freddie is the bus drivig tomorrow Oo
vBulletin® v3.8.12 by vBS, Copyright ©2000-2024, vBulletin Solutions Inc.