יום חמישי, 10 בנובמבר 2016

מדריך PHP מתחילים בחינם כל מה שצריך לדעת תכנות בניית אתרים

מדריך PHP מתחילים בחינם כל מה שצריך לדעת תכנות בניית אתרים

PHP היא שפת תכנות אתרים מתקדמת מאוד, אך פשוטה וידידותית.
PHP הינה השפה המתחרת ל-ASP מבית היוצר של מיקרוסופט.


על מנת להתחיל לכתוב לכתוב ב-PHP נצטרך את הממשק המתאים. הדרך הטובה ביותר היא לחפש אתר המאפשר אחסון אתרים חינם (שרת חינמי שעומד לרשותך) אשר תומך ב-PHP.

לקח לי חצי שעה בערך למצוא אתר כזה.
בעצם אתם ממש בונים אתר עם כתובת (אומנם לא כתובת של com. או co.il. אבל אחרת לא מוכרת.

לאחר מכן תתחברו ל-FTP שלכם, גם כאן לקח לי זמן למצוא תכנה נורמלית חינמית, מצאתי תכנה נחמדה מאוד
FREE FTP MANAGER

רק לאחר מכן נוכל להתחיל לתכנת ב-PHP וללמוד את השפה.

אנחנו נשתמש ב-noteped / תכנת הכתבן של WINDOWS.
לקובץ שלנו אנחנו נקרא index.php
הסיומת של הקובץ היא PHP המעידה על כך שקובץ זה הוא קובץ PHP.

המבנה של התכנית שלנו יהיה קבוע:


<!DOCTYPE html>
<html>
<body>

<title>My first PHP page</title>
<?php
//here we will write our php code.
?>

</body>
</html>

שימו לב כי הסימן // מסמן הערה והטקסט אחריו לא ישפיע על התכנית.
בסוף כל פקודה יהיה נקודה פסיק ;

פקודות בסיסיות:
echo "write your text here";
כתיבת טקסט

echo "<br>";
כמו כן על מנת לרדת שורה נבצע

<title>My first PHP page</title>
קביעת כותרת הדף המופיע למעלה בעמוד

$nameVariable = ValueOfVariable;
יצירת משתנה וקביעת ערכו
$color = "red";
יצרנו משתנה בשם צבע, והכנסנו לו את הערך מסוג טקסט אדום

$a =3;


נשלב את שתי הפקודות הבסיסיות שלמדנו:

$color = "red";
echo "I have a $color hose";

 מה שיוצג על המסך:
I havea a red hose


$x=4;
$y=5;
echo $x+$y;

מה שיוצג על המסך: 5



אם מגדירים משתנה כלשהו בתוך פונקציה (function) הוא מקומי לפונקציה ולא יהיה שמיש מחוצה לה.
אם מגדירים משתנה כלשהו בהתחלה, ללא פונקציה הוא משתנה גלובלי (global) ואם נרצה להשתמש בו בתוך פונקציה נגדיר את המשתנים בתוך הפונקציה שוב ללא הערך, ונציין תחילה כי מדובר ב global.



טיפוסי משתנים:
נגדיר משתנים בטיפוסים שונים:

String
$a="hey everybody">;


integer
$w=34;


float
$t=3.3;


boolean
$ff=true;
$ffff=false;


array
$s=array ("blue","red");




פונקציות שימושיות מובנות בשפה:

emty($s);
returns true if emtpy, and false if not empty
בודקת האם המשתנה ריק או לא

strlen("my string");
מחזיר את האורך של המחרוזת

str_word_count("here my string");
מחזיר את מספר המילים

strrev(hey);
הופך את המחרוזת

strpos("hey brother",brother);
מחזיר את הפוזיציה של המילה השנייה, אם לא קיימת מחזיר שקר

str_replace("hello","bye", "hello world");
מחליף את המילה שלום במילה ביי




תנאי
if(20>10)
{
//commit
}



if(20>10)
{

//commit;

}


else
{

//commit;
}









if(20>10)
{

//commit
}

elseif(10==10)
{

}

else
{

}




while(10>$x)
{
//commit;
}
כל עוד התנאי מתקיים בצע



for($x=0; $x<10; $x++)
{
echo "$x <br>";
}


פונקציה
Function nameFunction (Value the fuction get)
{
//body of function;

return WhatTheFunctionReturn;

}


פונקציה שעושה חיבור בין שני מספרים

<!DOCTYPE html>
<html>
<body>

<title>My first PHP page</title>

<?php
function calculator1 ($s,$y)
{
echo "the first number is" . $s;
echo "<br>";
echo "the second number is ". $y;
echo "<br>";
return $s+$y;
}

echo calculator1 (4, 50);

?>

</body>
</html>



הגדרה של מערך:



$colors = array ("red","green", "blue");
echo "I have a $colors[0] home and $colors[1] grass";

תוצאה
I have a red home and green grass


פונקציות של מערכים:
count(NameOfArray);
סופר את כמות האיברים במערך
אם נרצה להדפיס את כל האיברים במערך:

for($g=0; $g<count($colors); $g++)
{
echo "<br>";
echo $colors[$g];
}


על מנת ליצור תוכנה אטרקטיבית אנחנו צריכים להעביר מידע ממקום למקום... למשל טקסט שהמשתמש מכניס בתכנית ולהשתמש בטקסט הזה

יש פה קטע תכנית נחמד - נפענח אותו ונלמד דברים חדשים.


<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit"></form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field    $name = $_POST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>


</body>
</html>
method
אנחנו הולכים להשתמש בשיטה (mehod) בשם POST, אני ממליץ להשתמש בשיטה הזו, כמו כן מדובר בשיטה ש העברת משתנים.

SERVERֹ_
נקבל מידע אודות ה-SERVER, השרת שלנו. במקרה הזה בחרנו לקבל PHPֹֹֹ_SELF כלומר את הכתובת של הקובץ הנוכחי. לקובץ זה אנחנו נעביר את הנתונים. שימו לב שאם נרצה להעביר את הנתונים לקובץ אחר נרשום את שם הקובץ (במידה והוא נימצא באותה תיקייה של הקובץ שאליו אנחנו כובים)

יצירת תיבת טקסט - שהתוכן הרשום בה יישמר במשתנה בשם fname

יצירת כפתור פיזי, ששמו submit


אוסף מידע מהשרת, ומבקש לקבל את הבקשה לשיטה (request method) במידה והיא POST (השיטה שבה השתמשנו)  נפעל לפי מה שכתוב בהמשך







תכנית נחמדה של מעבר מידע לקובץ עצמו

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
<br>
Age:<input type="text" name="fage">
<br>
City:<input type="text" name="fcity">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
     $name=$_POST['fname'];
     $age=$_POST['fage'];
     $city= $_POST['fcity'];
    if (empty($name) or empty($age) or empty($city)) {
        echo "One or more details is missing!!";
    }
 else {
       echo "your name is " .$name. ", and your age is " . $age. ", you live in " . $city   ;

    }
}
?>

</body>
</html>




מעבר של מידע בין 2 קבצים

עמוד ראשי:

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>



העמוד שאליו נעבור אחרי שנקיש על הכפתור שלח - ואליו יישלח המידע
<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>





תכנית טובה של מעבר מידע לאותו קובץ כולל הגנות על המידע שמגיע

<html>
<body>


<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">


Name: <input type="text" name="name">
<br>
E-mail: <input type="text" name="email">
<br>
Website: <input type="text" name="website">
<br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<br>

<input type="submit">
</form>




<?php
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
echo "<br>";
echo "<br>";
echo $name;


?>

</body>
</html>






טופס מצוין אשר שולח את המידע לאותו קובץ עצמו ומשתמש במידע הזה, כולל הגנות על האתר מפני האקרים

<html>
<body>


<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">


Name: <input type="text" name="name">
<br>
E-mail: <input type="text" name="email">
<br>
Website: <input type="text" name="website">
<br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<br>

<input type="submit">
</form>




<?php
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

if( empty($_POST["name"]))
{
$name="hey";
}
else
{
  $name = test_input($_POST["name"]);
}
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
echo "<br>";
echo "<br>";
echo $name;


?>



</body>
</html>





התחברות והוספה לDATA BASE עובד!!

<!DOCTYPE HTML>  
<html>
<head>

</head>
<body>  


<?php

//$connection = mysql_connect('localhost','u494410737_admin','abc123') or die('cant connect to data base');

$mysqli = new mysqli('localhost', 'u494410737_admin', 'abc123', 'u494410737_msg');

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}


$sql = "INSERT INTO Chat (Nam,Msgg)
VALUES ('Dani', 'ok')";

if ($mysqli ->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $mysqli ->error;
}

$mysqli ->close();


?>



</body>
</html>







התחברות ל-DATA BASE והוספה לטבלה בעזרת תיבת טקסט עובד

<!DOCTYPE HTML>
<html>
<head>

</head>
<body>



<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">


Name: <input type="text" name="namee">
<br>
<br>
Message: <input type="text" name="msg">
<br>
<br>

<input type="submit">
</form>









<?php

//$connection = mysql_connect('localhost','u494410737_admin','abc123') or die('cant connect to data base');






$name = $Message=  "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  $name = test_input($_POST["namee"]);
  $Message = test_input($_POST["msg"]);


$mysqli = new mysqli('localhost', 'u494410737_admin', 'abc123', 'u494410737_msg');

if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}


$sql = "INSERT INTO Chat (Nam,Msgg)
VALUES ($name, $Message )";

if ($mysqli ->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $mysqli ->error;
}

$mysqli ->close();


}



function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}



?>



</body>
</html>

אין תגובות:

הוסף רשומת תגובה