• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

dodawanie rekordu do bazy danych + obrazek

Object Storage Arubacloud
+1 głos
434 wizyt
pytanie zadane 20 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)
edycja 20 kwietnia 2015 przez Damianexo

Cześć. Tak jak mawiałem, wracam z kolejnym pytaniem.

Chcę dodać do swojej bazy danych w końcu dodawanie rekordów ale.. no właśnie, chciałbym aby dodawało zdjęcie- wybierane z komputera- uploadowane na hosting np w postaci: /images/000001.png lub w formie: [$imie+$nazwisko].png a w bazie danych aby zapisywało jedynie np jankowalski.png a wczytywanie byłoby wiadome.

Tylko nie mam pojęcia jak to zrobić. Moja strona jest oparta o system logowania Pana Mirka. Posiada ona szukajke, bazującą na tych samych danych co np konto z którego się loguje, np na Adam Mak, i mogę w szukajce wyszukać takiego Adama i jego dane.
Tak samo chcę dodać dodawanie. Oczywiście logowanie do serwisu będzie ograniczone tym, że aby się zalogować trzeba będzie mieć lvl większy niż 0. A dane dodawane do szukajki bd miały wartość domyślną 0.

Prosiłbym o jakieś propozycje dodania. Na razie sam napisałem coś takiego ale i tak to nie działa, bo biała strona, bo nie ma jeszcze wszystkiego

Tu taki przykład odemnie:

<?php
	session_start();
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: zaloguj.php');
		exit();
	}
?>
<?php
	$current = "dodaj";
	include('header.php');

if(!isset($_SESSION['zalogowany'])/*mozliwe jakies inne warunki do spelnienia*/){
	echo 'Dostęp zabroniony'; // srednik na koncu
} else {
	echo '
		<table>
			<form action="dodaj.php" method="post">
				<tr><td>Imię:<input placeholder="Jan" type="text" name="imie" /></td>
				<td>Nazwisko:<input placeholder="Kowalski" ="text" name="nazwisko" /></td>
				Zdjęcie:<br />
				<td><input type="file" name="image_file" size="20" /></td>
				<input type="submit" value="Zatwierdź" />
			</form>
		</table>';
}

// odbieramy dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$_FILES = $HTTP_POST_FILES; /*tak wyczytałem gdzies w poradnikach*/

include('connect.php');
$query = mysqli_query($con, "INSERT INTO uzytkownicy SET imie='".$imie."' OR imie='".$nazwisko."'"); /*$con to mam w pliku 'connection.php' */
?>
<?php
 include('footer.php');
?>

 

STRUKTURA DANYCH BAZY:


 id     user     pass     email     imie     nazwisko     level     miejscezam     wojewodztwo     powiat     tel     avatar     rang

1 odpowiedź

0 głosów
odpowiedź 20 kwietnia 2015 przez adamsawicki Bywalec (2,260 p.)

Cześć

Teraz w tablicy $FILES masz wszystkie pliki, które wysłałeś w formularzu. W Twoim przypadku jest to jeden plik o nazwie "image_file".

$tmp_name = $_FILES["image_file"]["tmp_name"]; // pobierasz plik
 $name = $_FILES["image_file"]["name"]; // pobierasz nazwę lub piszesz jaką checesz ($imie.$nazwisko)
$uploads_dir = "img/" // tutaj ścieżka do mejsca gdzie chcesz zapisać plik
 move_uploaded_file($tmp_name, "$uploads_dir/$name"); // funkcja zapisująca obraz

 

 

komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
Okej, to jeszcze jedna sprawa, bo jak klikam- dodaj do bazy - w sensie 'zatwierdź' to tworzy mi trzy nowe puste w dodatku rekordy.
komentarz 20 kwietnia 2015 przez adamsawicki Bywalec (2,260 p.)
$query = mysqli_query($con, "INSERT INTO uzytkownicy SET imie='".$imie."' OR imie='".$nazwisko."'"); /*$con to mam w pliku 'connection.php' */

Powyższe query wygląda podejrzanie. Powinno być coś w stylu

"INSERT INTO uzytkownicy (imie,nazwisko) VALUES ($imie,$nazwisko)".

SET używane jest przy UPDATE

komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)

Mój kod wygląda teraz tak, a strona wyświetla się na biało- po wprowadzeniu tego co zaleciłeś:

 

<?php
	session_start();
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: zaloguj.php');
		exit();
	}
?>
<?php
	$current = "dodaj";
	include('header.php');

if(!isset($_SESSION['zalogowany'])/*mozliwe jakies inne warunki do spelnienia*/){
	echo 'Dostęp zabroniony';
} else {
	echo '
	<center>
		<table>
			<form action="dodaj.php" method="post">
				<tr><td>Imię:<input placeholder="Jan" type="text" name="imie" /></td>
				<td>Nazwisko:<input placeholder="Kowalski" ="text" name="nazwisko" /></td></tr>
				<tr><td>Zdjęcie:<input type="file" name="image_file" size="20" /></td>
				<td><input type="submit" value="Zatwierdź" /></td></tr>
			</form>
		</table>
		</center>';
}

// odbieramy dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$_FILES = $HTTP_POST_FILES; /*tak wyczytałem gdzies w poradnikach*/

$tmp_name = $_FILES["image_file"]["tmp_name"]; // pobierasz plik
$name = $_FILES["image_file"]["$imie.$nazwisko"]; // pobierasz nazwę lub piszesz jaką checesz ($imie.$nazwisko)
$uploads_dir = "zdjecia/" // tutaj ścieżka do mejsca gdzie chcesz zapisać plik
$result = @move_uploaded_file($tmp_name, "$uploads_dir/$name"); // funkcja zapisująca obraz

include('connect.php');
$query = mysqli_query($con, "INSERT INTO uzytkownicy (imie,nazwisko,tmp_name) VALUES imie='".$imie."' OR imie='".$nazwisko."' img='".$tmp_name."'"); /*$con to mam w pliku 'connection.php' */


?>
<?php
 include('footer.php');
?>

 

komentarz 20 kwietnia 2015 przez adamsawicki Bywalec (2,260 p.)

Masz w tablicy "użytkownicy" kolumnę "tmp_name" ?

uzytkownicy (imie,nazwisko,tmp_name) - w nawiasach podajesz nazwy kolumn, potem VALUES i w kolejnych nawiasach po przecinku wartości rekordów w tych kolumnach. Bez OR :-) 

Poczytaj http://www.w3schools.com/sql/sql_insert.asp

 

komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
Tak mam tę kolumnę. Zrobiłem to co napisałeś wyżej ale biała strona jest nadal. Bez Twojego kodu strona się wyświetla.
komentarz 20 kwietnia 2015 przez efiku Szeryf (75,160 p.)

Po cholerę dajecie stfu operator ( @ ) @move....

;-) + możesz mieć wyłączoną obsługę błędów ( display_errors w php.ini ) :>

komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
z @ czy bez i tak nie działa.
komentarz 20 kwietnia 2015 przez adamsawicki Bywalec (2,260 p.)
$name = $_FILES["image_file"]["$imie.$nazwisko"]; // pobierasz nazwę lub piszesz jaką checesz ($imie.$nazwisko)

Nie ma

$_FILES["image_file"]["$imie.$nazwisko"]

Masz do wyboru:

$name = $_FILES["image_file"]["name"]; 

albo własną nazwę. Tylko musisz pamietać o rozszerzeniu pliku.

Może to powoduje błąd.

 

komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
jak rozszerzeniu? to jakie ma byc i gdzie to wpisać trzeba?

 

nawet tak jest biała strona
komentarz 20 kwietnia 2015 przez adamsawicki Bywalec (2,260 p.)
To może podrzucę jeszcze jeden wartościowy link :-) Dużo tam pisze

http://www.w3schools.com/php/php_file_upload.asp
komentarz 20 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
w php.ini mam wszystko poustawiane..

 

dzieki ze mi pomogłeś...

Podobne pytania

0 głosów
2 odpowiedzi 315 wizyt
pytanie zadane 14 maja 2015 w PHP przez Damianexo Obywatel (1,710 p.)
+2 głosów
2 odpowiedzi 803 wizyt
pytanie zadane 22 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)
0 głosów
2 odpowiedzi 206 wizyt
pytanie zadane 21 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)

92,547 zapytań

141,389 odpowiedzi

319,509 komentarzy

61,931 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...