Vložení do databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vložení do databáze – PHP – Fórum – Programujte.comVložení do databáze – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
LUK4S
~ Anonymní uživatel
1 příspěvek
15. 2. 2014   #1
-
0
-

Zdravím

Dělám formulář pro přidávání příspěvků, ale když dám odeslat, tak se mi odešlou pouze titulek, datum a obrázek, které se mi v databázi na localhostu obejví. Zbytek ikdyž je zadaný jako bych ho nezadal. Nějaké řešní? díky

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>APK Market</title>
    <link rel="stylesheet" type="text/css" href="../style/style.css">
    <link href="../bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
    <script src="../bootstrap/js/bootstrap.min.js"></script>
    <script src="../bootstrap/js/bootstrap.js"></script>
  </head>
  <body>
  
  <form method="post" action="insert_post.php" enctype="multipart/form-data">
  
  <div class="new_post">
  	<div class="headtitle">Insert new post</div>
  <div class="new_title">
    <p>New title</p>
    <input type="text" name="title">
  </div>
  <div class="new_author">
    <p>Author</p>
    <input type="text" name="author">
  </div>
  <div class="new_keywords">
  	<p>Keywords</p>
    <input type="text" name="keywords">
  </div>
  <div class="new_image">
  	<p>Image</p>
  	<input type="file" name="image">
  </div>
  <div class="new_content">
  	<textarea name="content" cols="20" rows="8"></textarea>
  </div>
  <div class="submit">
  	<input type="submit" name="submit" value="OK">
  </div>
  </div>
  </form>
    <script src="https://code.jquery.com/jquery.js"></script>
   <script src="../bootstrap/js/bootstrap.js"></script>
  </body>
</html>
<?php
include("../includes/connect.php");

if(isset($_POST['submit']))
{
	echo $post_date = date('y-m-d');
	echo $post_title = $_POST['title'];
	echo $post_author = $_POST['author'];
	echo $post_keywords = $_POST['keywords'];
	echo $post_image = $_FILES['image']['name'];
	echo $image_tmp = $_FILES['image']['tmp_name'];
	echo $post_content = $_POST['content'];
	
	if($post_title=="" or $post_author="" or $post_keywords="" or $post_content="")
	{
		echo"<script>alert('any field is empty')</script>";
		exit();
	}
	else 
	move_uploaded_file($image_tmp,"../uploaded_images/$post_image");
	$insert_query = "insert into posts (post_title,post_date,post_author,post_image,post_keywords,post_content) values ('$post_title','$post_date','$post_author','$post_image','$post_keywords','$post_content')";
	
	if(mysql_query($insert_query))
	{
		echo "<center><h1>Post published seccesfuly!</h1></center>";
	}
}
?>
Nahlásit jako SPAM
IP: 109.80.64.–
Reklama
Reklama
Kit+11
Guru
15. 2. 2014   #2
-
0
-

#1 LUK4S
Zpracování obsahu formuláře musí být před výpisem formuláře.

Kromě toho tam máš hromadu SQL injection. Pokud nechceš přijít o databázi, tak si to sprav.

Možná by stálo za to přestat používat ten starý ovladač MySQL. V nové verzi PHP už nebude.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
LUK4S3K0
Newbie
15. 2. 2014   #3
-
0
-

#2 Kit
Zatím to mám jen na localhostu. Dám zpracování před výpis a stejný problém.#2 Kit

Nahlásit jako SPAM
IP: 109.80.64.–
Kit+11
Guru
15. 2. 2014   #4
-
0
-

#3 LUK4S3K
Po zpracování formuláře musí být provedeno přesměrování na stránku, která má zobrazit výsledek.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
LUK4S3K0
Newbie
15. 2. 2014   #5
-
0
-

Vím že to má být přesměrované tam kam kde chci aby se mi to zobrazilo. Když tomu nastavím echa tak se mi zobrazí vše. Ale já mám problém s tím, že když dám odeslat, tak do databáze se mi uloží pouze titulek, obrázek a datum a nic jiného. A když to vyjedu na stránce kde to potřebuji, tak je tam samozdřejmě jen titulek obrázek a datum.

Nahlásit jako SPAM
IP: 109.80.64.–
peter
~ Anonymní uživatel
2532 příspěvků
17. 2. 2014   #6
-
0
-


$insert_query = "insert into posts (post_title,post_date,post_author,post_image,post_keywords,post_content) values ('$post_title','$post_date','$post_author','$post_image','$post_keywords','$post_content')";
A kdyz pod to das echo $insert_query;, tak je ten dotaz na db spravne?

echo $post_date = date('y-m-d');
Tady ty echa vypisi vse ok?

A kdyz tam das na zacatku error reporting?
@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on");
error_reporting(E_ALL);

"tak se mi odešlou pouze titulek, datum a obrázek" A kdyz das print_r, co se objevi?
echo '<pre>'; print_r($_POST); print_r($_FILES);

<input type="submit" name="submit"
To neni uplne nejlepsi pojmenovani. Pak to nelze ovladat pres js, protoze input form.submit prepisuje funkci form.submit() a pokud bys na to treba navazal nejaky html editor, tak to muze delat psi kusy.
Tez je dobre projet si kod pres html/css validator, pripadne muzes zkusit zakomentovat js a css, jestli treba neco z toho neovlivnuje odeslani dat.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Kit+11
Guru
17. 2. 2014   #7
-
0
-

#1 LUK4S
Proč vlastně do $post_author a dalších vkládáš prázdné stringy?

Zkus vložit autora O'Brian.

Nahlásit jako SPAM
IP: 46.174.37.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 75 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý