Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: люди помогите найти ошибку и разобраться с символом / и базой данных SQL
 
 автор: KVN   (16.05.2007 в 13:26)   письмо автору
 
 

Дано:
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
короче без слешей как их экранировать или ну короче чтобы они писались в базу?

   
 
 автор: Trianon   (16.05.2007 в 13:39)   письмо автору
 
   для: 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. код имеет смысл оформлять псевдотегами. Иначе читать его невозможно.

   
 
 автор: KVN   (16.05.2007 в 14:10)   письмо автору
 
   для: Trianon   (16.05.2007 в 13:39)
 

что означает псевдотеги? комментарии? просто хочу сразу разобраться чтобы делать по-человечески

   
 
 автор: Trianon   (16.05.2007 в 14:52)   письмо автору
 
   для: KVN   (16.05.2007 в 14:10)
 

в форме создания сообщения над полем с текстом есть такая ссылка:

Используйте тэги для выделения текста:
Код: [cоde][/cоde]

вот это как раз для оформления кода.
[cоde]
<?
echo 'error!';
?>
[/cоde]

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования