PDA

Просмотр полной версии : вопрос к программерам


Тарифы: МТС, Билайн, МегаФон
Выгодные непубличные тарифы МТС, Билайн, МегаФон, Безлимитный интернет ✅
Kolos
05-03-2005, 15:14
бывает, скорее всего пути неправильно прописаны, как вариант попробуй это файло засунуть в какойнить системный каталог

Меломанка
05-03-2005, 17:15
заработало!!! :) спасибо всем хотя не понятно, что же именно было не так :rolleyes:

my.php:
<?
Error_Reporting(E_ALL & ~E_NOTICE);
echo Привет, $_GET['name'];
?>

только почему то запятую он не показывает

ngm
05-03-2005, 17:21
to Golf: не буду спорить возможно
для начала можно и денвер поюзать.
но все же набравшись опыта, для понимания
ситуации лучше самому все поставить.
тем более это не очень сложно...

Меломанка
05-03-2005, 17:37
получилось:)

Меломанка
06-03-2005, 15:02
почти все понятно :rolleyes: :)
я пошла другим путем, взяла пример из книжки и пытаюсь его настроить, если просто набрать http://localhost/gbook.php то все работает, а если вставить в страницу ссылку на нее "/gbook.php" то нет, не работает, пишет, что не может отобразить страницу. ну что я опять сделала не так? :confused: :rolleyes:

Меломанка
06-03-2005, 15:49
www.asoi15.narod.ru
это сайт, пока не доделанный... но вроде работает, тьфу..тьфу..тьфу

Golf
06-03-2005, 20:39
Вот так должно работать. С записью в файл нужно быть внимательным, представь что два пользователя одновременно отправят сообщения - может получиться бяка - почитай про блокировки файлов - flock() . И о том почему режим a+ может подложить мину при дальнейшей разработке, например ты захочешь на freebsd передвигать указатель для вставки не только в конец файла.
После постинга нажми обновить - видишь данные вставляются повторно, надо делать редирект, но это уже "домашнее задание" :)
<html>
<head><meta http-equiv="Content-type" content="text/html; charset=windows-1251">
<title>Гостевая</title><link rel="stylesheet" type="text/css" href="my.css"></head>
<body class="g">
<h1 class="k">Гостевая книга</h1>

<?
$file_gb="./gbook/gb.txt";
//-----------------------------
function view($file_gb){
$mess=file($file_gb);
echo "<p><table width=100%>";
$i=0;
foreach($mess as $v){$i++;
if($i%2 == 0) echo "<tr><td>$v</td></tr>";
else echo "<tr><td bgcolor='#15599d'>$v</td></tr>";
if ($i == 50) break;
}
}
//---------------------------------
if (@$_POST['Post']) {
if ($w = fopen ($file_gb, "a+b")) {

@fwrite ($w, "[".date("d.m.Y H:i:s")."] ".$_POST['name'].":".strip_tags($_POST['mes'])."\n");
}
}

view($file_gb);
echo "<table width=100% border=1>";
echo "<tr><td><h2>Новое сообщение</h2>";
echo "<form action=".$_SERVER['PHP_SELF']." method=Post>";
echo "Имя: <input type=text name=name>";
echo "Сообщение: <input type=text name=mes size=60>";
echo "<input type=submit name=Post value='Отправить'>";
echo "</td></tr></table></form>";
?>

</body>
</html>

Golf
06-03-2005, 20:57
Да, еще один нюанс. В файл или в БД данные складывай в таком виде в каком они пришли, удаляй только лишние пробелы, а с тэгами уже борись при выводе, но не уничтожением их, а преобразованием в спец. символы $mess=array_map('htmlspecialchars',$mess), чтобы пользователь мог код запостить, как мы постим

Меломанка
15-03-2005, 17:27
Cейчас делаю другой сайт, там нажимаешь на ссылку и в 2 разных фрейма загружаются две отдельные странички. это делается при помощи функции на javascripl:

<scripl language="javascripl">
<!--
function loadtwo (url1, url2){
parent.frame1.location.href=url1;
parent.frame2.location.href=url2;}
//-->
</scripl>

нажимаешь на ссылку "Гостевая", появляется только надпись "Гостевая книга" и все. а отдельно гостевая работает. почему так?

Меломанка
15-03-2005, 19:17
<a href="javascripl:loadtwo('gbooktitle.html', 'gbook.php')">Гостевая</a>

Golf
15-03-2005, 20:22
Эх обидно из-за одного лишнего пробела (java scripl), а так все правильно, а лучше использовать такой стиль <a href=# onclick="loadtwo('/left.php','/main.php');return false">Гостевая</a>, сейчас хоть режь не помню почему, но так лучше

Golf
15-03-2005, 20:41
Кстати зря на фреймсетах начала делать. Почему-то все новички стараются "сэкономить" код на фреймсетах, типа чтоб не пришлось каждый раз переписывать код меню. Фреймсеты во-первых некрасиво, во-вторых ненужное усложнение, в-третьих более запутанная а значит долгая индексация поисковиками. Для экономии кода лучше использовать include.
Смотри куда будут приходить пользователи с поисковика http://www.asoi15.narod.ru/kozir.html поисковику нет дела до твоих фреймсетов. Эту проблему конечно можно решить, но не стоит возиться

Меломанка
15-03-2005, 21:15
пыталась без фреймов.. но с таблицами путаюсь... не все получается разместить так, как надо

Меломанка
15-03-2005, 21:30
<a href="javascripl:loadtwo('eventtitle.html', 'event.html')">События</a>
там нет пробела... как это я копировала? сама функция то работает, на других ссылках, и в этой в один фрем загружает html-документ, а вот gbook.php не работает

Меломанка
15-03-2005, 21:32
откуда пробел появляется, у меня в программе его нет, странно :confused:

Snider
15-03-2005, 23:32
Надо же продвигать свои разработки (благо Borland уже посажен
на поводок), вот и толкают.

Где-то видел бесплатный хостинг: ASP.NET + MS SQL.
20 метров плюс 10 метров еще на MS SQL.

До сих пор не разобрался, в чем, собственно фишка =)

Golf
16-03-2005, 14:00
Странно. А отдельно этот php страница нормально отображается ? Попробуй в php файле закоментировать весь php и весь html внутри <body> и там же внутри <body> напиши что-нить типа <?="11111"?>, посмотри как это внутри фрейма отображается

Меломанка
28-03-2005, 20:49
по поводу денвера вопрос, где там mysql, как его запустить?

Golf
28-03-2005, 21:13
Там же где и apache и php - /usr/local/
Запускать не надо отдельно, он запущен вместе с apache.
Можно уже с ним работать из своих скриптов, или используй для администрирования базы phpmyadmin - фактически тот же скрипт на стороне сервера, но написаный умными дядьками и тетьками, который позволяет не писать свою собственную админку или используй клиента типа MySQL-Front, он удобнее, но возможно не будет работать с базой уже на хосте, но на локалке он приятней в работе

Меломанка
29-03-2005, 16:23
:rolleyes: типа почитала, но ничего не поняла.. как то боюсь с этим связываться, но надо, вроде что пыталась сделать, не получилось.. вот и думаю, с какой стороны подойти :cool:

Меломанка
30-03-2005, 13:25
спасибо!!! за советы, помощь и вообще :)

Меломанка
07-04-2005, 15:19
очередной вопрос. как сделать регистрацию? делаешь форму, данные пересылаются, записываешь их в отдельный файл или наверное в базу. а что потом? как сделать чтобы человек зашел под своим именем, мог отправлять приватные сообщения и все такое

Golf
07-04-2005, 15:28
уже до этого дошла ? ну ты даешь. Расскажи знаешь ли как сессии работают. Потом дальше пойдем :)

Меломанка
07-04-2005, 16:01
:cool: нет.. пока не дошла... просто не знаю, куда двигать дальше... про сессии читила.. :rolleyes:

Golf
07-04-2005, 16:37
с сессиями в самом начале скрипта пишешь (перед выводом в браузер главное, даже чтоб пробел не проскочил) session_start(); и вперед.
при регистрации записывашь пару логин-пароль, при авторизации смотришь, если совпало регистрируешь в сессии переменную например $_SESSION["loged"]=true; и проверяешь ее при открытии доступа к нужным страницам(или информации на них).
Для пущей защиты пароли можно хранить в шифрованном виде например md5 и сравнивать пришедший при авторизации пароль с хранящимся предварительно обработав первый в md5. Таким образом, даже если базу/файл поломают, то пароли не смогут украсть

Меломанка
19-04-2005, 01:29
для работы с mysql в php есть функции, для начала нужна сконнектиться с сервером и выбрать БД,
т.е. она уже должна существовать. каким образом нужно создавать БД. через myphpadmin только?
есть какой то стандарт? или кто как умеет так и создает?

Меломанка
19-04-2005, 13:38
ап

Golf
19-04-2005, 14:23
создавать лучше через phpmyadmin, но можно и через php, например так
$host='localhost';$user='root';$password='';$db='mydatabase';
mysql_connect($host,$user,$password);
@mysql_query("CREATE DATABASE $db");//давим ошибку на случай если уже существует такая база
mysql_select_db($db);// выбираем нужную db
mysql_query("CREATE IF NOT EXIST TABLE mytable (id INT, name CHAR)");// и создаем в ней таблицу
получилось : база mydatabase с таблицей mytable, в которой два поля id - тип int и name - тип char