ICQ SHOPСделал ICQ магазинчик т.к. нечего делать Вообщем все что нужно для магазина в нем все это есть =) + в админке можно редактировать, удалять и добавлять номера... База данных "icq-shop" Code: 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> <a href='?digs=7'>7-знаки</a> <a href='?digs=8'>8-знаки</a> <a href='?digs=9'>9-знаки</a> <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: <?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
хмм... админка без авторизации? =) строка 23, имхо лучше поставить <br> после "Добавить номер на продажу" а то статус 1го номера и ссылка добавления идут в одну строку без пробела
Эм...я ведь сказал что без дизайна делаю.... А про авторизацию, то и как в моем прошлом скрипте деф.ленты я сказал что защитите админку сами Если делаете под кмс, то там не сложно... А вообще так просто ставьте Basic авторизачию ) Либо вообще проверку на входе PHP: //Форма для пароля if($_POST['pass'] == 'mypass' ) { //admin script } else { header(Location: index.php); }
Ребята вы уш меня извените, немогу понять- в каком формати должен быть фаил icq-shop, патом я создал базу данных и куда мне её вписать???
база данных в config.php PHP: $mysql['name'] = 'icqshop'; SQL-запрос в файл icq.sql и импорт в базу через phpmyadmin либо копипаст и импорт еще вариант: написать простенький пхп-скрипт, который выполнит запрос в mysql
Мда, я в шоке. 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: ппц, еще два
а вот 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 твой пример не будет работать, там нет даже подключения к базе данных....
гуру программисты объясните как проиходит запись dig в бд? в данном коде... блин думал думал и все равно не могу понять
Code: $query = "INSERT INTO `uins` (`dig` , `number` , `type` , `price`) VALUES ( '$dig' , '$number' , '$type' , '$price');";
и объясните пожалуйста этот код PHP: 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."");
как в dig происходит автоматическая запись уина, например добавил 7 знак и в dig добавляется 7-значный уин, что в коде за это отвечает?
хотя бы описание к коду сделали чтоб его можно было модернизировать.... этот кусок не совсем понятен PHP: 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.""); объясните за что отвечает переменная refs,total,page PHP: $query = "INSERT INTO `uins` (`dig` , `number` , `type` , `price`) VALUES ( '$dig' , '$number' , '$type' , '$price');"; спасибо ну я не совсем это имел ввиду, мне интересно как по коду определяется уин если 7 знак то выводит в 7 знак, если 6 то 6- знак