Лесен и и функционален GSM Site
Автор: Bummer
Първоначално да кажа едно „здрасти !“ 🙂
В този урок ще представя как можем да си направим много прост, но и функционален gsm site.Не се използват database, не се променя нищо.Може направо copy->paste
И да започване.
index.php
<html>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<center>
<a href=add.php>Добави нов GSM</a> <a href=upload.php>Качи снимка на GSM</a><p>
</center>
<div align="left">
<form action="search.php" method="post"> //
<input type="text" name="searched"> // това е формата затърсене
<input type="submit" value="search"> //
</form>
<center>
GSM апарати:<br>
</html>
<?
include "indexed.php"; //чрез indexed.php изкарваме добавените GSMs
?>
</center>add.php
<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<center>
<form method="POST" action="added.php">
Марка: <input type="text" name="gsm"><p>
Модел: <input type="text" name="model"><p>
Година: <input type="text" name="god"><p>
Памет: <input type="text" name="memory"><p>
Поддръжа MP3: <select name="mp3">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Радио: <select name="rad">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Батерия: <input type="text" name="bat"><p>
Тегло: <input type="text" name="teglo"><p>
Камера: <select name="cam">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Цветове: <input type="text" name="colors"><p>
Резолюция: <input type="text" name="resolution"><p>
Тип дисплей: <input type="text" name="disp"><p>
InfraRed Port: <select name="irp">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Bluetooth: <select name="blue">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Xhtml: <select name="xhtml">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Поддържа Java: <select name="js">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Получаване и изпращане на mails: <select name="mails">
<option value="<font color=green><b>Да</b></font>">Да</option>
<option value="<font color=red><b>Не</b></font>">Не</option>
</select>
<p>
Снимка: <input type="text" name="img"><p>
<input type="submit" value="Add" name="send">
</form>added.php
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<center>
<?php
$ip = getenv("REMOTE_ADDR"); //вземаме ip на добавящия
$mail = $_POST['mails']; // ето ги постовете, които записваме
$js = $_POST['js'];
$xhtml = $_POST['xhtml'];
$blue = $_POST['blue'];
$god = $_POST['god'];
$irp = $_POST['irp'];
$rad = $_POST['rad'];
$cam = $_POST['cam'];
$gsm = $_POST['gsm'];
$disp = $_POST['disp'];
$res = $_POST['resolution'];
$model = $_POST['model'];
$Memory = $_POST['memory'];
$MP3 = $_POST['mp3'];
$bat = $_POST['bat'];
$teglo = $_POST['teglo'];
$colors = $_POST['colors'];
$img = $_POST['img'];
$filename = "$gsm$model.html";
$directory = "./gsms/";
$noext = current(explode(".",$filename));
if(file_exists($directory.$filename)){ // проверяваме, дали някой не е добавил преди нас същия gsm
echo "Gsm <b>$noext</b> е бил добавен от някой друг, преди вас. <br><a href=\"add.php\">НАЗАД</a>";
exit();
}
$file = "./gsms/$gsm$model.html"; //записваме gsm под формата на html file
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "<center><b>GSM - $gsm $model<br>Година на производство - $god<br>Памет - $Memory<br>Mp3 - $MP3<br>Радио - $rad<br>Тип батерия - $bat<br>Тегло - $teglo<br>Камера - $cam<br>Цветове - $colors<br>Резолюция - $res<br>Дисплей - $disp<br>InfraRed Port - $irp<br>Bluetooth - $blue<br>Xhtml - $xhtml<br>Java - $js<br>Изпращане и получаване на mails - $mail<p><img src=$img><p>Gsm бе добавен от Ip Address $ip";
fwrite($handle, $data);
fclose($handle);
echo "Gsm бе добавен - <a href=./gsms/$gsm$model.html>$gsm$model</a> !";
?>ето урока с тази търсачка – http://web-tourist.net/login/login/view.php?st=650 .В случая е леко преработена.
search.php
<html>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Search</title>
</head>
<center>
<?php
$flag=0;
$dir="gsms/";
if(isset($_POST['searched'])) {
foreach(glob($dir."*") as $file) {
if(@eregi($_POST['searched'], str_replace($dir, "", $file))) {
$noext = current(explode(".",$file)); //понеже gsm се записват като .html file, чрез тази функция изкарваме само името на file, без разширението
echo("<a href='".$file."' target=_blank>".str_replace($dir, "", $noext)."</a><br />\n");
$flag+=1;
}
}
if($flag==false) {
echo("Няма намерени файлове.");
}
}
?>
</center>
</body>
</html>indexed.php
Урок – http://web-tourist.net/login/login/view.php?st=1711
<?php
$dir = "./gsms/";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != 'Thumbs.db' && $file != 'banner.jpg' && $file != '..'){
$noext = current(explode(".",$file)); // като в търсачката - за да не се изкарва разширението .html
echo "<a href=./gsms/$file>$noext</a> <br />";
}
}
closedir($dh);
}
}
?>upload.php
урок – http://web-tourist.net/login/login/view.php?st=1898
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head>
<?php
$site_link = "Link kam site"; //Лйнк към сайта ви, където се намира ъплоад формата (отзад не слагайте /)
$upload_dir = "upload/"; //Може да се смени с друга папка , която вие си пожелаете
$size_bytes = 10485760; //Големината на файла в bytes
$extlimit = "yes"; //Да има лимит или не (yes/no)
$limitedext = array(".jpg",".gif",".png"); //Разрешени файлове за качване
//Далй папката в която ще се качват файловете съществува или не
if (!is_dir("$upload_dir")) {
die ("Грешка: Папката <b>($upload_dir)</b> не съществува");
}
if(isset($_POST['uploadform'])){
// Когато полето на формата е попалнено тогава ще се качват нещата
//Започване на ъплоад формата.
$file_tmp = $_FILES['filetoupload']['tmp_name'];
$file_name = $_FILES['filetoupload']['name'];
//Взимане на размера на файла
$file_size = $_FILES['filetoupload']['size'];
//Показване когато не е избран файл
if (!is_uploaded_file($file_tmp)){
echo "Грешка : Моля изберете файл за качване!. <br>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit(); //Излиза от това и не прави нищо друго.
}
//Проверява дали големината на файла съвпада с допустимата
if ($file_size > $size_bytes){
echo "Грешка : Файла е твърде голям. Той трябва да бъде под <b>". $size_bytes / 1024 / 1024 ."</b> MB. <br>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}
//Далй файла е от допустимите
$ext = strrchr($file_name,'.');
if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) {
echo("Грешка : Този тип файл не е позволен за качване. ");
exit();
}
// Далй има такъв файл
if(file_exists($upload_dir.$file_name)){
echo "Името на файла <b>$file_name</b> вече е заето. <br>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}
$snimkata = $site_link."/".$upload_dir."".$file_name;
//На мястото на интервала (space) се слага "_".
$file_name = str_replace(' ', '_', $file_name);
//Местене на файла в папката която сме посочили отгоре на скрипта
//move_uploaded_file('filename','destination') С тази функция преместваме файла в избраната от нас диреактория
if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {
//Казва на потребителя кога файла е качен и дава лйнк към него
echo "<center>Файла (<a href=\"$upload_dir$file_name\">$file_name</a>) е качен успешно! <br><br>
<center><img src=\"".$site_link."/".$upload_dir."".$file_name."\" border=\"0\"><br>
<b>HTML Link към картинката</b><br>
<input type=\"text\" value='<a href=".$snimkata."><img src=".$snimkata." border=0></a>' size=\"100\"><br>
»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}else{
//Показва грешка при провал на преместването
echo "Има проблем при преместването на вашия файл. <br>»<a href=\"$_SERVER[PHP_SELF]\">НАЗАД</a>";
exit();
}
//Край на ....
// Ако формата не е попълнена да се покаже това :
}else{
//Началото на else
// Проверяване на сички наши заявки (да не се надвишава големината , и да е един от избраните типове файлове от нас)
for($i=0;$i<count($limitedext);$i++){
if (($i<>count($limitedext)-1))$commas=", ";else $commas="";
list($key,$value)=each($limitedext);
$all_ext .= $value.$commas;
}
//Изложението
echo "<br><h3>Качване на файлове</h3>"
."- Позволени типове : $all_ext</b> <br>"
."- Максимална големина = ". $size_bytes / 1024 / 1024 ."MB"
."<p><form method=\"post\" enctype=\"multipart/form-data\" action=\"\">"
."<input type=\"file\" name=\"filetoupload\"><br>"
."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br>"
."<input type=\"Submit\" name=\"uploadform\" value=\"Качи\">"
."</form>";
}//Край на else
?>Сега остава да направим 2 папки – gsms (мястото, където ще се записват gsm-ите) и upload (където ще се качват снимки на gsm)


