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

form & image, html, php, sql,

Aruba Cloud - Virtual Private Server VPS
0 głosów
235 wizyt
pytanie zadane 21 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)

Od trzech dni próbuję utworzyć formularz, w którym będę mógł wpisać np: Imię i Nazwisko oraz wybrać zdjęcie i zapisać dane do bazy (z tym, że obrazek powędruje do osobnego katalogu a do bazy danych zapisze się jedynie nazwa pliku- moze byc nawet jakas zmieniona nazwa specjalnie-data, no nie wiem).

Pisałem już tutaj na forum lecz nie otrzymałem odpowiedzi prócz linku do artykułu, który nic mi nie wyjaśnił. Przedstawię poniżej kod, który napisałem ale.. no właśnie- na razie jest bez obrazka i mam jeden problem. Jak wchodzę na tę zakładkę (to jest dodaj.php) to automatycznie mi wyświetla, że rekord został dodany :D

<?php
	session_start();
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: zaloguj.php');
		exit();
	}
	include('connect.php');
?>
<?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>
				<td><input type="submit" value="Zatwierdź" /></td></tr>
			</form>
		</table>
		</center>';
}

// odbieramy dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];


	include('connect.php');
$query = mysqli_query($con, "INSERT INTO uzytkownicy SET imie='$imie',   nazwisko='$nazwisko'"); 
 if($query) echo "Rekord został dodany poprawnie";
    else echo "Nie udało się dodać nowego rekordu";

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

 

2 odpowiedzi

0 głosów
odpowiedź 21 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Wyświetla, bo za każdym odświeżeniem strony, wykonuje zapytanie sql. Zrób tak:

// odbieramy dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
 
 if(!empty($_POST['imie']) && !empty($_POST['nazwisko']))
{


    include('connect.php');
$query = mysqli_query($con, "INSERT INTO uzytkownicy SET imie='$imie',   nazwisko='$nazwisko'"); 
 if($query) echo "Rekord został dodany poprawnie";
    else echo "Nie udało się dodać nowego rekordu";
 


}

 

0 głosów
odpowiedź 21 kwietnia 2015 przez makoso Mądrala (7,380 p.)

Ja się nie przerzuciłem na mysqli bo jakoś dopiero poznałem mysql i nie mam ochoty teraz tego zmieniać -.- łap kod którym robię to co ty chcesz poprostu mysql Sobie pozamieniaj jakoś na mysqli jak tam będziesz chciał :)

 

<?php
//ustawienia ogolne

$siz="3145728";
$znaks="5";
$odst="_";


$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa1 = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

$f = $_FILES['plik'];
IF($f['type'] == 'image/png' or $f['type'] == 'image/bmp' or $f['type'] == 'image/jpeg' or $f['type'] == 'image/gif')
	{
		
		
		$tabelka = '1234567890'; 
    $id = ''; 
    for ($i=0; $i<7; $i++) // 7 to długość ciągu 
    { 
        $id .= $tabelka[rand()%(strlen($tabelka))]; 
    } 
		
$data = $id; 
$length="$znaks";
$list=array_merge(range(0,9));
shuffle($list);
$string=$data;
$fold=strony;
$plik_nazwa="$string$odst$plik_nazwa1";

if(is_uploaded_file($plik_tmp)) {

$fol = strony;
$i1="<";
$i2=">";
     move_uploaded_file($plik_tmp, "./$folder/$plik_nazwa");
     chmod("./$folder/$plik_nazwa",0777);//0777 to chmod automatycznie pójdzie 477 chyba i nie będziesz mógł wyświetlić obrazka w w treści :) 777 jest niebezpieczne ale u mnie i tak tylko zaufane osoby moge wgrywać :)
}
}


	$marka=$_POST['name_z_formularza'];
	$model=$_POST['name_z_formularza'];
		$opis=$_POST['name_z_formularza'];
$obraz="http://twoja-domena/imgs/".$plik_nazwa;//tutaj masz swój plik
 $connection = @mysql_connect('host', 'login_baza', 'haslo_baza#') 
    or die('Brak połączenia z serwerem MySQL'); 
    $db = @mysql_select_db('baza_nazwa', $connection) 
    or die('Nie mogę połączyć się z bazą danych');

	// przekazujemy wartosci zmiennych do odpowiednich pol w bazie danych
	$zapytanie = "INSERT INTO nazwa_tabeli (kalumna1, kolumna2, kolumna3, kolumna4) VALUES ('$zapis_dokalumna1','$zapis_dokolumna2','$zapis_dokolumna3','$zapis_dokolumna4')" or die(mysql_error());
	// wykonaj zapytanie
	$wynik = mysql_query($zapytanie);

	if ($wynik) {
		header( 'Location: index.php' ) ;//przekierowujesz na jakąś stronę po załadowaniu
	}
 
		
?>

postarałem się trochę opisac zmienne bo odbierania danych z formularza chyba nie musiałem opisać :)

Podobne pytania

+2 głosów
2 odpowiedzi 1,230 wizyt
pytanie zadane 22 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)
0 głosów
2 odpowiedzi 452 wizyt
pytanie zadane 14 maja 2015 w PHP przez Damianexo Obywatel (1,710 p.)
+1 głos
1 odpowiedź 593 wizyt
pytanie zadane 20 kwietnia 2015 w PHP przez Damianexo Obywatel (1,710 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,657 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...