upload + запис в mysql

mute

Registered
написах си един скрипт с които качвам картинка и след това я записвамв БД обаче проблема е че неработи точно тка както искам или некачва картинката или не записва в БД проблема идва от enctype="multipart/form-data"
ако го напишав формата то качва картинката но нея записва в БД ако него напиша при форм то записва в БД но не ъплодва картинката в дуректорията
етого и скрипта
form.html
Код:
<form  action='formphp.php' method='post'   enctype="multipart/form-data">
  <input type='text' name='title' width='400px' value='Заглавие'/><br />
  <input  type="file" name="file" /><br />
  <textarea name="content" style="width:700px; height:300px">текст</textarea><br />
  <input type='submit'  value='Submit'/>
</form>

form.php
Код:
<?php
$title =$_POST['title'];
$content=$_POST['content'];
$data=date("F j, Y, g:i a");
$file=$_POST['file'];
$name=''; 
include('bbcode.php');
include('conn.php');
mysql_connect("localhost",$user,$password) or die ( 'проблем при свързване с MySQL!' );
mysql_select_db($database) or die ( 'Грешка при връзката!' ); 
mysql_query("INSERT news ( title, content, avatar, name, data) VALUES ('$title','$content','$file','$name','$data')");
mysql_close() ;

echo "Статията беше публикувана, натиснете<a href=form.php> тук </a> за да се публикувате друга" ;

if($_FILES['file']['name'] !="")
{copy($_FILES['file']['tmp_name'],"files/" . $_FILES['file']['name'] )
or die('error 1');}
else
{die('error 2');}
?>
 
Записвай в базата данни само името на файла.

В момента записваш и аз незнам какво в ДБ.


enctype="multipart/form-data" - трябва да остане.

Иначе там където прехвърляш файла в директория всичко е наред.
 
вмомента записвам името на фаила но ако сложа енкрипт... него записва
или така маи записва целия фаил ?
 
<?php
$title =$_POST['title'];
$content=$_POST['content'];
$data=date("F j, Y, g:i a");
$file=$_POST['file'];
$filename=$_FILES['file']['name'];
$name='';
include('bbcode.php');
include('conn.php');
mysql_connect("localhost",$user,$password) or die ( 'проблем при свързване с MySQL!' );
mysql_select_db($database) or die ( 'Грешка при връзката!' );
mysql_query("INSERT news ( title, content, avatar, name, data) VALUES ('$title','$content','$filename','$name','$data')");
mysql_close() ;

echo "Статията беше публикувана, натиснете<a href=form.php> тук </a> за да се публикувате друга" ;

if($_FILES['file']['name'] !="")
{copy($_FILES['file']['tmp_name'],"files/" . $_FILES['file']['name'] )
or die('error 1');}
else
{die('error 2');}
?>
 
привет, реших да ползвам този пример, но определено зациклих ........ :? , значи в таблицата където се записва името на файла, какъв тип трябва да е колоната? и още нещо .... правя го така както е описано но записва само файла без да записва нищо в базата .. :? , някакви идеи как да го оправя?
 
това ползвам аз
form.html
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<form  action='form.php' method='post'  enctype="multipart/form-data">
  <input type='text' name='title' width='400px' value='Заглавие'/><br />
  <input  type="file" name="file" /><br />
  <textarea name="content" style="width:700px; height:300px">текст</textarea><br />
  <input type='submit'  value='Submit'/>
</form>

form.php
Код:
<?php
$title =$_POST['title'];
$content=$_POST['content'];
$data=date("F j, Y, g:i a");
$file=$_FILES['file']['name'];
$name=''; 
include('bbcode.php');
include('conn.php');
mysql_connect("localhost",$user,$password) or die ( 'проблем при свързване с MySQL!' );
mysql_select_db($database) or die ( 'Грешка при връзката!' ); 
mysql_query("INSERT news ( title, content, avatar, name, data) VALUES ('$title','$content','$file','$name','$data')");
mysql_close() ;

echo "Статията беше публикувана, натиснете<a href=form.php> тук </a> за да се публикувате друга" ;

if($_FILES['file']['name'] !="")
{copy($_FILES['file']['tmp_name'],"files/" . $_FILES['file']['name'] )
or die('error 1');}
else
{die('error 2');}
?>

направо ти копирах моя код които ползвам аз
полето може да е text или varchar
 
kitchenbg каза:
привет, реших да ползвам този пример, но определено зациклих ........ :? , значи в таблицата където се записва името на файла, какъв тип трябва да е колоната? и още нещо .... правя го така както е описано но записва само файла без да записва нищо в базата .. :? , някакви идеи как да го оправя?

Горния скрипт ли ползваш?
Дай твоя скрипт да видя какво правиш.

Полето трябва да е VARCHAR .
Най обикновен текст.
 
знчи аз се мъча над това post.php
Код:
<?php 
$title =$_POST['title']; 
$description=$_POST['description']; 
$menu=$_POST['wfmidtop_art'];
$data=date("Y-m-d H:i:s"); 
$file=$_POST['file']; 
$filename=$_FILES['file']['name']; 
include('kitchenbg_whatformore.php'); 
mysql_connect("localhost",$username_kitchenbg_whatformore,$password_kitchenbg_whatformore) or die ( 'проблем при свързване с MySQL!' ); 
mysql_select_db($database_kitchenbg_whatformore) or die ( 'Грешка при връзката!' ); 
mysql_query("INSERT INTO kit_whatformore_art( wfmidtop_art, wfmtitle_art, wfmdescription_art, wfmfilename_art, wfmdata_art) VALUES ('$menu','$title','$description','$filename','$data')"); 
mysql_close() ; 

echo "Статията беше публикувана, натиснете<a href=form.htm> тук </a> за да се публикувате друга" ; 

if($_FILES['file']['name'] !="") 
{copy($_FILES['file']['tmp_name'],"whatformore/" . $_FILES['file']['name'] ) 
or die('error 1');} 
else 
{die('error 2');} 
?>
и form.htm
Код:
<form  action='post.php' method='post'   enctype="multipart/form-data" name="post" id="post">
  <p>
    <input type='text' name='title' width='400px'/>
  </p>
  <p>
    <select name="wfmidtop_art" id="wfmidtop_art">
      <?php
do {  
?>
      <option value="<?php echo $row_rsMenu['wfm_id']?>"><?php echo $row_rsMenu['wfm_title']?></option>
      <?php
} while ($row_rsMenu = mysql_fetch_assoc($rsMenu));
  $rows = mysql_num_rows($rsMenu);
  if($rows > 0) {
      mysql_data_seek($rsMenu, 0);
	  $row_rsMenu = mysql_fetch_assoc($rsMenu);
  }
?>
    </select>
    <br />
    <input  type="file" name="file" />
    <br />
    <textarea name="descrioption" id="descrioption" style="width:400px; height:200px"></textarea>
    <br />
    <input name="submit" type='submit'  value='Submit'/>
  </p>
</form>
 
Не виждам грешка някаква.
Дава ли ти на теб някаква грешка?
Не записва в някое поле или не създава просто никакъв запис.

Кажи точно како се случва.
НЯма никакъв запис в таблицата така ли?

Между другото махни това:
$file=$_POST['file'];
НЕ ти трябва и е грешно.
 
да, точно, не ми изписва грешка но незнам защо незаписва нищо в базата :shock: , а и още нещо ........ как после да изкарам картинката?
 
да не си объркал нещо полетата в заявката защото аз току що бях направил това в правописна греша в едно от полетата
 
kitchenbg каза:
а може ли да предложите някаква друга алтернатива на този пример? :?


Това е най (ама най) простия код за тази цел.
Много дълги имена на полетата имаш.
Това е предпоставка за грешки.
Едсна буква да сбъркаш и край.
Може даже да си написал "с" вместо "c" (примерно).
Много си приличат но едното е латиница другото кирилица.
 
ето
db.jpg
 

Back
Горе