|
|
|
| Дано:
1. форма
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Добавить объявление</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-mac-cyrillic">
</head>
<body>
<form name="form1" method="post" action="obrobotka.php">
<p><strong>Выбирите раздел</strong><br>
<select name="select" size="1">
<option value="name1">Сотовые телефоны</option>
<option value="name2">Автомобили</option>
<option value="name3">Недвижимость</option>
<option value="name4">Трудоустройство</option>
</select>
<br>
<strong>Тема объявления</strong> <br>
<input name="theme_obv" type="text" size="70">
</p>
<p> <strong>Текст объявления</strong> <br>
<textarea name="message" cols="54" rows="12"></textarea>
</p> <strong>Введите контактные данные</strong> <br>
<input type="text" name="contact">
<br>
<input type="submit" value="отправить">
</form>
</body>
</html>
2. фаил обработки
<?php
$Li=mysql_connect("localhost","root");
mysql_select_db("DOSKA",$Li);
switch($select){
case 'name1' :
$a=mysql_query("SELECT * FROM tab_sot");
$nfs=mysql_num_rows($a);
$path="C:\WebServers\home\KVNN.ru\www\sot\sot$nfs.html";
$fl=fopen("$path","a+");
$w=<<<LABEL
<html>
<head>
<title>$theme_obv</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-mac-cyrillic">
</head>
<body>
<table width="50%" height="508" border="1" align="center">
<tr>
<td height="57" align="center" valign="middle" bgcolor="#BFBFBF"><strong><font size="6"><em>$theme_obv</em></font></strong></td>
</tr>
<tr>
<td height="415" valign="top" bgcolor="#E2CFDE">$message</td>
</tr>
<tr>
<td bgcolor="#BFBFBF"><strong>Контакты:$contact</strong></td>
</tr>
</table>
</body>
</html>
LABEL;
fwrite($fl,$w);
fclose($fl);
mysql_query("INSERT INTO tab_sot VALUES('0','$theme_obv','','$contact','C:/\WebServers/\home\KVNN.ru/\www/\sot/\sot$nfs.html')",$Li);
default: echo "отстой"; break;}
mysql_close($Li);
?>
вопрос такой:
1. значит в результате обработке (ну естественно при выборе в форме "сотовые телефоны" value=name1) все выполняеться создаеться фаил пишеться в базу данных значение но потом выполняеться default и пишеться ОТСТОЙ так и есть отстой почему так не могу понять???
2. при такой записи в БД INSERT INTI tab_sot C:\WebServers\home\KVNN.ru\www\sot\sot$nfs.html
в БД оказываеться такое значение :
C:WebServershomeKVNN.ruwwwsotsot$nfs.html
короче без слешей как их экранировать или ну короче чтобы они писались в базу? | |
|
|
|
|
|
|
|
для: KVN
(16.05.2007 в 13:26)
| |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Добавить объявление</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-mac-cyrillic">
</head>
<body>
<form name="form1" method="post" action="obrobotka.php">
<p><strong>Выбирите раздел</strong><br>
<select name="select" size="1">
<option value="name1">Сотовые телефоны</option>
<option value="name2">Автомобили</option>
<option value="name3">Недвижимость</option>
<option value="name4">Трудоустройство</option>
</select>
<br>
<strong>Тема объявления</strong> <br>
<input name="theme_obv" type="text" size="70">
</p>
<p> <strong>Текст объявления</strong> <br>
<textarea name="message" cols="54" rows="12"></textarea>
</p> <strong>Введите контактные данные</strong> <br>
<input type="text" name="contact">
<br>
<input type="submit" value="отправить">
</form>
</body>
</html>
2. фаил обработки
<?php
$Li=mysql_connect("localhost","root");
mysql_select_db("DOSKA",$Li);
switch($select){
case 'name1' :
$a=mysql_query("SELECT * FROM tab_sot");
$nfs=mysql_num_rows($a);
$path="C:\WebServers\home\KVNN.ru\www\sot\sot$nfs.html";
$fl=fopen("$path","a+");
$w=<<<LABEL
<html>
<head>
<title>$theme_obv</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-mac-cyrillic">
</head>
<body>
<table width="50%" height="508" border="1" align="center">
<tr>
<td height="57" align="center" valign="middle" bgcolor="#BFBFBF"><strong><font size="6"><em>$theme_obv</em></font></strong></td>
</tr>
<tr>
<td height="415" valign="top" bgcolor="#E2CFDE">$message</td>
</tr>
<tr>
<td bgcolor="#BFBFBF"><strong>Контакты:$contact</strong></td>
</tr>
</table>
</body>
</html>
LABEL;
fwrite($fl,$w);
fclose($fl);
mysql_query("INSERT INTO tab_sot VALUES('0','$theme_obv','','$contact','C:/\WebServers/\home\KVNN.ru/\www/\sot/\sot$nfs.html')",$Li);
default: echo "отстой"; break;}
mysql_close($Li);
?>
|
1. перед default: забыт break;
2. В телах литеральных констант обратные слэши и кавычки требуют экранирования. А поскольку у вас обертка сразу из двух языков SQL и PHP - повторного экранирования.
mysql_query("INSERT INTO tab_sot VALUES('0','$theme_obv','','$contact','C:\\\\WebServers\\\\home\\\\KVNN.ru\\\\www\\\\sot\\\\sot$nfs.html')",$Li);
break;
|
3. код имеет смысл оформлять псевдотегами. Иначе читать его невозможно. | |
|
|
|
|
|
|
|
для: Trianon
(16.05.2007 в 13:39)
| | что означает псевдотеги? комментарии? просто хочу сразу разобраться чтобы делать по-человечески | |
|
|
|
|
|
|
|
для: KVN
(16.05.2007 в 14:10)
| | в форме создания сообщения над полем с текстом есть такая ссылка:
Используйте тэги для выделения текста:
Код: [cоde][/cоde]
вот это как раз для оформления кода.
[cоde]
<?
echo 'error!';
?>
[/cоde] | |
|
|
|