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

Форум PHP

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

 

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

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

тема: Как не потерять пременную в форме ?
 
 автор: IgorT   (05.07.2007 в 21:13)   письмо автору
 
 

Я сделал форму которая формирует пременные и потом они заносятся в БД. Но тут проблема, как сделать так, если кто-то забыл заполнить одно обязательне поле и нажал Ок. Форма при етом очиститься и нужно будет набирать все еще раз. Я сделал следующее :

Привожу кусок кода связаный с формой и саму форму :

<?header("Content-Type: text/html; charset=windows-1251");?>
<!-- <META HTTP-EQUIV="Content-Type" content="text/html; charset=windows-1251"> -->
<!-- Даний блок коду по підключенні до БД розглядався у файлі recover.php і є стандартним для усіх файлів -->
<BODY BACKGROUND="backg.jpg" BGCOLOR="00C0FF", TEXT="BLACK", LINK="#5a15e1", ALINK="#5a15e1", VLINK="#5a15e1">
<?
mysql_connect
("localhost""login""******")

or die(
"Could not connect to MySQL server!");

mysql_select_db("igort")

or die(
"Could not select forum database!");
mysql_query'set names cp1251' );
session_start();

?>
<form enctype='multipart/form-data' name='form' action=newtema.php method=post>
<center><p><h3>Заповніть форму:</h3><p></center>
<align = left>Поля позначені * - обов'язкові для заповнення!</a><br><br>

<i>*Назва теми:</i><br>

<input type="text" name="tema" size="70" maxlength="100" value="<?echo $tema;?>"><br>

<i>* Запитання:</i><br>
<table border=1>
<tr> 
<td><a href=# onClick="javascript:smail(':)')" href=#><img src='smiles\smile.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':confused:')" href=#><img src='smiles\confused.gif'></a><br></td>
<td><a href=# onClick="javascript:smail(':mad:')" href=#><img src='smiles\mad.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(';)')" href=#><img src='smiles\wink.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':D')" href=#><img src='smiles\biggrin.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':(')" href=#><img src='smiles\frown.gif'></a><br></td>
<td><a href=# onClick="javascript:smail(':cool:')" href=#><img src='smiles\cool.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':eek:')" href=#><img src='smiles\eek.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail('[smile2]')" href=#><img src='smiles\sty015.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail('[smile3]')" href=#><img src='smiles\97.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail('[smile1]')" href=#><img src='smiles\sty025.gif'></a><br></td> 
 

</tr>
</table>
<!-- Створюємо поле у формі - блок тексту, де можна буде набрати відповідь на питання -->
<textarea cols=60 rows=15 name=comments><?echo $comments;?></textarea><br><br>
<!-- Створюємо приховане поле із заповненими значеннями. Служить для зберігання змінних -->

<i>Загрузити файл (не більше 2-ох мб!):</i><br>
<input type="file" name="filename"> 


<input type="hidden" name="idforum" value="<?echo $idforum;?>">
<input type="hidden" name="nameforum" value="<?echo $nameforum;?>">
<br>
<input type="submit" value="Зберегти"> 
</form> 
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
   function smail(text1) 
   { 
    document.form.comments.value += text1; 
  } 
//--> 
</script> 


<br>
<?

$tema
=htmlspecialchars($tema);
$comments=htmlspecialchars($comments);

if(
trim($tema)!=="")
if(
trim($comments)!=="")
{

$query 'SELECT id from users where InstallUserKey="'.$InstallUserKey.'"';
$result mysql_query($query) or die (mysql_error());
$id mysql_fetch_array($resultMYSQL_NUM);
$userid=$id[0];
mysql_free_result($result);

$query 'SELECT now()';
$result mysql_query($query) or die (mysql_error());
$row mysql_fetch_array($resultMYSQL_NUM);
$time=$row[0];
mysql_free_result($result);

$query 'INSERT INTO tema(tema,LastAcces,numforum) VALUES("'.mysql_escape_string($tema).'","'.mysql_escape_string($time).'","'.mysql_escape_string($idforum).'")' or die (mysql_error());
$result mysql_query($query) or die (mysql_error());

$query 'select id from tema where tema="'.$tema.'"';
$result mysql_query($query) or die (mysql_error());
$row mysql_fetch_array($resultMYSQL_NUM);
$numtem=$row[0];
mysql_free_result($result);

//________________________________________________________________________________________

if($_FILES["filename"]["size"] > 1024*2*1024)
   {
     echo (
"Розмір файлу перевищує допустимий");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"temp/".$_FILES["filename"]["name"]))
   {
     echo(
"Файл успішно загружено <br>");
     
 
//    echo $_FILES["filename"]["name"];
     
   
}
   
 else
 {
 echo(
"Виникла помилка при загрузці файлу");
 }

//________________________________________________________________________________________



$query 'INSERT INTO comments (comments,numuser,numtems,TimeAccess,link) VALUES ("'.$comments.'","'.$userid.'","'.$numtem.'","'.$time.'","'.$_FILES["filename"]["name"].'")' or die (mysql_error());
$result mysql_query($query) or die (mysql_error());
if(
$result==true)
{
echo 
'<br>';
echo 
'Тему успішно добавлено!';
//Після добавлення нової теми ми автоматично переходимо на список 
//тем, тобто на файл forum.php
?>
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=<?echo 'forum.php?idforum='.$idforum.'&nameforum='.$nameforum;?>" />
<?
}
}
else echo 
'Заповніть поле "Запитання!!!"';
else echo 
'Заповніть поле "Назва теми!!!"';


И я вот сюда :

<input type="text" name="tema" size="70" maxlength="100" value="<?echo $tema;?>"><br>


например вставляю <?echo $tema;?>, тоесть тую самую пременную которая сформируется из формы. И вроде все работет, но если в какое либо поле ввести апостроф, тоесть "лапку", тогда в форму после нажатыя на Ок, вставляется сперва 2 лапки,если еще раз нажать - 4, потом 8 или - '/
Как быть в таком случае, может можно чем нибудь еты пременные обрабатывать ?

   
 
 автор: Valick   (06.07.2007 в 08:02)   письмо автору
 
   для: IgorT   (05.07.2007 в 21:13)
 

http://www.php.net/manual/ru/security.magicquotes.php

   
 
 автор: IgorT   (06.07.2007 в 14:13)   письмо автору
 
   для: Valick   (06.07.2007 в 08:02)
 

да лапки уже не вставляются в БД, но при выводе записи из БД они самы добавляютса

   
 
 автор: Faraon   (06.07.2007 в 14:34)   письмо автору
 
   для: IgorT   (06.07.2007 в 14:13)
 

Можно просто javascript`ом проверять все ли обязательные поля заполнены

   
 
 автор: IgorT   (06.07.2007 в 15:04)   письмо автору
 
   для: Faraon   (06.07.2007 в 14:34)
 

хорошо бы знать как ето сделать на ява скрипте :) и так чтобы даные не потерялись, а то я токо на пхп что то умею. Если можно то покажите пример или скажите где почитать.

   
Rambler's Top100
вверх

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