|
|
|
| Я сделал форму которая формирует пременные и потом они заносятся в БД. Но тут проблема, как сделать так, если кто-то забыл заполнить одно обязательне поле и нажал Ок. Форма при етом очиститься и нужно будет набирать все еще раз. Я сделал следующее :
Привожу кусок кода связаный с формой и саму форму :
<?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($result, MYSQL_NUM);
$userid=$id[0];
mysql_free_result($result);
$query = 'SELECT now()';
$result = mysql_query($query) or die (mysql_error());
$row = mysql_fetch_array($result, MYSQL_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($result, MYSQL_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
(06.07.2007 в 14:13)
| | Можно просто javascript`ом проверять все ли обязательные поля заполнены | |
|
|
|
|
|
|
|
для: Faraon
(06.07.2007 в 14:34)
| | хорошо бы знать как ето сделать на ява скрипте :) и так чтобы даные не потерялись, а то я токо на пхп что то умею. Если можно то покажите пример или скажите где почитать. | |
|
|
|