Помогни ни да направим Uroci.net по - богат! Добави урок

Система за анкети за вашият сайт и админ панел

PHP » PHP
HunteR   трудност:    видян: 16013



Сега следва и админ панела. Създайте си файл admin.php (това е примерно име). В него сложете следният код:

 

<?php
session_start();
include("config_poll.php");
$admin = $HTTP_SESSION_VARS['admin'];
if (isset($HTTP_SESSION_VARS['admin']) && $admin == 1) {
echo "<a href="?page=add">Добави анкета</a><br><br>";
$page = $_GET['page'];
if ($page == "edit" && isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
$query_poll_exzit = mysql_query("SELECT * FROM poll WHERE id = '$id' LIMIT 1");
$dali_poll_exzit = mysql_num_rows($query_poll_exzit);
if ($dali_poll_exzit > 0) {
if (isset($_POST['submit'])) {
if ($_POST['vapros_edit'] != NULL && ($_POST['podrejdane_edit'] == 1 || $_POST['podrejdane_edit'] == 2) && ($_POST['off_poll'] == 0 || $_POST['off_poll'] == 1)) {
mysql_query("UPDATE poll SET vapros = '".$_POST['vapros_edit']."',podrejdane = '".$_POST['podrejdane_edit']."',status = '".$_POST['off_poll']."' WHERE id = '$id' LIMIT 1");

$query_otgovorite = mysql_query("SELECT * FROM otgovori WHERE id_poll = '$id' ORDER BY id ASC");
while ($otgovorite = mysql_fetch_array($query_otgovorite)) {
$idtoo = $otgovorite['id'];
mysql_query("UPDATE otgovori SET otgovor = '".$_POST["otgovor_$idtoo"]."' WHERE id = '".$otgovorite['id']."'");
}
echo "<META HTTP-EQUIV="refresh" CONTENT="3;URL=?" >";
echo "<b>Анкетата е редактирана успешно!</b>";
}
} else {
$poll_exzit = mysql_fetch_array($query_poll_exzit);
$query_otgovorite = mysql_query("SELECT * FROM otgovori WHERE id_poll = '$id' ORDER BY id ASC");
?>
<form action="" method="post">
Въпрос: <input type="text" name="vapros_edit" value="<?=$poll_exzit['vapros']?>" size="50"><br><br>
<?php
$nomer = 1;
while ($otgovorite = mysql_fetch_array($query_otgovorite)) {
?>
Отговор <?=$nomer?>: <input type="text" name="otgovor_<?=$otgovorite['id']?>" value="<?=$otgovorite['otgovor']?>" size="50"><br>
<?php
$nomer++;
}
?><br>
Подреждане: <select name="podrejdane_edit">
<option value="1"<?php if ($poll_exzit['podrejdane'] == 1) { echo " selected="selected""; } ?>>Стандартно</option>
<option value="2"<?php if ($poll_exzit['podrejdane'] == 2) { echo " selected="selected""; } ?>>Брой отговори</option>
</select><br>
Изключване на гласуването: <select name="off_poll">
<option value="1"<?php if ($poll_exzit['status'] == 1) { echo " selected="selected""; } ?>>Не</option>
<option value="0"<?php if ($poll_exzit['status'] == 0) { echo " selected="selected""; } ?>>Да</option>
</select><br>
<input type="submit" name="submit" value="Редактирай">
</form>
<?php
}
} else {
echo "Не съществува такава анкета!";
}
?>
<?php
}
elseif ($page == "add")
{
if (isset($_POST['submit'])) {
$kolko_otgovora = 0;
for ($i=1;$i<=15;$i++) {
$otgovor4e = trim($_POST["otgovor_$i"]);
if ($otgovor4e != NULL) {
$otgovorite[] = $otgovor4e;
$kolko_otgovora++;
}
}

if ($kolko_otgovora >= 2 && $_POST['vapros'] != NULL && ($_POST['podrejdane'] == 1 || $_POST['podrejdane'] == 2)) {
$kolko_otgovori = count($otgovorite);
mysql_query("INSERT INTO poll (vapros,podrejdane) VALUES ('".$_POST['vapros']."','".$_POST['podrejdane']."')");

$posleden_id = mysql_fetch_array(mysql_query("SELECT * FROM poll ORDER BY id DESC LIMIT 1"));
$posleden_id = $posleden_id['id'];
for ($no=0;$no<$kolko_otgovori;$no++) {
if ($otgovorite[$no] != NULL) {
mysql_query("INSERT INTO otgovori (id_poll,otgovor) VALUES ('$posleden_id','$otgovorite[$no]')");
}
}
echo "<b>Анкетата е успешно създадена!</b>";
echo "<META HTTP-EQUIV="refresh" CONTENT="3;URL=?" >";
} else { echo "Не сте въвели въпрос или не сте въвели най-малко 2 отговора!"; }

} else {
?>
<form action="" method="post">
Въпрос: <input type="text" name="vapros" size="50"><br><br>
<?php
for ($i=1;$i<=15;$i++) {
?>
Отговор <?=$i?>: <input type="text" name="otgovor_<?=$i?>" size="50"><br>
<?php
}
?>
<br>
Подреждане: <select name="podrejdane">
<option value="1">Стандартно</option>
<option value="2">Брой отговори</option>
</select><br>
<input type="submit" name="submit" value="Създай">
</form>
<?php
}
}
elseif ($page == "dell" && isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
mysql_query("DELETE FROM poll WHERE id = '$id'");
mysql_query("DELETE FROM otgovori WHERE id_poll = '$id'");
mysql_query("DELETE FROM ips WHERE id = '$id'");
echo "Анкетата е успешно изтрита!";
echo "<META HTTP-EQUIV="refresh" CONTENT="3;URL=?" >";
}
else
{
$query_polls = mysql_query("SELECT * FROM poll ORDER BY id DESC");
?>
<table border="1">
<tr><td><b>ID:</b></td><td><b>Анкета</b></td><td><b>Опции</b></td></tr>
<?php
while ($polls = mysql_fetch_array($query_polls)) {
?>
<tr><td><?=$polls['id']?></td><td><?=$polls['vapros']?></td><td>[<a href="?page=edit&id=<?=$polls['id']?>">Редактирай</a>] [<a href="?page=dell&id=<?=$polls['id']?>">Изтрий</a>]</td></tr>
<?php
}
?>
</table>
<?php
}
if ($page == "logout") { $HTTP_SESSION_VARS['admin'] = 0; echo "<META HTTP-EQUIV="refresh" CONTENT="1;URL=?" >"; }
echo "<br><br><a href="?page=logout">Изход</a>";
} else {
if (isset($_POST['submit']) && $_POST['pass_admin'] == $pass_admin) {
$HTTP_SESSION_VARS['admin'] = 1;
echo "<META HTTP-EQUIV="refresh" CONTENT="1;URL=?" >";
} else {
?>
<form action="" method="post">
Парола: <input type="password" name="pass_admin" size="10">
<input type="submit" name="submit" value="Влез">
</form>
<?php
}
}
?>


И след като ги имате тези файлове. Може да влезете в админ панела и да създадете анкета. Ето как може да добавите анкетата в страницата, която си пожелаете:


Например искате да добавите анкета в страницата index.php. Добавяте някъде най-отгоре във файла следният код:


<?php include("function_poll.php"); ?>


Така ще включите функцията с анкетите.


Сега е най-лесното. Там където искате да поставите анкетата просто трябва да сложите следният код:

 

<?php @poll(); ?>

 

Така автоматично ще се появи последната от вас създадена анкета в админ панела. Ако желаете примерно в друга страница да поставите точно определена анкета трябва да поставите този код:

 

<?php @poll(1); ?>

 

Както виждате между скобите сме сложили 1. Какво точно прави тя? Това е ID на самата анкета. Ако желаете да поставите точно дадена анкета влизате в admin панела, виждате ID-то й и и после между скобите в кода по-горе слагате ID на анкетата и тя ще се появи.

 

Това е всичко. Надявам се кода да ви е харесал.

 

Кода е авторски и забранявам преписването му в други сайтове без мое съгласие или съгласието на админа!

 


Страници: «1 2

Коментари (16)

HunteR на 19.06 2008 в 14:57ч.
Забравих да ви дам и картинките.
Ето ги:
http://tapotiichici.hit.bg/bar_left.bmp
http://tapotiichici.hit.bg/bar_right.bmp
http://tapotiichici.hit.bg/vote.bmp

Сложте ги и 3-те в папката, в която са файловете!
HunteR на 21.06 2008 в 12:31ч.
Имах грешка:
Таблица ips:
CREATE TABLE `ips` (
`id` int(10) NOT NULL,
`ip` varchar(25) COLLATE utf8_general_ci NOT NULL default '',
PRIMARY KEY (`id`)
);


Трябва да изглежда така:
CREATE TABLE `ips` (
`id` int(10) NOT NULL,
`ip` varchar(25) COLLATE utf8_general_ci NOT NULL default ''
);
HunteR на 14.07 2008 в 11:45ч.
Ако не Ви се занимава да създавате на ръка всичките файлове - ето Ви архив с всичките файлове: http://tapotiichici.hit.bg/Polls.rar
PsycXo на 14.07 2008 в 17:39ч.
Какво по-дяволите е BD? Защо при опит да отворя index.php, ми пише "Не мога да се свържа с BD!" ?
GainWard на 17.07 2008 в 07:30ч.
trqbva da e DB = Datebase ;)
justifyyy на 17.07 2008 в 11:27ч.
BD е по-българско. Означава "база данни" за неразбралите. А DB е Database, не Datebase :D
embata на 23.07 2008 в 14:48ч.
Имам въпрос как направя така че да се избират примерно 5 отговора и като се гласува и 5 те да ги изкара че е гласувано за тях кутийките трябва да са checkbox ама другото незнам как да стане ?
gamer345 на 07.09 2008 в 11:16ч.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/csfrags.freehostia.com/admin.php on line 131 Какво да правя? config_poll-a е попълнен правилно обаче не мога да добавям анкети ?????
gamer345 на 07.09 2008 в 11:18ч.
първо пише:
Анкетата е успешно създадена успешно! (ама пак го има онуй Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/csfrags.freehostia.com/admin.php on line 131 ) и не ми я добавя
alore на 08.09 2008 в 15:17ч.
Качвам файловете, но като влезна в index.php или admin.php пише "Не мога да се свържа с БД." Какво съм забравил?
HunteR на 10.09 2008 в 13:16ч.
Еми @gamer345 явно нещо не си направил както трябва.
Ето виж тук има демо и всичко си бачка: http://hunter.bg2.info/test/poll/

@alore трябва да си нагласиш връзката за базата данни.
Това се прави от файла config_poll.php
NePoZnAtIa на 15.06 2009 в 22:01ч.
Нещо се не става бе казва ми няма база данни апък аз истеглих това дето си го дал...архива...и пак не ще бе :D
embata на 12.07 2009 в 17:55ч.
NePoZnAtIa - трябва да си си направил база данни и да я свържеш за това не става !
и като си направиш базата данни трева да сложиш SQL таблиците в нея иначе нищо нема да стане !
slavov на 04.08 2009 в 19:38ч.
а как да вържа базата данни със самата анкета ? Че качих файловете сичко нарпавих ама не съм ги вързал нещо как трябва !?
slavov на 11.08 2009 в 13:45ч.
вързах го но като ида във админ панела за да въведа анкета и ми дава грешка:
Parse error: syntax error, unexpected '=' in /home/slav0v/public_html/anketa2/admin.php on line 14
ergobg на 01.02 2015 в 16:17ч.
Нещо не се получава когато се опитвам да вляза в админ панела ми иска парола и след като я въведа пак ми иска и до там, паролата която въвеждам е правилна но не става. Защо?

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com