Lihtsaid php ja mysql näiteid: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
Resümee puudub
1. rida: 1. rida:
Allpool on näited kasutajana fstudent ja andmebaasiga facebook, 2011 praksis kasuta userit rstudent ja andmebaasi reddit, samuti tee oma tabelid.
Allpool on näited kasutajana st2014 ja andmebaasiga st2014.


Hello world php-s:
Hello world php-s:
33. rida: 33. rida:


<?php
<?php
$con = mysql_connect("localhost","fstudent","student");
$con = mysql_connect("localhost","st2014","...");
if (!$con) {
if (!$con) {
   die('Could not connect: ' . mysql_error());
   die('Could not connect: ' . mysql_error());
}
}


mysql_select_db("facebook", $con);
mysql_select_db("st2014", $con);


$result = mysql_query("SELECT * FROM users");
$result = mysql_query("SELECT * FROM users");
122. rida: 122. rida:
<?php
<?php


$con = mysql_connect("localhost","fstudent","student");
$con = mysql_connect("localhost","st2014","...");
if (!$con) {
if (!$con) {
   die('Could not connect: ' . mysql_error());
   die('Could not connect: ' . mysql_error());
129. rida: 129. rida:
$sex = "X";
$sex = "X";


mysql_select_db("facebook", $con);
mysql_select_db("st2014", $con);


if (isset($_REQUEST['sex'])) {
if (isset($_REQUEST['sex'])) {
184. rida: 184. rida:
   global $q, $c;
   global $q, $c;


   $con = mysql_connect("localhost","fstudent","student");
   $con = mysql_connect("localhost","st2014","...");
   if (!$con) {
   if (!$con) {
     die('Could not connect: ' . mysql_error());
     die('Could not connect: ' . mysql_error());
   }
   }


   mysql_select_db("facebook", $con);
   mysql_select_db("st2014", $con);


   $q="SELECT * from users where ";
   $q="SELECT * from users where ";
255. rida: 255. rida:
   global $q, $c;
   global $q, $c;


   $con = mysql_connect("localhost","fstudent","student");
   $con = mysql_connect("localhost","st2014","...");
   if (!$con) {
   if (!$con) {
     die('Could not connect: ' . mysql_error());
     die('Could not connect: ' . mysql_error());
   }
   }


   mysql_select_db("facebook", $con);
   mysql_select_db("st2014", $con);


   $q="SELECT * from users where ";
   $q="SELECT * from users where ";

Redaktsioon: 18. november 2014, kell 13:35

Allpool on näited kasutajana st2014 ja andmebaasiga st2014.

Hello world php-s: http://dijkstra.cs.ttu.ee/~tammet/k1.php

Algus.<p>

<?php echo '<p>Hello World</p>'; ?> 

<p>Lopp.

Nii saab uurida PHP settungeid, praksis see otseselt oluline ei ole: http://dijkstra.cs.ttu.ee/~tammet/k2.php

Algus.<p>

<?php 

echo '<p>calling phpinfo():</p>'; 
phpinfo();

?> 

<p>Lopp.

Esimene andmebaasipäring: http://dijkstra.cs.ttu.ee/~tammet/k3.php

Algus.<p>


<?php
$con = mysql_connect("localhost","st2014","...");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("st2014", $con);

$result = mysql_query("SELECT * FROM users");

while($row = mysql_fetch_array($result)) {
  echo $row['username'] . " " . $row['name'];
  echo "<br />";
}

mysql_close($con);

?> 

<p>Lopp.

Kui $_REQUEST väljadel ei ole väärtust, siis annab PHP rämeda warningu: http://dijkstra.cs.ttu.ee/~tammet/k4.php


<body>
Algus.
<p>

<?php
echo "Hi, I'm a <b>PHP</b> script with input a: ";
echo $_REQUEST['a'];
echo " and input b: ";
echo $_REQUEST['b'];
?>

<form method="post">
a <input type="text" name="a" autocomplete="off"><br>
b <input type="text" name="b" autocomplete="off"><br>
<input type="submit">
</form>

<p>
Lopp.
</body>

Warningu vältimiseks on mõistlik kasutada isset kontrollifunktsiooni: http://dijkstra.cs.ttu.ee/~tammet/k5.php

<body>
Algus.
<p>

<?php

if (isset($_REQUEST['a'])) { 
  echo "<br>input a: ";
  echo $_REQUEST['a'];
}
if (isset($_REQUEST['b'])) {
 echo "<br>input b: ";
 echo $_REQUEST['b'];
}

?>

<form method="post">
a <input type="text" name="a" autocomplete="off"><br>
b <input type="text" name="b" autocomplete="off"><br>
<input type="submit">
</form>

<p>
Lopp.
</body>

Andmebaasipäring, kus me ise paneme kokku sql where tingimuse vastavalt kasutaja antud väärtustele (siin näites ei ole see turvaliselt tehtud, vaata paari järgmist). http://dijkstra.cs.ttu.ee/~tammet/k6.php

<body>
Algus.
<p>

<?php

$con = mysql_connect("localhost","st2014","...");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

$sex = "X";

mysql_select_db("st2014", $con);

if (isset($_REQUEST['sex'])) {
  $sex = $_REQUEST['sex'];
}

$q="SELECT * from users where sex='$sex'";

echo "query: $q <br>";
$result = mysql_query($q);

echo "leitud:<p>";
while($row = mysql_fetch_array($result)) {
  echo $row['username'] . " " . $row['name'];
  echo "<br />";
}

mysql_close($con);

?>

<form method="post">
sex  <input type="text" name="sex" autocomplete="off"><br>
<input type="submit">
</form>

<p>
Lopp.

Veidi keerukama where tingimuse kokkuklopsimine kasutaja antud väärtustest (endiselt ei ole turvaline): http://dijkstra.cs.ttu.ee/~tammet/k7.php

<body>
Algus.
<p>

<?php

$q="";
$c="";

function addcond($fld) {
  global $q, $c;

  if (isset($_REQUEST[$fld])  && $_REQUEST[$fld]!="") {
    if ($c!="") $c=$c . " and ";
    $c=$c . " $fld='" . $_REQUEST[$fld] ."' ";
  }
}

function main() {
  global $q, $c;

  $con = mysql_connect("localhost","st2014","...");
  if (!$con) {
    die('Could not connect: ' . mysql_error());
  }

  mysql_select_db("st2014", $con);

  $q="SELECT * from users where ";
  $c="";

  addcond("username");
  addcond("name");
  addcond("sex");

  if ($c=="") {
    echo "<p>palun sisesta midagi otsinguvaljadele!<p>";
  } else {
    $q=$q . $c;
    echo "query: " . $q . "<br>";
    $result = mysql_query($q);

    echo "leitud:<p>";
    while($row = mysql_fetch_array($result)) {
      echo $row['username'] . " " . $row['name'];
      echo "<br />";
    }
  }
  mysql_close($con);
}

main();

?>

<form method="post">
username <input type="text" name="username" autocomplete="off"><br>
name <input type="text" name="name" autocomplete="off"><br>
sex  <input type="text" name="sex" autocomplete="off"><br>
<input type="submit">
</form>

<p>
Lopp.
</body>

Siin paneme juurde esmaselt vajaliku turva (et kasutaja ei saaks sql süntaksit sisestada), selleks on funktsioon mysql_real_escape_string: http://dijkstra.cs.ttu.ee/~tammet/k8.php

<body>
Algus.
<p>

<?php

$q="";
$c="";

function addcond($fld) {
  global $q, $c;

  if (isset($_REQUEST[$fld])  && $_REQUEST[$fld]!="") {
    if ($c!="") $c=$c . " and ";
    $c=$c . " $fld='" . mysql_real_escape_string($_REQUEST[$fld]) ."' ";
  }
}

function main() {
  global $q, $c;

  $con = mysql_connect("localhost","st2014","...");
  if (!$con) {
    die('Could not connect: ' . mysql_error());
  }

  mysql_select_db("st2014", $con);

  $q="SELECT * from users where ";
  $c="";

  addcond("username");
  addcond("name");
  addcond("sex");

  if ($c=="") {
    echo "<p>palun sisesta midagi otsinguvaljadele!<p>";
  } else {
    $q=$q . $c;
    echo "query: " . $q . "<br>";
    $result = mysql_query($q);

    echo "leitud:<p>";
    while($row = mysql_fetch_array($result)) {
      echo $row['username'] . " " . $row['name'];
      echo "<br />";
    }
  }
  mysql_close($con);
}

main();

?>

<form method="post">
username <input type="text" name="username" autocomplete="off"><br>
name <input type="text" name="name" autocomplete="off"><br>
sex  <input type="text" name="sex" autocomplete="off"><br>
<input type="submit">
</form>

<p>
Lopp.
</body>

Siin on näide faili uploadimisest, seda aga redditi praksis vaja ei ole: http://dijkstra.cs.ttu.ee/~tammet/k9.php

<body>
Algus.
<p>

<?php

echo "Hi, I'm a <b>PHP</b> script uploading a file: ";
echo '<br> name ' . $_FILES['userfile']['name'];
echo '<br> type ' . $_FILES['userfile']['type'];
echo '<br> size ' . $_FILES['userfile']['size'];
echo '<br> tmp_name ' . $_FILES['userfile']['tmp_name'];
echo '<br> error '. $_FILES['userfile']['error'];

$uploaddir = '/tmp/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

?>

<form enctype="multipart/form-data" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>


<p>
Lopp.
</body>