PDA

Просмотр полной версии : Создай Icq магазин у себя на сайте


Isis
17.05.2007, 20:37
ICQ SHOP
Сделал ICQ магазинчик т.к. нечего делать :)

Вообщем все что нужно для магазина в нем все это есть =)
+ в админке можно редактировать, удалять и добавлять номера...

База данных "icq-shop"
CREATE TABLE `uins` (
`id` int(11) NOT NULL auto_increment,
`dig` int(1) NOT NULL,
`number` int(9) NOT NULL,
`type` varchar(32) NOT NULL,
`price` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;

config.php
<?php

$mysql['host'] = 'localhost';
$mysql['pass'] = 'pass';
$mysql['user'] = 'root';
$mysql['port'] = 3306;
$mysql['name'] = 'icq-shop';

$mysql['link'] = mysql_connect($mysql['host'],$mysql['user'],$mysql['pass']);
if (!$mysql['link']) die(mysql_error());
@mysql_query("SET NAMES cp1251");

$mysql['temp'] = mysql_select_db($mysql['name']);
if (!$mysql['temp']) die(mysql_error());

?>

index.php
<?php

include('config.php');

$digs = isset($_GET['digs']) ? intval($_GET['digs']) : '';
$page = isset($_GET['page']) ? intval($_GET['page']) : '0';

echo "<center><a href='?digs=6'>6-знаки</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href='?digs=7'>7-знаки</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href='?digs=8'>8-знаки</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href='?digs=9'>9-знаки</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>";

if(!$digs)
{
$num = 10;
$result = mysql_query("SELECT COUNT(*) as cnt FROM `uins`");
$refs = mysql_result($result, 0, "cnt");
$total = intval(($refs - 1) / $num) + 1;
if(!$page || $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;

$result = mysql_query("SELECT * FROM `uins` ORDER by `number` DESC LIMIT ".$start.", ".$num."");

if (!$result) die(mysql_error());
if(mysql_num_rows($result) == 0) exit("Номера не найдены");

function padezh($int)
{
if(($n = substr($int,-1)) >= 5 && $n <= 10 || $n == 0 || $int >= 10 && $int <= 20) return 2;
if($n >= 2 && $n <= 4) return 1;
return 0;
}

$hm = mysql_num_rows(mysql_query("SELECT * FROM `uins`"));
if($hm)
{
$end = array('','а','ов');
$uins = $hm.' номер'.$end[padezh($hm)].' ';
}

echo "Всего в базе: <b>".$uins."<br/>";

$file = 'index.php';
if($page != 1) $pervpage = " [<a href= ./$file?page=1><< </a>] ";
if($page != $total) $nextpage = " [<a href= ./$file?page=".$total."> >></a>]";
if($page - 2 > 0) $page2left = " [<a href= ./$file?page=".($page - 2).">".($page - 2)."</a>] ";
if($page - 1 > 0) $page1left = " [<a href= ./$file?page=".($page - 1).">".($page - 1)."</a>] ";
if($page + 2 <= $total) $page2right = " [<a href= ./$file?page=".($page + 2).">".($page + 2)."</a>] ";
if($page + 1 <= $total) $page1right = " [<a href= ./$file?page=".($page + 1).">".($page + 1)."</a>] ";

echo $page2left.$page1left."<b>[".$page."]</b>".$page1right.$page2right;

echo "<table align='center' cellpadding='5' cellspacing='1' width='500'>
<tr><td>Номер</td><td>Тип</td><td>Цена</td></tr>";

for($i = 0; $i < mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>".$row['number']."</td>
<td>".$row['type']."</td>
<td>".$row['price']." $</td></tr>";
}

echo '</table>';

} else {

$num = 10;
$result = mysql_query("SELECT COUNT(*) as cnt FROM `uins` WHERE `dig`='".$digs."'");
$refs = mysql_result($result, 0, "cnt");
$total = intval(($refs - 1) / $num) + 1;
if(!$page || $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;

$result = mysql_query("SELECT * FROM `uins` WHERE `dig`='".$digs."' ORDER by `number` DESC LIMIT ".$start.", ".$num."");

if (!$result) die(mysql_error());
if(mysql_num_rows($result) == 0) exit("Номера не найдены");

function padezh($int)
{
if(($n = substr($int,-1)) >= 5 && $n <= 10 || $n == 0 || $int >= 10 && $int <= 20) return 2;
if($n >= 2 && $n <= 4) return 1;
return 0;
}

$hm = mysql_num_rows(mysql_query("SELECT * FROM `uins` WHERE `dig`='".$digs."'"));
if($hm)
{
$end = array('','а','ов');
$uins = $hm.' номер'.$end[padezh($hm)].' ';
}

echo "<center>".$digs."-знаков в базе: <b>".$uins."</center>";

$file = 'index.php';
if($page != 1) $pervpage = " [<a href= ./$file?digs=".$digs."&page=1><< </a>] ";
if($page != $total) $nextpage = " [<a href= ./$file?digs=".$digs."&page=".$total."> >></a>]";
if($page - 2 > 0) $page2left = " [<a href= ./$file?digs=".$digs."&page=".($page - 2).">".($page - 2)."</a>] ";
if($page - 1 > 0) $page1left = " [<a href= ./$file?digs=".$digs."&page=".($page - 1).">".($page - 1)."</a>] ";
if($page + 2 <= $total) $page2right = " [<a href= ./$file?digs=".$digs."&page=".($page + 2).">".($page + 2)."</a>] ";
if($page + 1 <= $total) $page1right = " [<a href= ./$file?digs=".$digs."&page=".($page + 1).">".($page + 1)."</a>] ";

echo $page2left.$page1left."<b>[".$page."]</b>".$page1right.$page2right;

echo "<table align='center' cellpadding='5' cellspacing='1' width='500'>
<tr><td>Номер</td><td>Тип</td><td>Цена</td></tr>";

for($i = 0; $i < mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>".$row['number']."</td>
<td>".$row['type']."</td>
<td>".$row['price']." $</td></tr>";
}

echo '</table></center>';
}
?>

admin.php
<?php

include('config.php');

$do = isset($_GET['do']) ? $_GET['do'] : '';
$digs = isset($_GET['digs']) ? intval($_GET['digs']) : '';
$page = isset($_GET['page']) ? intval($_GET['page']) : '0';
$numb = isset($_GET['numb']) ? intval($_GET['numb']) : '';

if(!get_magic_quotes_gpc())
{
$_POST['type'] = mysql_escape_string($_POST['type']);
}


$dig = strlen($_POST['number']);
$number = intval($_POST['number']);
$type = $_POST['type'];
$price = intval($_POST['price']);

if(!$do == 'add')
{
echo "<center><a href='?do=add'>Добавить номер на продажу</a>";

$num = 10;
$result = mysql_query("SELECT COUNT(*) as cnt FROM `uins`");
$refs = mysql_result($result, 0, "cnt");
$total = intval(($refs - 1) / $num) + 1;
if(!$page || $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;

$result = mysql_query("SELECT * FROM `uins` ORDER by `number` DESC LIMIT ".$start.", ".$num."");

if (!$result) die(mysql_error());
if(mysql_num_rows($result) == 0) exit("Номера не найдены");

function padezh($int)
{
if(($n = substr($int,-1)) >= 5 && $n <= 10 || $n == 0 || $int >= 10 && $int <= 20) return 2;
if($n >= 2 && $n <= 4) return 1;
return 0;
}

$hm = mysql_num_rows(mysql_query("SELECT * FROM `uins`"));
if($hm)
{
$end = array('','а','ов');
$uins = $hm.' номер'.$end[padezh($hm)].' ';
}

echo "Всего в базе <b>".$uins."";

$file = 'admin.php';
if($page != 1) $pervpage = " [<a href= ./$file?page=1><< </a>] ";
if($page != $total) $nextpage = " [<a href= ./$file?page=".$total."> >></a>]";
if($page - 2 > 0) $page2left = " [<a href= ./$file?page=".($page - 2).">".($page - 2)."</a>] ";
if($page - 1 > 0) $page1left = " [<a href= ./$file?page=".($page - 1).">".($page - 1)."</a>] ";
if($page + 2 <= $total) $page2right = " [<a href= ./$file?page=".($page + 2).">".($page + 2)."</a>] ";
if($page + 1 <= $total) $page1right = " [<a href= ./$file?page=".($page + 1).">".($page + 1)."</a>] ";

echo $page2left.$page1left."<b>[".$page."]</b>".$page1right.$page2right;

echo "<table align='center' cellpadding='5' cellspacing='1' width='100%'>
<tr><td>Номер</td><td>Тип</td><td>Цена</td><td>Изменить</td><td>Удалить</td></tr>";

for($i = 0; $i < mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>".$row['number']."</td>
<td>".$row['type']."</td>
<td>".$row['price']." $</td>
<td><a href='?do=edit&numb=".$row['number']."'>Изменить</a></td>
<td><a href='?do=delete&numb=".$row['number']."' onclick='javascript: confirm(\"Вы уверены что хотите удалить этот номер?\")'>Удалить</a></td></tr>";
}

echo '</table></center>';

}


if($do == 'add')
{
?>
<center>
<form method="post">
<table border="0">
<tr><td>ICQ номер: <td><input type="text" name="number" value="" size="10"/></td></tr>
<tr><td>Тип: <td><select name="type">
<option value="" selected="selected"></option>
<option value="inv">inv</option>
<option value="q/a">q/a</option>
<option value="n/p">n/p</option>
</select></td></tr>
<tr><td>Цена: <td><input type="text" name="price" size="10" value=""/>$</td></tr>
<tr><td><input type="submit" name="add" value="Добавить"></td></tr>
</table>
</form></center>
<?php
if($_POST['add'])
{
if(strlen($number) > 9)
{
exit("Вы превысили кол-во символов доступных при вводе");
} elseif(!$number || !$price)
{
exit("Все поля должны быть заполнены только цифрами");
} else {
$query = "INSERT INTO `uins` (`dig` , `number` , `type` , `price`) VALUES ( '$dig' , '$number' , '$type' , '$price');";
$result = mysql_query($query);
if(!$result)
{
die(mysql_error());
} else {
echo "ICQ номер ".$number." добавлен в магазин
<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
}
}
}
}


if($do == 'edit' && $numb)
{
$query = "SELECT * FROM `uins` WHERE `number` = '".$numb."'";
$result = mysql_query($query);
if(!$result) die(mysql_error());

$row = mysql_fetch_array($result);
?>
<form method="post">
<table border="0">
<tr><td>ICQ номер: <td><input type="text" name="number" value="<?php echo $row['number']; ?>" size="10"/></td></tr>
<tr><td>Тип: <td><select name="type">
<option value="<?php echo $row['type'];?>" selected="selected"><?php echo $row['type'];?></option>
<option value="inv">inv</option>
<option value="q/a">q/a</option>
<option value="n/p">n/p</option>
</select></td></tr>
<tr><td>Цена: <td><input type="text" name="price" size="10" value="<?php echo $row['price']; ?>"/>$</td></tr>
<tr><td><input type="submit" name="edit" value="Изменить"></td></tr>
</table>
</form>

<?php
if($_POST['edit'])
{
if(!$number || !$price)
{
exit("Все поля должны быть заполнены только цифрами");
} else {
$query = "UPDATE `uins` SET `dig`='".strlen($number)."', `number`='".$number."', `type`='".$type."', `price`='".$price."' WHERE `number`='".$numb."';";
$result = mysql_query($query);
if($result)
{
echo "<br/><font color='red'><b>Информация о номере ".$numb." изменена успешно</b></font>
<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
} else {
die(mysql_error());
}
}
}
}

if($do == 'delete' && $numb)
{
$query = "DELETE FROM `uins` WHERE `number` ='".$numb."'";
$result = mysql_query($query);
if($result)
{
echo "<br/><font color='red'><b>Номер ".$numb." успешно удален</b></font>
<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
} else {
die(mysql_error());
}
}
?>

Естественно дизайн в скрипте самый обычный, поэтому вам осталось приделать дизайн к скриптику и продавать номерки !!

Coded by Isis

mr.The
17.05.2007, 20:50
прикольна. +1

_SploiT_
17.05.2007, 20:51
+1!!!! Давно искал что то похожее)

xaker-boss
17.05.2007, 21:06
Блин непойму чё за фаил База данных "icq-shop"? этот скрипт чё через базу данных работает?

Isis
17.05.2007, 21:11
MySQL.
Название базы данных icq-shop

n1†R0x
17.05.2007, 21:20
хмм... админка без авторизации? =)
строка 23, имхо лучше поставить <br> после "Добавить номер на продажу"
а то статус 1го номера и ссылка добавления идут в одну строку без пробела

Isis
17.05.2007, 21:24
хмм... админка без авторизации? =)
строка 23, имхо лучше поставить <br> после "Добавить номер на продажу"
а то статус 1го номера и ссылка добавления идут в одну строку без пробела
Эм...я ведь сказал что без дизайна делаю....
А про авторизацию, то и как в моем прошлом скрипте деф.ленты я сказал что защитите админку сами :)
Если делаете под кмс, то там не сложно...
А вообще так просто ставьте Basic авторизачию )
Либо вообще проверку на входе

//Форма для пароля

if($_POST['pass'] == 'mypass' )
{
//admin script
} else {
header(Location: index.php);
}

xaker-boss
17.05.2007, 22:09
Ребята вы уш меня извените, немогу понять- в каком формати должен быть фаил icq-shop, патом я создал базу данных и куда мне её вписать???

n1†R0x
17.05.2007, 22:12
Ребята вы уш меня извените, немогу понять- в каком формати должен быть фаил icq-shop, патом я создал базу данных и куда мне её вписать???
база данных в config.php
$mysql['name'] = 'icqshop';
SQL-запрос в файл icq.sql и импорт в базу через phpmyadmin
либо копипаст и импорт
еще вариант: написать простенький пхп-скрипт, который выполнит запрос в mysql

scrat
17.05.2007, 22:47
лучше свой написать.+поставил

n1†R0x
17.05.2007, 22:49
Мда, я в шоке. 4 чела стуканули в аську с просьбой объяснить процесс инсталла))

накатал простой скриптик, заранее извиняюсь за возможную кривизну, т.к. на пхп не пишу.

<?
include('config.php');
$result=mysql_query('CREATE TABLE `uins` (
`id` int(11) NOT NULL auto_increment,
`dig` int(1) NOT NULL,
`number` int(9) NOT NULL,
`type` varchar(32) NOT NULL,
`price` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1'
);
if ($result) echo "Запрос принят. Установка прошла успешно. Пожалуйста, удалите файл install.php"; else echo "Таблица 'uins' уже существует.";
?>
сохраняем как install.php, кидаем в папку с дистрибом и запускаем.

ps: ппц, еще два :mad:

_Pantera_
17.05.2007, 23:05
а вот install.php от меня


<HTML>
<HEAD><TITLE>Установка</TITLE></HEAD>
<BODY>
<hr>
<TABLE>
<TR><TD width=20></TD>
<TD>
<br>
<FORM action='' method=post>
<? global $host, $login, $password, $bd, $table;?>
<table>
<tr height=30><td>Хост: </td><td><input type=text name=host value=<?=$host?>><br></td></tr>
<tr height=30><td>Логин: </td><td><input type=text name=login value=<?=$login?>><br></td></tr>
<tr height=30><td>Пароль: </td><td><input type=text name=password value=<?=$password?>><br></td></tr>
<tr height=30><td>Имя базы данных: </td><td><input type=text name=bd value=<?=$bd?> ><br></td></tr>
<tr height=30><td>Имя таблицы: </td><td><input type=text name=table value=<?=$table?>><br></td></tr>
<tr height=30><td></td><td><br><center><input type=submit value='Установить' name=sub></center></td></tr></table><br>
</FORM>
</TD><TD width=20%></TD></TABLE>
<?

function error()
{
echo "Error #".mysql_errno().": ".mysql_error();
exit;
}


global $host, $login, $password, $bd, $table;
$host=htmlspecialchars(trim($host));
$login=htmlspecialchars(trim($login));
$password=htmlspecialchars(trim($password));
$bd=htmlspecialchars(trim($bd));
$table=htmlspecialchars(trim($table));

if (isset($sub)){


$con=mysql_connect($host, $login, $password) or error();
echo "ОК. <br>Проверяем существование $bd базы данных...";
if (mysql_select_db($bd)==TRUE){ echo "<br>Такая база данных существует. Введите другое имя."; exit;}
else {echo "OK <br>База данных не найдена. Создаем её..."; mysql_query ("CREATE DATABASE $bd") or error();}
echo "OK <br>Создаем таблицу $table ...";
mysql_select_db($bd, $con);
mysql_query("DROP TABLE IF EXISTS $table", $con) or error();
mysql_query("
CREATE TABLE $table(
`id` int(11) NOT NULL auto_increment,
`dig` int(1) NOT NULL,
`number` int(9) NOT NULL,
`type` varchar(32) NOT NULL,
`price` int(11) NOT NULL,
PRIMARY KEY (`id`)
)", $con) or error();
echo "OK <br>Инсталяция прошла успешно.<br>";
#_________________________________________________ __
$f=fopen('config.conf','w');
flock($f,LOCK_EX);
fputs($f,"$host\n$login\n$password\n$bd\n$table");
flock($f,LOCK_UN);
fclose($f);
#_________________________________________________ __


}
?>
</BODY></HTML>

после установки создаеться файл config.conf, он содержит наши введенные данные. В файле config.php дописываем

<?
$f=@fopen('config.conf','r') or error_report(10);
flock($f,LOCK_SH);
$host=trim(fgets($f));
$login=trim(fgets($f));
$password=trim(fgets($f));
$database=trim(fgets($f));
$table=trim(fgets($f));
flock($f,LOCK_UN);
fclose($f);
?>

ps n1†R0x твой пример не будет работать, там нет даже подключения к базе данных....

n1†R0x
17.05.2007, 23:13
ps n1†R0x твой пример не будет работать, там нет даже подключения к базе данных....
_Pantera_, include() видишь?
ps: наврядли я стал бы выкладывать что-то непроверенное..

_Pantera_
17.05.2007, 23:23
забираю свои слова назад, не заметил что в конфиге подключение...

Isis
17.05.2007, 23:33
ooOOo ребята я плачу :)
Из-за того чтобы создать бд вы создаете 100 строчный код...
Мда(с)