[17:13] <@qwertydawom> <?php    ?>
[17:13] <@qwertydawom> <?      ?> ==
[17:13] <@qwertydawom> <%      %>
[17:13] <@qwertydawom> <script language="php">      </script>
[17:14] <@qwertydawom> The most used is : <?   ?>
[17:14] <@qwertydawom> although it's not the better choice
[17:14] <@qwertydawom> The best one (to avoid future problems) is : <?php
  ?>
[17:15] <@qwertydawom> The "<%   %>" are really depricated, and you must
avoid them (unless you have a compatibility problem)
[17:15] <@qwertydawom> (with an asp editor)
[17:16] <@qwertydawom> The first thing you have to know is :
[17:16] <@qwertydawom> each syntax is always ended with a ";"
[17:16] <@qwertydawom> if you forget it, you'll get a : PARSE ERROR
[17:16] <@qwertydawom> Now, the first script.. like usual.. "hello world" ;)
[17:17] <@qwertydawom> <?php
[17:17] <@qwertydawom> echo 'Hello world !' ;
[17:17] <@qwertydawom> ?>
[17:17] <@qwertydawom> Like you see, we use "echo" to print some text
[17:17] <@qwertydawom> Now, if you want to format this text (i.e. : make
it look nicer :P)
[17:18] <@qwertydawom> you have to use html
[17:18] <@qwertydawom> For example :
[17:18] <@qwertydawom> <?php
[17:18] <@qwertydawom> echo '<font face="arial" size="2" color="red">Hello
world !</font>';
[17:18] <@qwertydawom> ?>
[17:18] <@qwertydawom> It will print a red "hello world" :)
[17:18] <@qwertydawom> So, what if we want to add an image with the text?
[17:18] <@qwertydawom> html again
[17:18] <@qwertydawom> <?php
[17:19] <@qwertydawom> echo '<div align="center"><font face="arial"
size="2" color="blue"> Hello world !</font><br /> ';
[17:19] <@qwertydawom> echo '<img src="yourimage.gif" border="0" /></div> ';
[17:19] <@qwertydawom> ?>
[17:19] <@qwertydawom> This will print a blue "hello world", and display
an image next to it :)
[17:19] <@qwertydawom> Therefore, you clearly see it's important to know
html before you start learning php
[17:20] <@qwertydawom> For this lecture, I'll be assuming you know it.
[17:20] <@qwertydawom> echo and print()
[17:20] <@qwertydawom> The first one is a php pre-built function
[17:21] <@qwertydawom> that's why you don't need to put the brackets
[17:21] <@qwertydawom> and, unlike print() you can put more than one
parameter
[17:21] <@qwertydawom> separated with commas
[17:22] <@qwertydawom> Echo is slightly faster than print(), that's why
we'll use this one :)
[17:22] <@qwertydawom> here's an example on how to use these functions :
[17:22] <@qwertydawom> echo 'text';
[17:23] <@qwertydawom> echo 'text','textagain';
[17:23] <@qwertydawom> print('text');
[17:24] <@qwertydawom> If we put :
[17:24] <@qwertydawom> echo  'I'm using php';
[17:25] <@qwertydawom> we'd get :
[17:25] <@qwertydawom> Parse error: parse error, unexpected T_STRING,
expecting ',' or ';' in yourfile.php on line 2
[17:25] <@qwertydawom> what we have to do to correct it
[17:25] <@qwertydawom> is "escape" the ' char
[17:25] <@qwertydawom> to do so, we use a backslash
[17:25] <@qwertydawom> e.g. :
[17:25] <@qwertydawom> echo  'I\'m using php';
[17:26] <@qwertydawom> But, you'll ask : what if I want to put a \ in my
sentence...?
[17:26] <@qwertydawom> well, you'd just have to put another \ before it :)
: \\
[17:26] <@qwertydawom> There are also other special chars :
[17:27] <@qwertydawom> \t : tabulation
[17:27] <@qwertydawom> \r : carriage return
[17:27] <@qwertydawom> \n : new line
[17:27] <@qwertydawom> But, those special chars will always work in
sentences within double quotes
[17:27] <@qwertydawom> For example you can do so :
[17:27] <@qwertydawom> echo 'some text',"\n";
[17:28] <@qwertydawom> Or, more practical :
[17:28] <@qwertydawom> echo "some text\n";
[17:28] <@qwertydawom> :)
[17:28] <@qwertydawom> Well, we're done with the first part
[17:28] <@qwertydawom> Time has come for you to ask your questions!
[17:28] <SysSpider> what's the difference between single quotes and double
quotes?
[17:28] <@qwertydawom> good question :)
[17:28] <Injoi> Correction: It's parenthesis not brackets in the print
function
[17:28] <@qwertydawom> in fact
[17:29] <@qwertydawom> <Injoi> Correction: It's parenthesis not brackets
in the print function --> thanks ;)
[17:29] <@qwertydawom> single quotes are used when you want to print text
only
[17:29] <@qwertydawom> double quotes are used when there are variables
involved
[17:29] <gecko> if you went print '@array'  it would print @array, if you
went print "@array", it would print the contents of array
[17:29] <Injoi> concantating
[17:29] <SysSpider> like, echo "aaa" . var . "more"?
[17:30] <SysSpider> ah
[17:30] <@qwertydawom> well, then, you could think : why not using only
double quotes?
[17:30] <SysSpider> inline, ok
[17:30] * Ch4r sets mode: -q mov_21h
[17:30] * Ch4r sets mode: -qo Ch4r Ch4r
[17:30] <@qwertydawom> because when you use it, php checks for every word
to see if there is a variable
[17:30] -> -Ch4r- good move ;)
[17:30] <@qwertydawom> therefore, that makes it longer
[17:30] <@qwertydawom> so : only text -> single
[17:30] <@qwertydawom> variables -> double
[17:31] <SysSpider> right, thanks then
[17:31] <@qwertydawom> ok, np :)
[17:31] <Injoi> Will loops and classes and object sbe discussed later?
[17:31] <@qwertydawom> Loops, yeah
[17:31] <@qwertydawom> classes and objects, not this time
[17:31] <Injoi> Oky doky.
[17:32] <@qwertydawom> so, I assume I can move on :)
[17:32] <@qwertydawom> II- Date/Time
[17:33] <@qwertydawom> With php, it's really simple to know the date of
today, but also to know which day it will be in 453 days for example, and
reciprocally in the past.
[17:33] <@qwertydawom> Now, let's see a simple date
[17:34] <@qwertydawom> and, we'll know use our first variable. :)
[17:34] * Joins: Reikon_ (Reikon@Shellcoder-A71AE4F0.cfl.res.rr.com)
[17:34] <@qwertydawom> (all the variables begin with the dollar sign : $)
[17:34] <@qwertydawom> <?php
[17:34] <@qwertydawom> $date = date("Y-m-d");
[17:34] <@qwertydawom> $hour = date("h:i");
[17:34] <@qwertydawom> Print("Today is $date and it's $hour");
[17:34] <@qwertydawom> ?>
[17:35] <@qwertydawom> That will print :
[17:36] <@qwertydawom> Today is 2005-08-28 and it's 11:36.
[17:36] <@qwertydawom> So, it is the date() function that's used to get
the date from the server
[17:36] <@qwertydawom> but, take care, because the hour is in function of
the position of the server itself!
[17:36] <@qwertydawom> alright ;)
[17:37] <@qwertydawom> so, I've used : Y-m-d
[17:37] <@qwertydawom> but, you can change the order if you like
[17:37] <@qwertydawom> Now, let's see the parameters you can put into it :
[17:38] <@qwertydawom> a : am or pm
[17:38] <@qwertydawom> A : AM or PM
[17:38] <@qwertydawom> d : day with two digits (from 01 to 31)
[17:38] <@qwertydawom> D : day of the week, with three letters (e.g. : Fri)
[17:39] <@qwertydawom> h : hour, 12 hours format (01 to 12)
[17:40] <@qwertydawom> H : hour, 24 hours format (00 to 23)
[17:40] <@qwertydawom> g and G are respectively the same, but, without the
initial zeros
[17:40] <@qwertydawom> i : minutes (00 to 59)
[17:40] <@qwertydawom> i : minutes (00 to 59)
[17:40] <@qwertydawom> j : day of the month without the initial zeros
[17:41] <@qwertydawom> l (little "L") : day of the week, fully written
[17:41] <@qwertydawom> m : month (01 to 12)
[17:41] <@qwertydawom> n : month without the initial zeros
[17:42] <@qwertydawom> M : month, with three letters
[17:42] <@qwertydawom> s : seconds (00 to 59)
[17:43] <@qwertydawom> III- PHP within an HTML code
[17:44] <@qwertydawom> Warning : since you put php code with a .html (or
.htm) document
[17:44] <@qwertydawom> you'll have to rename this file to *.php or .phtml
(although the first one is mainly used)
[17:45] <@qwertydawom> <html>
[17:45] <@qwertydawom> <body>
[17:45] <@qwertydawom> <font size="2" face="Arial">The text in HTML</font>
[17:45] <@qwertydawom> <?php
[17:45] <@qwertydawom> //The PHP code
[17:45] <@qwertydawom> $hour = date("H\hi");
[17:45] <@qwertydawom> print("<font size=\"2\" face=\"Arial\"> and the PHP
one.</font>");
[17:45] <@qwertydawom> ?>
[17:45] <@qwertydawom> <!-- back to HTML -->
[17:45] <@qwertydawom> <br><font size="2" face="Arial">It's <?php echo
$hour; ?>.</font>
[17:45] <@qwertydawom> </body>
[17:45] <@qwertydawom> </html>
[17:45] <@qwertydawom> So, with the above example, you can see how html
and php fit well :)
[17:46] <@qwertydawom> Like you've seen, in php, to put comments, you'll
have to use : //
[17:46] <@qwertydawom> If it your comment is longer than one line
[17:46] <@qwertydawom> you can use : /*  your comment here */
[17:47] <@qwertydawom> Now, let's talk about the include() function
[17:47] <@qwertydawom> If your html code is long, it'll look messy if you
insert php within it
[17:47] <@qwertydawom> that's why we'll use this function
[17:47] <@qwertydawom> <html>
[17:47] <@qwertydawom> <body>
[17:47] <@qwertydawom> <font size="2" face="Arial">The text in HTML</font>
[17:47] <@qwertydawom> <?php
[17:47] <@qwertydawom> include("qwerty.inc.php"); //we call the file
[17:47] <@qwertydawom> ?>
[17:47] <@qwertydawom> </body>
[17:47] <@qwertydawom> </html>
[17:48] <@qwertydawom> <?php
[17:48] <@qwertydawom> $hour = date("H\hi");
[17:48] <@qwertydawom> print("<center><font size=\"2\" face=\"Arial\"> and
the PHP one. It's  $hour.</font></center>");
[17:48] <@qwertydawom> ?>
[17:48] <@qwertydawom> The second code is the one there is into :
qwerty.inc.php
[17:48] <@qwertydawom> You'll have noticed the included files' extension
is : *.inc.php
[17:49] <@qwertydawom> this is for a better readability
[17:50] <@qwertydawom> IV- Concatenation
[17:50] <@qwertydawom> The dot is used to concatenate strings.
[17:51] <@qwertydawom> Let's take an example where a text has to be
sticked next to a variable :
[17:51] <@qwertydawom> <?
[17:51] <@qwertydawom> $date = gmdate("H\hi");
[17:51] <@qwertydawom> print("It's $date"."gmt.");
[17:51] <@qwertydawom> ?>
[17:51] <@qwertydawom> So, the server won't be fooled and think the
variable's name is "dategmt"
[17:51] <@qwertydawom> print("It's $date"."gmt.");
[17:51] <@qwertydawom> ?>
[17:51] <@qwertydawom> So, the server won't be fooled and think the
variable's name is "dategmt"
[17:52] <@qwertydawom> Notice the second dot is placed within the quotes,
so, it'll be printed as a dot :)
[17:53] <@qwertydawom> Now, and, I'm sure SysSpider will like it, we're
going to see the difference between single and double quotes (with
examples of code) :)
[17:53] <@qwertydawom> <?
[17:53] <@qwertydawom> $name = "Qwerty";
[17:53] <@qwertydawom> echo "My name is $name";
[17:53] <@qwertydawom> ?>
[17:53] <@qwertydawom> This will print :
[17:53] <@qwertydawom> My name is Qwerty
[17:54] <@qwertydawom> <?
[17:54] <@qwertydawom> $name = "Qwerty";
[17:54] <@qwertydawom> //with simple quotes
[17:54] <@qwertydawom> echo 'My name is $name';
[17:54] <@qwertydawom> ?>
[17:54] <@qwertydawom> This one would print : My name is $name
[17:54] <@qwertydawom> <?
[17:54] <@qwertydawom> $name = "Qwerty";
[17:54] <@qwertydawom> //with simple quotes
[17:54] <@qwertydawom> echo 'My name is '.$name;
[17:54] <@qwertydawom> ?>
[17:54] <@qwertydawom> And this one : My name is Qwerty
[17:55] <@qwertydawom> So, with the previous explanation and the above
code, I think you've understood the difference between them :)
[17:55] <@qwertydawom> Right now, you'll see it's possible to concatenate
directly a function and a string :
[17:55] <@qwertydawom> <?
[17:55] <@qwertydawom> print('Today is '.gmdate('d-m-Y').'...');
[17:55] <@qwertydawom> ?>
[17:56] <@qwertydawom> So, it'll does the same as the first code presented
in this section
[17:56] <@qwertydawom> but, the code is reduced to one line
[17:56] <@qwertydawom> which can be nice if we're writing a looong code
[17:57] <@qwertydawom> but, I have to admit this one is less readable for
someone who really begins
[17:57] <@qwertydawom> so, that's you to choose :).
[17:58] <@qwertydawom> Now, if you want to call an url with variables in it
[17:58] <@qwertydawom> concatenation will be useful
[17:58] <@qwertydawom> look at those two codes :
[17:58] <@qwertydawom> <?
[17:58] <@qwertydawom> $file = "file.php?var=$var&data=$data";
[17:58] <@qwertydawom> ?>
[17:58] <@qwertydawom> and
[17:58] <@qwertydawom> <?
[17:58] <@qwertydawom> $file = 'file.php?var='.$var.'&data='.$data;
[17:58] <@qwertydawom> ?>
[17:58] <@qwertydawom> I am not saying the first one doesn't work
[17:58] <@qwertydawom> but, it's a bit deprecated
[17:59] <@qwertydawom> and, it's better to begin with good habits ;).
[18:00] <@qwertydawom> V- Get values from a form
[18:01] <@qwertydawom> When one of your visitors enters informations in a
form
[18:01] <@qwertydawom> there are 'transformed' into variables
[18:02] <@qwertydawom> The name of those variables depends on the sending
method of the form.
[18:02] <@qwertydawom> Since in our next code, the method will be POST
(the other one is GET)
[18:02] <@qwertydawom> Since in our next code, the method will be POST
(the other one is GET)
[18:03] <@qwertydawom> you have to put as a name :
$_POST['name_of_the_field']
[18:03] <@qwertydawom> So, let's see an example! :)
[18:03] <@qwertydawom> Here's the html form :
[18:04] <@qwertydawom> <html><body>
[18:04] <@qwertydawom> <form method="post" action="check.php">
[18:04] <@qwertydawom> Surname : <input type="text" name="surname"
size="12" /><br />
[18:04] <@qwertydawom> Firstname : <input type="text" name="firstname"
size="12" />
[18:04] <@qwertydawom> <input type="submit" value="OK" />
[18:04] <@qwertydawom> </form></body></html>
[18:04] <@qwertydawom> And here's the php code for "check.php" :
[18:04] <@qwertydawom> <?php
[18:04] <@qwertydawom> $firstname = $_POST['firstname'];
[18:04] <@qwertydawom> $name = $_POST['name'];
[18:04] <@qwertydawom> print("<center>Hey $firstname $name</center>");
[18:04] <@qwertydawom> ?>
[18:05] <@qwertydawom> If you enter something within the firstname and
surname, it will display (for example) :
[18:05] <@qwertydawom> Hey Qwerty Dawom
[18:05] <@qwertydawom> Now, obviously, we'll have to check what the user
enters, to avoid errors
[18:06] <@qwertydawom> The first function we'll use is the empty()
function which checks if a field is.. empty :)
[18:06] <@qwertydawom> The html form :
[18:06] <@qwertydawom> <html><body>
[18:06] <@qwertydawom> <form method="post" action="check.php">
[18:06] <@qwertydawom> Title : <input type="text" name="titre" size="12"
/><br />
[18:06] <@qwertydawom> URL : <input type="text" name="url" size="12"
value="http://" />
[18:06] <@qwertydawom> <input type="submit" value="OK" />
[18:06] <@qwertydawom> </form></body></html>
[18:06] <@qwertydawom> and the php script :
[18:06] <@qwertydawom> <?php
[18:06] <@qwertydawom> $title = $_POST['title'];
[18:06] <@qwertydawom> $url = $_POST['url'];
[18:06] <@qwertydawom> if(empty($title))
[18:06] <@qwertydawom> {
[18:06] <@qwertydawom> print("<center>The '<b>Title</b>' is empty
!</center>");
[18:06] <@qwertydawom> exit();
[18:06] <@qwertydawom> }
[18:06] <@qwertydawom> //let's check the beginning of the URL
[18:06] <@qwertydawom> $check_url = strtolower($url);
[18:06] <@qwertydawom> $check_url = substr("$check_url", 0, 7);
[18:06] <@qwertydawom> //We check the first 7 chars
[18:06] <@qwertydawom> if ($check_url!="http://")
[18:06] <@qwertydawom> {
[18:06] <@qwertydawom> print("The URL must begin with <b>http://</b>");
[18:06] <@qwertydawom> exit();
[18:06] <@qwertydawom> }
[18:06] <@qwertydawom> else
[18:06] <@qwertydawom> {
[18:06] <@qwertydawom> print("$title : <a href=\"$url\">$url</a>");
[18:07] <@qwertydawom> }
[18:07] <@qwertydawom> ?>
[18:07] <@qwertydawom> So, two possible errors :
[18:07] <@qwertydawom> 1 - the title is empty (it'll print it)
[18:07] <@qwertydawom> 2 - The url must begin with http:// (it'll print it
as well)
[18:08] <@qwertydawom> Else, if there isn't any errors, it will display
the title and the address of the site :)
[18:08] <@qwertydawom> E.g. : binaryuniverse: http://binaryuniverse.net
[18:09] <@qwertydawom> With this example, we're beginning to use the
conditions
[18:09] <@qwertydawom> which is very important in any programming language.
[18:12] <@qwertydawom> So, we can check anything in the field, but, don't
be too rude, users doesn't like when you take them their freedom. ;)
[18:13] <@qwertydawom> The most frequent checks are done on the URL and
emails, to check if there's an (at) and a (dot) within the entered email.
[18:14] <@qwertydawom> The HTML form :
[18:14] <@qwertydawom> <html><body>
[18:14] <@qwertydawom> <form method="post" action="check.php">
[18:14] <@qwertydawom> Your email : <input type="text" name="email"
size="20" />
[18:14] <@qwertydawom> <input type="submit" value="OK" />
[18:14] <@qwertydawom> </form></body></html>
[18:14] <@qwertydawom> And the check.php code :
[18:14] <@qwertydawom> <?php
[18:14] <@qwertydawom> $email = $_POST['email'];
[18:14] <@qwertydawom> $dot = strpos($email,".");
[18:14] <@qwertydawom> $at = strpos($email,"@");
[18:14] <@qwertydawom> if($dot=='')
[18:14] <@qwertydawom> {
[18:14] <@qwertydawom> echo "There has to be a <b>dot</b> in your email";
[18:14] <@qwertydawom> }
[18:14] <@qwertydawom> elseif($at=='')
[18:14] <@qwertydawom> {
[18:14] <@qwertydawom> echo "There has to be an <b>'@'</b> in your email";
[18:14] <@qwertydawom> }
[18:14] <@qwertydawom> else
[18:14] <@qwertydawom> {
[18:14] <@qwertydawom> echo "Your email is: '<a
href=\"mailto:"."$email"."\"><b>$email</b></a>'";
[18:14] <@qwertydawom> }
[18:14] <@qwertydawom> ?>
[18:15] <@qwertydawom> in one of my scripts, there was an error :) can you
find it?
[18:15] <@qwertydawom> Here :
[18:15] <@qwertydawom> <html><body>
[18:15] <@qwertydawom> <form method="post" action="check.php">
[18:15] <@qwertydawom> Surname : <input type="text" name="surname"
size="12" /><br />
[18:15] <@qwertydawom> Firstname : <input type="text" name="firstname"
size="12" />
[18:15] <@qwertydawom> <input type="submit" value="OK" />
[18:15] <@qwertydawom> </form></body></html>
[18:15] <@qwertydawom> <?php
[18:15] <@qwertydawom> $firstname = $_POST['firstname'];
[18:15] <@qwertydawom> $name = $_POST['name'];
[18:15] <@qwertydawom> print("<center>Hey $firstname $name</center>");
[18:15] <@qwertydawom> ?>
[18:16] <@qwertydawom> If you read carefully, you should see why it won't
work :)
[18:16] <@qwertydawom> Come on, show me you're good pupils ;P
[18:17] <mov_21h> cause we didnt give god money for it to work / pray hard
enough
[18:17] <@qwertydawom> hahaha
[18:17] <Siph0n> which one is it?
[18:17] <Siph0n> i went and grabbed a bite to eat relly quick
[18:17] <@qwertydawom> ah ok..
[18:17] <mu-tiger> k ...
[18:17] <@qwertydawom> Well, let me tell it to you then :)
[18:17] <SysSpider> qwertydawom: it doesn't work because you don't have a
space between $name and </center>
[18:17] <SysSpider> i think
[18:17] <@qwertydawom> no, not that ;)
[18:17] <SysSpider> humm
[18:18] <mu-tiger> surname
[18:18] <@qwertydawom> But, it deals with this "$name" variable..
[18:18] <@qwertydawom> yeah mu! :)
[18:18] <mu-tiger> it shoudl say $surname
[18:18] <mu-tiger> ?
[18:18] <@qwertydawom> you've got it!
[18:18] <mu-tiger> yay!
[18:18] <SysSpider> humm? it was a style problem?
[18:18] <@qwertydawom> Congrats ;)
[18:20] <@qwertydawom> VI- Conditional statements
[18:20] <@qwertydawom> To begin with, let's see the most used instructions :
[18:21] <@qwertydawom> if, else, elseif, switch, while, for
[18:21] <@qwertydawom> ==
[18:21] <@qwertydawom> !=
[18:21] <@qwertydawom> <
[18:21] <@qwertydawom> >
[18:21] <@qwertydawom> <=
[18:21] <@qwertydawom> >=
[18:21] <@qwertydawom> "and" or "&&"
[18:22] <@qwertydawom> "or" or "||"
[18:22] <@qwertydawom> To see how if, else and elseif work, let's look at
this example :) :
[18:22] <@qwertydawom> <?
[18:22] <@qwertydawom> $qwerty = 512;
[18:22] <@qwertydawom> //some conditional statements
[18:22] <@qwertydawom> if($qwerty>=0 && $qwerty<500)         //1st
[18:22] <@qwertydawom>     {
[18:22] <@qwertydawom>     echo $qwerty.' is between 0 and 499';
[18:22] <@qwertydawom>     }
[18:22] <@qwertydawom> elseif($qwerty>=500 && $qwerty<1000) //2nd
[18:22] <@qwertydawom>     {
[18:22] <@qwertydawom>     echo $qwerty.' is between 500 and 999';
[18:22] <@qwertydawom>     }
[18:22] <@qwertydawom> else                                  //3rd
[18:22] <@qwertydawom>     {
[18:22] <@qwertydawom>     echo $qwerty.' is greater than 999';
[18:22] <@qwertydawom>     }
[18:22] <@qwertydawom> ?>
[18:23] <@qwertydawom> Basically, we set a variable as "512", and we check :
[18:23] <@qwertydawom> -if it's between 0 and 499
[18:23] <@qwertydawom> -between 500 and 999
[18:23] <@qwertydawom> -or greater than 999
[18:25] <@qwertydawom> Now, here's an other example to understand better,
and, that'll allow us to use switch soon :) :
[18:25] <@qwertydawom> <?
[18:25] <@qwertydawom> $jazzy = 'dog';
[18:25] <@qwertydawom> //some conditional statements
[18:25] <@qwertydawom> if($jazzy == 'giraffe')
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'jazzy is a giraffe !';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> elseif($jazzy == 'elephant')
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'jazzy is an elephant';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> elseif($jazzy == 'mouse')
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'jazzy is a mouse';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> elseif($jazzy == 'dog')
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'jazzy is a dog';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> elseif($jazzy == 'cat')
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'jazzy is a cat';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> else
[18:25] <@qwertydawom>     {
[18:25] <@qwertydawom>     echo 'Maybe an hippopotamus? Who knows...';
[18:25] <@qwertydawom>     }
[18:25] <@qwertydawom> ?>
[18:26] <@qwertydawom> Of course, here, it'll print : Jazzy is a dog
[18:26] <@qwertydawom> But, like you might have noticed, this structure is
a bit too long
[18:26] <@qwertydawom> and, not really easy to write
[18:26] <@qwertydawom> that's why we'll use "switch" for that
[18:27] <@qwertydawom> The following code is exactly the same as the
previous one, but, using switch :
[18:27] <@qwertydawom> <?
[18:27] <@qwertydawom> $jazzy = 'dog';
[18:27] <@qwertydawom> switch($jazzy)
[18:27] <@qwertydawom>     {
[18:27] <@qwertydawom>     case 'giraffe':
[18:27] <@qwertydawom>         echo 'jazzy is a giraffe !';
[18:27] <@qwertydawom>         break;
[18:27] <@qwertydawom>     case 'elephant':
[18:27] <@qwertydawom>         echo 'jazzy is an elephant';
[18:27] <@qwertydawom>         break;
[18:27] <@qwertydawom>     case 'mouse':
[18:27] <@qwertydawom>         echo 'jazzy is a mouse';
[18:27] <@qwertydawom>         break;
[18:27] <@qwertydawom>     case 'dog':
[18:27] <@qwertydawom>         echo 'jazzy is a dog';
[18:27] <@qwertydawom>         break;
[18:27] <@qwertydawom>     case 'cat':
[18:27] <@qwertydawom>         echo 'jazzy is a cat';
[18:27] <@qwertydawom>         break;
[18:27] <@qwertydawom>     default:
[18:27] <@qwertydawom>         echo 'Maybe an hippopotamus? Who knows...';
[18:27] <@qwertydawom>     }
[18:27] <@qwertydawom> ?>
[18:27] <@qwertydawom> So, you see the structure of a switch :
[18:28] <@qwertydawom> switch { case:  break;  etc.  default: }
[18:28] <@qwertydawom> And now, the "famous" while loop...
[18:29] <@qwertydawom> I say "famous" because when you begin with it, it's
usually a bit messy :)
[18:29] <@qwertydawom> <?
[18:29] <@qwertydawom> $qwerty = 6;
[18:29] <@qwertydawom> $i = 0;
[18:29] <@qwertydawom> //----------[BEGINNING OF THE LOOP]------------
[18:29] <@qwertydawom> while($i != $qwerty)
[18:29] <@qwertydawom>     {
[18:29] <@qwertydawom>     echo 'qwerty is different from '.$i.'<br>';
[18:29] <@qwertydawom>     $i++;  // $i++ is equivalent to ($i+1)
[18:29] <@qwertydawom>     }
[18:29] <@qwertydawom> //------------[END OF THE LOOP]------------
[18:29] <@qwertydawom> echo 'qwerty is equal to '.$i;
[18:29] <@qwertydawom> ?>
[18:30] <@qwertydawom> So, in fact, this script will check the value of
$qwerty, and, if it's different from the number it's checking, it'll print
it :)
[18:30] <@qwertydawom> i.e. : qwerty is different from 1
[18:30] <@qwertydawom> ...
[18:30] <@qwertydawom> qwerty is different from 5
[18:30] -> -qwertydawom- so what is "i" again?
[18:31] <@qwertydawom> Well, $i is usually the variable you use within loops
[18:31] <@qwertydawom> So here :
[18:31] <@qwertydawom> first of all, it takes the value of 0 ( $i = 0; )
[18:32] <@qwertydawom> Then, while it's different from the value of
$qwerty (6 in this case), it'll do the job within the brackets (  while($i
!= $qwerty) )
[18:33] <@qwertydawom> Then, until it doesn't reach the value, it
increases :)  ( $i++; )
[18:33] <@qwertydawom> And, eventually, it'll print : qwerty is equal to 6
(in this case)
[18:34] <@qwertydawom> Now, we're going to see for loops
[18:34] <@qwertydawom> They do the same job as 'while' loops, but, once
again, it's only a different syntax
[18:35] <@qwertydawom> Instead of declaring the counter before the
beginning of the loop ($i = 0;)
[18:35] <@qwertydawom> and, every time, increasing it from one unity
[18:35] <@qwertydawom> ($i++)
[18:35] <@qwertydawom> we do it directly in the loop declaration
[18:36] <@qwertydawom> Here's the same code as above using a 'for' loop :
[18:36] <@qwertydawom> <?
[18:36] <@qwertydawom> $qwerty = 6;
[18:36] <@qwertydawom> //----------[BEGINNING OF THE LOOP]------------
[18:36] <@qwertydawom> for($i=0; $i != $qwerty ; $i++)
[18:36] <@qwertydawom>     {
[18:36] <@qwertydawom>     echo 'qwerty is different from '.$i.'<br>';
[18:36] <@qwertydawom>     }
[18:36] <@qwertydawom> //------------[END OF THE LOOP]------------
[18:36] <@qwertydawom> echo 'qwerty is equal to '.$i;
[18:36] <@qwertydawom> ?>
[18:37] <@qwertydawom> Well, we're done with the loops, and, notice it's
really important to know how to use them, because it's widely used! :)
[18:37] * qwertydawom sets mode: -m
[18:37] <mu-tiger> well
[18:37] <Siph0n> Can you use ? : in place of ifelse?
[18:37] <mu-tiger> why can't we do the "while" loop that way?
[18:37] <Siph0n> because the while can be used in recurison for different
things...
[18:38] <mu-tiger> k
[18:38] <@qwertydawom> siph0n : yes we can, but I won't explain ternary
operator (or, oh well, maybe I should :))
[18:38] <Siph0n> :P
[18:38] <Siph0n> i'm j/w
[18:38] <Siph0n> sometimes it's easier than ifelse when dealing with numbers
[18:38] <@qwertydawom> agreed ;)
[18:38] <mu-tiger> ty Siph0n
[18:39] <@qwertydawom> So, the ternary operator is used like this :
[18:39] <@qwertydawom> test ? part1 : part2
[18:40] <Siph0n> it's used in the same context as C and Perl, right?
[18:40] <gecko> yea
[18:40] <@qwertydawom> yes, in C/C++/perl/js
[18:40] <@qwertydawom> ex1 ? ex2 : ex3
[18:41] <@qwertydawom> it will return ex2 if ex1 is true
[18:41] <@qwertydawom> and ex3 if ex1 is false
[18:41] <@qwertydawom> got it? :)
[18:41] <mu-tiger> yes
[18:44] <@qwertydawom> VII - File Input/Output
[18:45] <@qwertydawom> Now, we'll see how to open and read a file located
on your server
[18:45] <@qwertydawom> First of all, you create a *.txt file (of course,
you can put the extension you want, and, even, none :))
[18:46] <@qwertydawom> So, in our 'data.txt' let's put : 1523
[18:46] <@qwertydawom> And, let's make a php script that'll read data.txt
and print what's inside it
[18:47] <@qwertydawom>  <?
[18:47] <@qwertydawom> $fp = fopen("data.txt","r");   //(1)
[18:47] <@qwertydawom> $datas = fgets($fp,255);     //(2)
[18:47] <@qwertydawom> fclose($fp);                  //(3)
[18:47] <@qwertydawom> //Prints the result
[18:47] <@qwertydawom> echo'In the file there is : '.$datas;
[18:47] <@qwertydawom> ?>
[18:47] <@qwertydawom> So, you see, it's pretty simple to read from a file
[18:48] <@qwertydawom> 1. We open the data.txt only for reading (r) and
with the function fopen()
[18:48] <@qwertydawom> 2. The reading is being done thanks to the fgets()
function
[18:49] <@qwertydawom> and we specify the number of chars, here 255,
consequently, the first line
[18:49] <@qwertydawom> 3. And eventually, we just need to close the file,
using the exit() function. :)
[18:50] <@qwertydawom> 4. We print what's inside the file using our $datas
variable
[18:50] <@qwertydawom> Let's get back on the first line
[18:51] <@qwertydawom> The 'r' indicates we open the file only for reading
[18:51] <@qwertydawom> to open it in reading/writing, we'll use : r+
[18:52] <@qwertydawom> About the fgets() function, here, of course, we
could have put "4" instead of "255", because 1523 is only four digits
long... :)
[18:52] <@qwertydawom> But, putting "255" doesn't cause any problem
[18:53] <@qwertydawom> anyway, keep in mind 255 = one line
[18:53] <@qwertydawom> so, if you put 256, it'll go to another line
[18:53] <@qwertydawom> And, now, ladies and gentlemen (:P), I'll show you
a... counter script! :D
[18:54] <@qwertydawom> Here, the text file will be called : counter.txt
[18:55] <@qwertydawom> <?
[18:55] <@qwertydawom> $fp = fopen("counter.txt","r+"); // 1.We open the
file for reading/writing
[18:55] <@qwertydawom> $nbvisits = fgets($fp,11);       // 2.We get the
number from the file
[18:55] <@qwertydawom> $nbvisits++;                     // 3.We increase
the number of visits(+1)
[18:55] <@qwertydawom> fseek($fp,0);                     // 4.We go to the
beginning of the file
[18:55] <@qwertydawom> fputs($fp,$nbvisits);            // 5.We write in
the file the new number
[18:55] <@qwertydawom> fclose($fp);                      // 6.We close the
file
[18:55] <@qwertydawom> print("$nbvisits visitors");    // 7.We print the
counter
[18:55] <@qwertydawom> ?>
[18:56] <@qwertydawom> You just have to place this code in the 'index.php'
at your site :)
[18:57] <@qwertydawom> To be known : php allows you to create and delete
files on a server, so you can search more about that if you like :)
[19:12] <@qwertydawom> VIII - Create your own functions
[19:12] <@qwertydawom> In php, there a lot of functions, but, an other
advantage is, being able to create them yourself :)
[19:13] * qwertydawom sets mode: +m
[19:13] <@qwertydawom> This will be really useful to avoid typing whole
parts of code over and over again.
[19:13] <@qwertydawom> Here's the 'function.php' :
[19:13] <@qwertydawom> <?
[19:13] <@qwertydawom> function Arial($size,$color,$texte)
[19:13] <@qwertydawom> {
[19:13] <@qwertydawom>   print("<font face=Arial size=".$size."
color=".$color.">".$texte."</font>");
[19:13] <@qwertydawom> }
[19:13] <@qwertydawom> ?>
[19:14] <@qwertydawom> And, here's our 'index.php' :
[19:15] <@qwertydawom> <?
[19:15] <@qwertydawom> Require("function.php");    // we call the page
containing the function
[19:15] <@qwertydawom> // printing -------------------------
[19:15] <@qwertydawom> Arial("2","red","Here\'s the text ...");
[19:15] <@qwertydawom> Arial("3","#0F74A3","The other text ...");
[19:15] <@qwertydawom> ?>
[19:15] <@qwertydawom> And, when we'll execute this script, you'll see :
[19:16] <@qwertydawom> "Here's the text" printed using : Arial font, its
size will be "2" and with a red color
[19:17] <@qwertydawom> And : "The other text" -> font = arial, size = 3,
color = blueish..
[19:17] <@qwertydawom> So, you see, it's quite easy
[19:17] <@qwertydawom> first, you create your function, name it and tell
it what to do
[19:17] <@qwertydawom> And then, you can call it in your scripts
[19:18] <@qwertydawom> Trick : I advice you to create a file
(functions.php) with all your functions
[19:19] <@qwertydawom> and, then, just put a require() to be able to used
those functions
[19:19] <@qwertydawom> use*
[19:19] <@qwertydawom> I think you see the interest in creating your own
functions :)
[19:20] <UmInAsHoE> whats the difference between Require and Include?
[19:21] <@qwertydawom> Well, I think the best answer is given here :
http://www.alt-php-faq.org/local/78/  (yeah, I had prepared this question
:))
[19:23] <Siph0n> so include only includes it if it's usd and require
includes it period
[19:24] <@qwertydawom> Well, in fact
[19:24] <@qwertydawom> require is called before the execution of the script
[19:24] <Siph0n> ooo
[19:25] <@qwertydawom> wheras include can be called, if needed, during the
execution of the script
[19:25] <Siph0n> oh ok
[19:25] <Siph0n> so require is the equiv of #include
[19:25] <@qwertydawom> almost that, yeah :)
[19:25] <Siph0n> sweet
[19:26] <@qwertydawom> and, include will always need a conditional statement
[19:26] <@qwertydawom> example :
[19:26] <@qwertydawom> <?php
[19:26] <@qwertydawom> ...
[19:26] <@qwertydawom> if($value)
[19:26] <@qwertydawom> {
[19:26] <@qwertydawom> include("scriptA.inc.php");
[19:26] <@qwertydawom> require("scriptB.inc.php");
[19:26] <@qwertydawom> }
[19:26] <@qwertydawom> ...
[19:26] <@qwertydawom> ?>
[19:26] <@qwertydawom> Here, the scriptB will always be included
[19:26] <@qwertydawom> But, the scriptA will only be included if the
condition is true
[19:27] <@qwertydawom> got it? :)
[19:27] <UmInAsHoE> yep
[19:27] <@qwertydawom> cool
[19:27] <Siph0n> ok
[19:27] <Siph0n> so
[19:27] <Siph0n> Require it is :P
[19:27] <@qwertydawom> :p
[19:28] <@qwertydawom> so so so, now, if you want, we're going to see
"environment's variables" :)
[19:28] <Siph0n> global variables?
[19:29] <@qwertydawom> nope
[19:29] <@qwertydawom> environment :)
[19:30] <Siph0n> o
[19:30] <@qwertydawom> ok?
[19:30] <nnp> e.g PATH etc
[19:30] <Siph0n> ah i'm a bit out of it tonight
[19:30] <@qwertydawom> lol, well, in fact
[19:30] <@qwertydawom> to be honest, environment variables are part of
globals' :)
[19:31] <@qwertydawom> They belong to the family of : $_SERVER
[19:31] <mu[a]> i don't understand but i haven't read the link
[19:34] <@qwertydawom> IX - Environment variables
[19:35] <@qwertydawom> Simple code :
[19:35] <@qwertydawom> <?
[19:35] <@qwertydawom> print("Votre adresse IP est :
$_SERVER['REMOTE_ADDR']");
[19:35] <@qwertydawom> ?>
[19:35] <@qwertydawom> Shit!
[19:35] <mu[a]> :O
#lecture You need voice (+v) (#lecture)
[19:35] <@qwertydawom> Votre adresse IP est = Your IP address is*
[19:36] <@qwertydawom> And, now you know how to get the IP address from
one of your visitors ;)
[19:36] <@qwertydawom> it's the environment variable :
$_SERVER['REMOTE_ADDR']
[19:37] <@qwertydawom> an other useful one is :
[19:37] <@qwertydawom> HTTP_USER_AGENT
[19:37] <@qwertydawom> or :
[19:37] <@qwertydawom> HTTP_REFERER
[19:38] <@qwertydawom> that's how you can get infos from your visitors :)
and/or scare people with 'their' ip in 'your' sig at the forums ;)
[19:40] <@qwertydawom> And, now, if you want to know the configuration and
the version your server's using, this function will do the trick :) :
[19:40] <@qwertydawom> phpinfo()
[19:40] <@qwertydawom> <?
[19:40] <@qwertydawom> phpinfo();
[19:40] <@qwertydawom> ?>
[19:40] <@qwertydawom> It will print :
[19:40] <@qwertydawom> .. too long to be shown here ;)
[19:40] <Siph0n> hmm..
[19:41] <Siph0n> hold on...imma og make my friend shit his pants XD
[19:41] <@qwertydawom> hahaha
[19:41] <mu[a]> lmao
[19:41] <@qwertydawom> alright :)
[19:41] <mu[a]> with the "your IP is?"
[19:41] <@qwertydawom> I think so ;)
[19:41] <Siph0n> is <?php needed or is <? fine?
[19:42] <@qwertydawom> it's fine :)
[19:42] <@qwertydawom> in fact, <?php is better
[19:42] <@qwertydawom> but, <? works as well..
[19:42] <mu[a]> i mean
[19:42] <@qwertydawom> (so, to do such a little script, you can use it :))
[19:42] <@qwertydawom> yes mu?
[19:42] <mu[a]> are there times "<?" is preferable?
[19:43] <@qwertydawom> no
[19:43] <mu[a]> so alright
[19:43] <@qwertydawom> yes :)
[19:43] <mu[a]> for all practical purposes
[19:43] <Siph0n> I think it's a "newer browsers understand <? all browsers
understand <?php" issue?
[19:43] <mu[a]> we can disregard "<?" ?
[19:43] <@qwertydawom> if you want
[19:43] <@qwertydawom> but, in fact
[19:44] <@qwertydawom> the problem with "<?" is it will slow down the script
[19:44] <@qwertydawom> why?
[19:44] <mu[a]> yeah
[19:44] <mu[a]> why?
[19:44] <@qwertydawom> because, for example, in xml, the tag is : <?xml
[19:44] <mu[a]> ohhhh
[19:44] <mu[a]> so it has to parse more stuff?
[19:44] <@qwertydawom> so, when you put your php script with only "<?"
[19:44] <@qwertydawom> it has to check if the code within the tags is php,
or xml etc.
[19:45] <mu[a]> damn dudes
[19:45] <@qwertydawom> that's why it's better to use : <?php :)
[19:45] <Siph0n> doesn't work for me...must be something wrong with my php
[19:45] <@qwertydawom> hmm
[19:45] <mu[a]> i told you i'm learning something...even if it is slowly
[19:45] <mu[a]> print it here Siph0n
[19:45] <@qwertydawom> yes :)
[19:45] <Siph0n> http://siph0n.r8.org/Untitled.php
[19:46] <mu[a]> no
[19:46] <@qwertydawom> but, what's the source?
[19:46] <Siph0n> <html>
[19:46] <Siph0n> <body>
[19:46] <Siph0n> <?php
[19:46] <Siph0n> print("Hi, your IP is : $_SERVER['REMOTE_ADDR']");
[19:46] <Siph0n> echo 'Thanks for the info!';
[19:46] <Siph0n> ?>
[19:46] <Siph0n> </body>
[19:46] <Siph0n> </html>
[19:46] <@qwertydawom> weird
[19:46] <@qwertydawom> it should work..
[19:47] <mov_21h> try
[19:47] <mov_21h> $ip = $_SERVER['REMOTE_ADDR'];
[19:47] <mov_21h> print("hi ... $ip");
[19:47] <@qwertydawom> yep
[19:47] <@qwertydawom> or, maybe with double quotes
[19:47] <@qwertydawom> like :
[19:48] <@qwertydawom> $_SERVER["REMOTE_ADDR"]
[19:54] <Siph0n> what verison of php you reccommend?
[19:54] <Siph0n> 5 or 4?
[19:54] <Siph0n> recommend*
[19:54] <@qwertydawom> Well, I'm using version 4
[19:54] <@qwertydawom> but, 5th one is pretty cool because of the "bc" :)
[19:55] <@qwertydawom> it allows you to deals with big numbers
[19:55] <Siph0n> oh
[19:55] <Siph0n> yeah *nix calc
[19:55] <Siph0n> bc is the shit
[19:55] <Siph0n> dc is a bit odd
[19:56] <Siph0n> i'll try 5 again
[19:56] <Siph0n> if it doesn't work
[19:56] <Siph0n> i'll do 4
[19:56] <@qwertydawom> lol ok
[19:56] <@qwertydawom>
http://www.phpbuilder.com/board/archive/index.php/t-10298620.html :)
[20:00] <@qwertydawom> X - Useful functions
[20:01] <@qwertydawom> addslashes() : the name says it all.. it adds
backslashes before special chars
[20:01] <@qwertydawom> example : $res = addslashes("I'm");
[20:01] <@qwertydawom> result : I\'m
[20:02] <@qwertydawom> stripslashes : it does the contrary
[20:02] <@qwertydawom> dechex() : returns the hexadecimal value of a number
[20:02] <@qwertydawom> example : 1234 -> 4D2
[20:03] <@qwertydawom> ceil() : returns the following integer
[20:03] <@qwertydawom> example : $res = ceil("12.1");
[20:03] <@qwertydawom> result : 13
[20:04] <@qwertydawom> (use floor() to get the previous integer and
round() for the closest integer)
[20:04] <@qwertydawom> chunk_split() : we'll directly see an example :
[20:05] <@qwertydawom> $res = chunk_split("DGDFEF","2","-");
[20:05] <@qwertydawom> result : DG-DF-EF-
[20:05] <@qwertydawom> htmlentities() : replaces chars with their
equivalent in html
[20:05] <@qwertydawom> example : $res = htmlentities("&");
[20:05] <@qwertydawom> result : &amp;
[20:06] <@qwertydawom> strlen() : returns the length of the string
[20:06] <@qwertydawom> strtoupper() : capitalize all the letters (the
opposite function is : strtolower())
[20:07] <mu[a]> why ceil tho?
[20:07] <mu[a]> what's it mean?
[20:07] <Siph0n> ceiling
[20:07] <mu[a]> =)
[20:07] <mu[a]> awesome
[20:07] <Siph0n> No wonder people like php
[20:07] <@qwertydawom> :)
[20:08] <Siph0n> damn it..all languages need this stuff
[20:08] <@qwertydawom> hahaha
[20:08] <mu[a]> and strtoupper?  i get the "upper"
[20:08] <Siph0n> i can't tell you how many times "addslashes()" would've
saved my ass in perl..
[20:08] <@qwertydawom> =string to upper case :)
[20:08] <mu[a]> xD
[20:09] <@qwertydawom> <Siph0n> i can't tell you how many times
"addslashes()" would've saved my ass in perl.. --> hehe, I don't know perl
(properly)
[20:13] <@qwertydawom> yeah, another trick, when you don't know a function
in php : http://www.php.net/thefunctionyoudontknow
[20:13] <@qwertydawom> :)