Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Создай Icq магазин у себя на сайте (https://forum.antichat.xyz/showthread.php?t=40242)

Isis 17.05.2007 20:37

Создай Icq магазин у себя на сайте
 
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 код:

<?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 код:

<?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($result0"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)) >= && $n <= 10 || $n == || $int >= 10 && $int <= 20)    return 2;
            if(
$n >= && $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 0$page2left " [<a href= ./$file?page=".($page 2).">".($page 2)."</a>] ";
        if(
$page 0$page1left " [<a href= ./$file?page=".($page 1).">".($page 1)."</a>] ";
        if(
$page <= $total)    $page2right " [<a href= ./$file?page=".($page 2).">".($page 2)."</a>] ";
        if(
$page <= $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($result0"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)) >= && $n <= 10 || $n == || $int >= 10 && $int <= 20)    return 2;
            if(
$n >= && $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 0$page2left " [<a href= ./$file?digs=".$digs."&page=".($page 2).">".($page 2)."</a>] ";
        if(
$page 0$page1left " [<a href= ./$file?digs=".$digs."&page=".($page 1).">".($page 1)."</a>] ";
        if(
$page <= $total)    $page2right " [<a href= ./$file?digs=".$digs."&page=".($page 2).">".($page 2)."</a>] ";
        if(
$page <= $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 код:

<?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($result0"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)) >= && $n <= 10 || $n == || $int >= 10 && $int <= 20)    return 2;
            if(
$n >= && $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 0$page2left " [<a href= ./$file?page=".($page 2).">".($page 2)."</a>] ";
        if(
$page 0$page1left " [<a href= ./$file?page=".($page 1).">".($page 1)."</a>] ";
        if(
$page <= $total)    $page2right " [<a href= ./$file?page=".($page 2).">".($page 2)."</a>] ";
        if(
$page <= $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

Цитата:

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

Эм...я ведь сказал что без дизайна делаю....
А про авторизацию, то и как в моем прошлом скрипте деф.ленты я сказал что защитите админку сами :)
Если делаете под кмс, то там не сложно...
А вообще так просто ставьте Basic авторизачию )
Либо вообще проверку на входе
PHP код:

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

if($_POST['pass'] == 'mypass' )

//admin script
} else {
header(Locationindex.php);



xaker-boss 17.05.2007 22:09

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

n1†R0x 17.05.2007 22:12

Цитата:

Сообщение от motorola3653
Ребята вы уш меня извените, немогу понять- в каком формати должен быть фаил icq-shop, патом я создал базу данных и куда мне её вписать???

база данных в config.php
PHP код:

    $mysql['name']    = 'icqshop'

SQL-запрос в файл icq.sql и импорт в базу через phpmyadmin
либо копипаст и импорт
еще вариант: написать простенький пхп-скрипт, который выполнит запрос в mysql

scrat 17.05.2007 22:47

лучше свой написать.+поставил

n1†R0x 17.05.2007 22:49

Мда, я в шоке. 4 чела стуканули в аську с просьбой объяснить процесс инсталла))

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

PHP код:

<?
    
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 от меня

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 дописываем

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

Цитата:

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

_Pantera_, include() видишь?
ps: наврядли я стал бы выкладывать что-то непроверенное..

_Pantera_ 17.05.2007 23:23

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

Isis 17.05.2007 23:33

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


Время: 22:48