Array output in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harmen Vlasma

Harmen Vlasma

16/10/2016 13:58:36
Quote Anchor link
Hallo,

Ik heb een uploadscript gekocht en ik wil graag the filename bewaren in een database.

Zouden jullie mij kunnen helpen?

Dit is de array die hij geeft:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array
(
    [soort] => Animals
    [images7ex] => Array
        (
            [0] =>
1476569373_15.jpg
            [1] =>
1476569374_dit_is_een_test.jpg
            [2] =>
1476569373_djjw5urd.jpg
        )

)


Nu wil ik doormiddel van een POST dat de array met bestandsnaam in een database komt.

Ik heb nu dit maar dit lijkt niet te werken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$tags=$_POST['images7ex'];
$id = $_POST['soort'] ;  
     $values = array() ;
foreach($tags as $tag){
  $tag = $conn->real_escape_string($tag);
  $values ="('{$id}', '{$tag}')";
}

$values = implode(" , ", $values) ;

?>




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  $conn
->query("INSERT INTO files (file_name, sub) VALUES('". $values."')");
?>


Alvast bedankt
 
PHP hulp

PHP hulp

24/12/2024 17:44:17
 
Michael -

Michael -

17/10/2016 08:55:40
Quote Anchor link
Het kopiëren van variabelen zoals op regel 1 en 2 is onnodig.
Daarnaast moet je even veel values hebben dan velden. Je hebt nu 2 velden (file_name, sub), maar je hebt 1 waarde ($values).
Het is ook niet handig om waarde samen te voegen zoals op regel 9.

Lees eerst eens wat tutorials voordat je zomaar iets probeert:
http://www.w3schools.com/sql/sql_insert.asp
Gewijzigd op 17/10/2016 08:58:55 door Michael -
 
Pg Vincent

Pg Vincent

17/10/2016 09:43:46
Quote Anchor link
Over regel 9: daarmee maak je script gevoelig voor SQL-injection, dan kan een hacker een waarde in je query invoeren die de query verandert waardoor hij b.v. al je gebruikergegevens kan uitlezen.

Ga een tutorial doornemen over PDO en "prepared statements" dat is verreweg de makkelijkste manier om veilig om te gaan met data in je database. Alle tutorials over escapen enzo zijn minder veilig en addslashes() doet gewoon helemaal niets voor beveiliging.
 
Thomas van den Heuvel

Thomas van den Heuvel

17/10/2016 14:10:29
Quote Anchor link
@Pg Vincent: regel 9 is in principe veilig mits $id ook geescaped wordt.
Daarnaast: wie heeft het waar over addslashes()? :/

@topicstarter: Eea werkt waarschijnlijk beter indien:
- je $values = ... in regel 6 vervangt door $values[] = ...
- je de haken en enkele quotes in je query verwijdert rondom VALUES('...'), $values heeft deze namelijk zelf al
 
Harmen Vlasma

Harmen Vlasma

17/10/2016 16:48:37
Quote Anchor link
Iedereen bedankt voor jullie input en tips!

En Thomas, Dankzij jouw tips is het gelukt.

Hartstikke bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.