 |
Spletni PHP krožek Debata o snovi in domačih nalogah
|
| Poglej prejšnjo temo :: Poglej naslednjo temo |
| Avtor |
Sporočilo |
Marko Vodja krožka
Pridružen/-a: Ned Apr 2006 19:16 Prispevkov: 85
|
Objavljeno: 12. Jul 2006 13:37 Naslov sporočila: [8. teden] Rešitve |
 |
|
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'>< 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 |
|
 |
|
|