Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Создал гостевую


Автор: ekodrive 1.2.2006, 16:49
я создал гостевую но у меня не получается создать админ панель.Нууу чтоб удалить ненужные сообшении через web интерфейс ну вот скрипт пергого файла

********add.php*****
Код

<?
$time=date("Y-m-d H:i:s");
$form=("<form name=\"form1\" action=\"./add.php\">
    <p align=\"center\">&nbsp;</p>
    <table border=\"1\" width=\"763\" align=\"center\">
        <tr>
            <td width=\"233\">
                <p align=\"center\">Nikiniz</p>
            </td>
            <td width=\"274\">
                <p align=\"center\">E-mailiniz</p>
            </td>
            <td width=\"234\">
                <p align=\"center\">Daxil olmaq istediyiniz clanin adi</p>
            </td>
        </tr>
        <tr>
            <td width=\"233\">
                <p align=\"center\"><input type=\"text\" name=\"nick\" size=\"19\"> </p>
            </td>
            <td width=\"274\">
                <p align=\"center\"><input type=\"text\" name=\"mail\"> </p>
            </td>
            <td width=\"234\">
                <p align=\"center\"><input type=\"text\" name=\"clan\"></p>
            </td>
        </tr>
    </table>
    <p align=\"center\"><input type=\"submit\" name=\"formbutton1\" value=\"Daxil et\"></p>
</form>");
$cedvel=("<table border=\"1\" width=\"563\" height=\"85\">
    <tr>
        <td width=\"93\" height=\"19\">Nik</td>
        <td width=\"454\" height=\"19\">$nick</td>
    </tr>
    <tr>
        <td width=\"93\">e-mail</td>
        <td width=\"454\">$mail</td>
    </tr>
    <tr>
        <td width=\"93\">Clan</td>
        <td width=\"454\">$clan</td>
    </tr>
     <tr>
        <td width=\"93\">Tarix ve ip</td>
        <td width=\"454\">$time------------------------Ip=$REMOTE_ADDR</td>
    </tr>
</table>");
print"$form";
$fd = fopen("index.htm","a");
fwrite($fd,"$cedvel\r\n");
fclose($fd);
?>


**********index.htm*********
Код

<html>

<head>
<title>No title</title>
<meta name="generator" content="test">
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p align="center">Гостевая</p>
</body>

</html>




мне нужен чтобы в админ панеле перед сообшениями были radio type чтоб выбрать сообщении которые я хочу удалить...
думаю вы поможете мне етот форум очень многому научиль меня...Спосибо вам что вы есть smile

Автор: BIG BROTHER 1.2.2006, 17:43
Хм...довольно "оригинальная" гостевая...с таким способом храниния очень сложно (однако возможно) сделать админку.
Тут есть 2 выхода: ты используя этот метод имеешь много проблем и пишешь админку, участь работать с текстом (вырезая из html-каши сообщения и изменяя/удаляя HTML)
либо переписать более правильно эту гостевую, что очень и рекомендую. Продумай способ храниния сообщений (именно самих сообщений, а сгенерированного HTML). Этим ты решишь ОЧЕНЬ много проблем с хранинием, выводом, радактированием сообщений

Автор: CoderUA 8.2.2006, 00:56
Согласен, так не делается. Данные должны храниться отдельно от разметки.
Вот довольно простой, работающий пример. Не поленись разобраться.

HandleForm.php
Код

<HTML>
<HEAD>
<TITLE>Retrieving Data from a Database</TITLE>
</HEAD>
<BODY>
<?php
// Set the variables for the database access:
$Host = "localhost";
$User = "user";
$Password = "password";
$DBName = "NewDatabase";
$TableName = "Feedback";

$Link = mysql_connect ($Host, $User, $Password);

$Query = "SELECT * from $TableName";
$Result = mysql_db_query ($DBName, $Query, $Link);

// Create a table.
print ("<TABLE BORDER=1 WIDTH=\"75%\" CELLSPACING=2 CELLPADDING=2 ALIGN=CENTER>\n");
print ("<TR ALIGN=CENTER VALIGN=TOP>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Name</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Email Address</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Comments</TD>\n");
print ("</TR>\n");

// Fetch the results from the database.
while ($Row = mysql_fetch_array ($Result)) {
    print ("<TR ALIGN=CENTER VALIGN=TOP>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[FirstName] $Row[LastName]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[EmailAddress]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[Comments]</TD>\n");
    print ("</TR>\n");
}
mysql_close ($Link);
print ("</TABLE>\n");
?>
</BODY>
</HTML>


index.html
Код

<HTML>
<HEAD>
<TITLE>HTML Form</TITLE>
</HEAD>
<BODY>
<FORM ACTION="HandleForm.php" METHOD=POST>
First Name <INPUT TYPE=TEXT NAME="Array[FirstName]" SIZE=20><BR>
Last Name <INPUT TYPE=TEXT NAME="Array[LastName]" SIZE=40><BR>
E-mail Address <INPUT TYPE=TEXT NAME="Array[Email]" SIZE=60><BR>
Comments <TEXTAREA NAME="Array[Comments]" ROWS=5 COLS=40></TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
</FORM>
</BODY>
</HTML>


Автор: ekodrive 8.2.2006, 09:45
Спосибо большое но я ещо не научился работать с MySQl хочетса научиться но ни чего не получаетса не могу найти удобный и лехкий учебник.поверте я фанат етого языка но у вы..... smile ещо раз спосибо болщое.

Автор: CoderUA 9.2.2006, 00:20
Дай свой мейл или кинь в приват, а я дам что-то толковое по PHP и заодно по MySQL.

Автор: Kefir 9.2.2006, 01:50
Извините, просто поводу некоторых вещей хочу сказать
Код

while ($Row = mysql_fetch_array ($Result)) {
    print ("<TR ALIGN=CENTER VALIGN=TOP>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[FirstName] $Row[LastName]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[EmailAddress]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$Row[Comments]</TD>\n");
    print ("</TR>\n");
}

Это товарищи, ужас smile что мешает сделать так:
Код

echo <<<EOF
<TR ALIGN=CENTER VALIGN=TOP>
<TD ALIGN=CENTER VALIGN=TOP>{$Row[FirstName]} {$Row[LastName]}</TD>
<TD ALIGN=CENTER VALIGN=TOP>{$Row[EmailAddress]}</TD>
<TD ALIGN=CENTER VALIGN=TOP>{$Row[Comments]}</TD>
</TR>
EOF;

Это раз.
Два, давайте писать не $Row[FirstName], а $Row['FirstName']
Три, while ($Row = mysql_fetch_array ($Result)) - плохо. Надо
Код

$n = mysql_num_rows($Result);
for($i=0; $i<$n; $i++) {... }

Четыре - ничего про удаление так и не появилось. В общем и правильно. Сначала лучше изучи БД или как варианты посмотри на функции ПХП serialize-unserialize. Но опять же - БД лучше. И вот когда будут проблемы с написанием конкретной фичи - приходи - будем рады видеть.

Автор: CoderUA 9.2.2006, 10:53
Kefir я с тобой абсолютно согласен насчет твоих поправок. Но для начинающих это не критично, хотя надо с самого начала писать правильно!

Автор: smartov 9.2.2006, 12:07
CoderUA
Цитата(CoderUA @ 9.2.2006, 09:53 Найти цитируемый пост)

Но для начинающих это не критично

К сожалению в PHP нельзя выставить
Код

beginner_mode = ON;

И поэтому если вместо $Row['FirstName'] будет $Row[FirstName] и совершенно случайно будет стоять register_globals (тогда еще и переменка из POST/GET например) или будет просто константа с таким же именем (FirstName) то полезут такие буги, которых лучше не видеть.

Kefir
Цитата(Kefir @ 9.2.2006, 00:50 Найти цитируемый пост)

Три, while ($Row = mysql_fetch_array ($Result)) - плохо

Хм. Почему?

Автор: -=Ustas=- 9.2.2006, 12:25
Цитата(smartov @ 9.2.2006, 12:07 Найти цитируемый пост)

Хм. Почему?

Аналогичный вопрос...

Автор: Kefir 9.2.2006, 13:39
http://www.zend.com/zend/art/mistake1.php

Автор: -=Ustas=- 9.2.2006, 13:51
Kefir, скорее всего ты неправильно понял написаное smile

Автор: Kefir 9.2.2006, 13:56
ЗЫ Добавлю своё мнение. Конечно, то что я написал - необязательное условие. Каждый волен делать так как он хочет. Но, руководствуясь личным опытом, рекомендую использовать именно такой подход. Хотя бы потому, что в моём примере сразу же доступен итератор и если он понадобится - в любой момент можно начинать его использовать ничего не добавляя в код. С while надо переделывать код. И если выборок и таких циклов много - поверте - очень неудобно.
Опять же повторю - это моё личное мнение (и статья говорит о том, что не я один такой smile) о том как лучше всего организовать цикл для выборки из БД.

Автор: CoderUA 10.2.2006, 20:41
smartov

Цитата

Но для начинающих это не критично
Цитата

К сожалению в PHP нельзя выставить
Выделить всёкод PHP
beginner_mode = ON;



Вы все зря так цепляетесь. Человек вообще не про правильность написания кавычек и не про register_globals спрашивал! Так что, давайте по существу!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)