Spletni PHP krožek Seznam forumov Spletni PHP krožek
Debata o snovi in domačih nalogah
 
 Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov 
 Tvoj profilTvoj profil   Nimaš novih sporočilNimaš novih sporočil   Odjava [ Marko ]Odjava [ Marko ] 

[8. teden] Rešitve

 
Objavi novo temo   Odgovori na to temo    Spletni PHP krožek Seznam forumov -> Domače naloge
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Marko
Vodja krožka


Pridružen/-a: Ned Apr 2006 19:16
Prispevkov: 85

PrispevekObjavljeno: 12. Jul 2006 13:37    Naslov sporočila: [8. teden] Rešitve Odgovori s citatom Popravi/Izbriši to sporočilo Izbriši to sporočilo Prikaži IP avtorja

1.

Koda:
<?php

$vsebina = file("stevec.txt");
$stevilo = intval($vsebina[0]);
$stevilo++;

$handler = fopen("stevec.txt", "w");
fputs($handler, $stevilo);
fclose($handler);

$slika = imagecreate(60,20);

$bela = imagecolorallocate($slika,255,255,255);
$crna = imagecolorallocate($slika,0,0,0);
imagefilledrectangle($slika,0,0,imagesx($slika)-1,imagesy($slika)-1,$bela);

imagestring($slika,5,5,2,$stevilo,$crna);

header("Content-type: image/gif");
imagegif($slika);
imagedestroy($slika);

?>


Opomba: če v FireFoxu vnesete neposreden URL skripte s števcem, bo izgledalo, kot da števec šteje po 2, ker se v naslovni vrstici naredi še predogled slike.

2.

Koda:
<form method="post" enctype="multipart/form-data">
<input type="file" name="fajl[]"/><br />
<input type="file" name="fajl[]"/><br />
<input type="file" name="fajl[]"/><br />
<input type="file" name="fajl[]"/><br />
<input type="file" name="fajl[]"/><br />
<input type="submit" name="akcija" value="Nalozi"/>
</form>

<?php

if ($_POST['akcija']) {

$pot = "C:\\Program Files\\xampp\htdocs\\";
$thumbs = "C:\\Program Files\\xampp\htdocs\\thumbs\\"; // pot do mape s pomanjšanimi sličicami

for ($i = 0; $i < count($_FILES['fajl']['name']); $i++) {
    if ($_FILES['fajl']['name'][$i] != "") {

   if ($_FILES['fajl']['size'][$i] > 524288) {
       unlink($_FILES['fajl']['tmp_name'][$i]);
       print "Napaka: Datoteka je prevelika!<br />\n";

   } else {
      if ($_FILES['fajl']['type'][$i] != "image/jpeg" AND $_FILES['fajl']['type'][$i] != "image/pjpeg" AND $_FILES['fajl']['type'][$i] != "image/png" AND $_FILES['fajl']['type'][$i] != "image/x-png" AND $_FILES['fajl']['type'][$i] != "image/gif") {
          unlink($_FILES['fajl']['tmp_name'][$i]);
          print "Napaka: Datoteka ni dovoljenega formata (mora biti JPEG, GIF ali PNG)!<br />\n";
      } else {
         move_uploaded_file($_FILES['fajl']['tmp_name'][$i],$pot.$_FILES['fajl']['name'][$i]);

   // izdelava thumbnaila

   if ($_FILES['fajl']['type'][$i] == "image/jpeg" OR $_FILES['fajl']['type'][$i] == "image/pjpeg") {
      $original = imagecreatefromjpeg($pot.$_FILES['fajl']['name'][$i]);
   }
   if ($_FILES['fajl']['type'][$i] == "image/png" OR $_FILES['fajl']['type'][$i] == "image/x-png") {
      $original = imagecreatefrompng($pot.$_FILES['fajl']['name'][$i]);
   }
   if ($_FILES['fajl']['type'][$i] == "image/gif") {
      $original = imagecreatefromgif($pot.$_FILES['fajl']['name'][$i]);
   }

   $razmerje = imagesx($original) / imagesy($original);
   $sirina = 150;
   $visina = $sirina / $razmerje;

   $kopija = imagecreatetruecolor($sirina,$visina);
   imagecopyresampled($kopija,$original,0,0,0,0,$sirina,$visina,imagesx($original),imagesy($original));

   if ($_FILES['fajl']['type'][$i] == "image/jpeg" OR $_FILES['fajl']['type'][$i] == "image/pjpeg") {
      imagejpeg($kopija,$thumbs.$_FILES['fajl']['name'][$i]);
   }
   if ($_FILES['fajl']['type'][$i] == "image/png" OR $_FILES['fajl']['type'][$i] == "image/x-png") {
      imagepng($kopija,$thumbs.$_FILES['fajl']['name'][$i]);
   }
   if ($_FILES['fajl']['type'][$i] == "image/gif") {
      imagegif($kopija,$thumbs.$_FILES['fajl']['name'][$i]);
   }   

   imagedestroy($original);
   imagedestroy($kopija);

   // konec kode za izdelavo thumbnaila

         print "<a href='http://localhost/{$_FILES['fajl']['name'][$i]}'><img src='http://localhost/thumbs/{$_FILES['fajl']['name'][$i]}' alt='predogled'/></a><br /><br />\n";
      }
   }

    }
}


}

?>


3.

index.php:

Koda:
<form action="check.php" method="post">
<img src="captcha.php" alt="CAPTCHA"/> -pretipkaj-> <input type="text" name="captcha" size="6"/> <input type="submit" value="Poslji"/>
</form>


captcha.php:

Koda:
<?php

session_start();
$rand = rand(111111,999999);
$_SESSION['captcha'] = $rand;

$slika = imagecreate(60,20);

$bela = imagecolorallocate($slika,255,255,255);
$crna = imagecolorallocate($slika,0,0,0);
imagefilledrectangle($slika,0,0,imagesx($slika)-1,imagesy($slika)-1,$bela);

imagestring($slika,5,5,2,$rand,$crna);

header("Content-type: image/gif");
imagegif($slika);
imagedestroy($slika);

?>


check.php:

Koda:
<?php

session_start();

if ($_POST['captcha'] == $_SESSION['captcha'] AND $_SESSION['captcha'] != "") {
   print "Pravilno!";
   // tukaj damo poljubno kodo
} else {
   print "Napacno! <a href='index.php'>&lt; Nazaj</a>";
}

unset($_SESSION['captcha']); // obvezno, drugače lahko napadalec večkrat izkoristi isto sejo!

?>


4.

Koda:
<?php

$slika = imagecreatetruecolor(200,256);

$barva1['r'] = 215;
$barva1['g'] = 0;
$barva1['b'] = 5;

$barva2['r'] = 55;
$barva2['g'] = 154;
$barva2['b'] = 159;

$k['r'] = abs($barva1['r'] - $barva2['r'])/255;
$k['g'] = abs($barva1['g'] - $barva2['g'])/255;
$k['b'] = abs($barva1['b'] - $barva2['b'])/255;

for ($i = 0; $i < 256; $i++) {
   
   if ($barva1['r'] > $barva2['r']) {
      $r = $barva1['r']-($k['r']*$i);
   } else {
      $r = $barva1['r']+($k['r']*$i);
   }

   if ($barva1['g'] > $barva2['g']) {
      $g = $barva1['g']-($k['g']*$i);
   } else {
      $g = $barva1['g']+($k['g']*$i);
   }


   if ($barva1['b'] > $barva2['b']) {
      $b = $barva1['b']-($k['b']*$i);
   } else {
      $b = $barva1['b']+($k['b']*$i);
   }


   imageline($slika,0,$i,imagesx($slika),$i,imagecolorallocate($slika,$r,$g,$b));
}

header("Content-type: image/png");
imagepng($slika);
imagedestroy($slika);

?>


5.

Koda:
<?php

// nastavitve

$avatar = "slika.jpg";
$pisava = "c:\\program files\\xampp\\htdocs\\04B_30__.TTF";

// konec nastavitev

$original = imagecreatefromjpeg($avatar);

$razmerje = imagesx($original) / imagesy($original);
$sirina = 150;
$visina = $sirina / $razmerje;

$kopija = imagecreatetruecolor($sirina,$visina+20);
imagecopyresampled($kopija,$original,0,0,0,0,$sirina,$visina,imagesx($original),imagesy($original));

$bela = imagecolorallocate($kopija,255,255,255);

$misli = file("misli.txt");
$misel = $misli[rand(0,count($misli)-1)];

imagettftext($kopija,9.0,0,5,$visina+15,$bela,$pisava,$misel);

header("Content-type: image/jpeg");
imagejpeg($kopija);

imagedestroy($original);
imagedestroy($kopija);

?>


Potrebne datoteke: slika.jpg, 04B_30__.TTF in misli.txt
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Spletni PHP krožek Seznam forumov -> Domače naloge Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1
Začni slediti novim sporočilom na to temo
 
Izbriši temo Premakni temo Zakleni temo Razdeli temo 
Pojdi na:  
Da, lahko dodajaš nove teme v tem forumu
Da, lahko odgovarjaš na teme v tem forumu
Da, lahko urejaš svoje prispevke v tem forumu
Da, lahko brišeš svoje prispevke v tem forumu
Da, lahko glasuješ v anketi v tem forumu
Da, lahko urejaš ta forum

Administrativni kotiček


Powered by phpBB © 2001, 2005 phpBB Group