BLOB in sql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Stock

Tom Stock

16/01/2014 16:52:58
Quote Anchor link
Beste mensen,

ik ben een website aan het maken over muziek en zou graag willen dat mensen nummers in kunnen sturen, nu ben ik daarmee aan de slag gegaan, maar het blijkt een moeilijke opgave.

Zouden jullie mij kunnen helpen?

invoegen.php:

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
15
16
17
18
19
20
21
22
23
24
25
26
<?php
include('voting/config.php');

$artiest = htmlspecialchars('$_POST[NaamArtiest]');
$naam = htmlspecialchars('$_POST[NaamNummer]');
$file = htmlspecialchars('$_POST[Nummer]');

if((isset($_POST["NaamArtiest"]) == FALSE) OR (isset($_POST["NaamNummer"]) == FALSE) OR (isset($_POST["Nummer"]) == FALSE))
{


$sql="INSERT INTO nummers (naam_artiest, naam_nummer, nummer)
VALUES
('$_POST[NaamArtiest]','$_POST[NaamNummer]','$_POST[Nummer]')"
;

if($sql === FALSE) {
    die(mysql_error());
}

if (!mysqli_query($con,$sql))
  {

  die('Error: ' . mysqli_error($con));
  }

echo "1 record added";
}



?>



html code:
<html>
<form action="invoegen.php" method="post">
<p>Naam nummer: <br><input type="text" name="NaamNummer" /><br /><p>
<p>Naam Artiest: <br><input type="text" name="NaamArtiest" /><br /></p>
<p>Nummer: <br><input type="file" name="Nummer" /><br /></p>
<input type="submit" value="sumbit" /><br /><br />
</form>
</html>
Gewijzigd op 16/01/2014 16:53:24 door Tom Stock
 
PHP hulp

PHP hulp

17/11/2024 14:23:06
 
Ivo P

Ivo P

16/01/2014 16:59:23
Quote Anchor link
$artiest = htmlspecialchars('$_POST[NaamArtiest]');

moet zijn

$artiest = htmlspecialchars($_POST['NaamArtiest']);

Maar los daarvan: dat wil je helemaal niet: je gebruikt htmlspecialchars normaal alleen in combinatie met echo of print. Dus daar waar je iets naar het scherm stuurt.

niet bij SQL, daar gebruik je de escape functie van je database, bijvoorbeel mysqli_real_escape_string()

---

regels 15, 16 en 17 zijn zinloos (en fout want je maakt vast geen verbinding met een mysql_connect())

Toevoeging op 16/01/2014 17:00:18:

oh en je doet alleen een insert, als de $_POST elementen helemaal niet bestaan?
 
Tom Stock

Tom Stock

16/01/2014 17:02:33
Quote Anchor link
oh :/ hoe moet ik het dan aanpakken?
Ik ben pas net begonnen en weet nog niet hoe :) daarom moet ik t leren :P
 
Ivo P

Ivo P

16/01/2014 17:04:18
 
- Ariën  -
Beheerder

- Ariën -

16/01/2014 17:08:34
Quote Anchor link
En waarom wil je BLOB gebruiken? Je kan de nummers die ze insturen toch door hen laten uploaden naar het filesystem op de server?
 
Tom Stock

Tom Stock

16/01/2014 17:11:36
Quote Anchor link
- Aar - op 16/01/2014 17:08:34:
En waarom wil je BLOB gebruiken? Je kan de nummers die ze insturen toch door hen laten uploaden naar het filesystem op de server?


ik wil de nummers ook met ORDER BY weergeven in een lijst
 
- Ariën  -
Beheerder

- Ariën -

16/01/2014 17:15:58
Quote Anchor link
Dan hoef je alsnog geen BLOB te gebruiken, maar een verwijzing naar de bestanden opslaan in de database.
 
Tom Stock

Tom Stock

16/01/2014 17:17:18
Quote Anchor link
- Aar - op 16/01/2014 17:15:58:
Dan hoef je alsnog geen BLOB te gebruiken, maar een verwijzing naar de bestanden opslaan in de database.


dan vind ik alsnog gewoon handig bij elkaar staan in de database :P
 
- Ariën  -
Beheerder

- Ariën -

16/01/2014 17:21:30
Quote Anchor link
Kost een hoop performance, en lever enge traagheid op.

Voor kleine bestanden is het te overwegen, maar MP3's en andere grote bestanden zou ik lekker op de server zetten i.p.v. in MySQL. Makkelijker te backuppen ook nog eens. Ook met het bijkomende voordeel dat je ze makkelijker kan verhuizen naar een andere server, om ze bijv. te verspreiden over de aanwezige schijven.
Gewijzigd op 16/01/2014 17:25:17 door - Ariën -
 
Tom Stock

Tom Stock

16/01/2014 17:34:01
Quote Anchor link
Met dank aan Ivo P heb ik op de site gevonden hoe je zo'n formulier maakt. Helaas ben ik er nog niet helemaal uit.

Ten eerste: Hoe moet ik mijn mp3 bestand meesturen en ten tweede: klopt het?
Allemaal bedankt voor alle moeite die jullie doen voor mij :')

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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
include('voting/config.php');

if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
   isset($_POST['NaamNummer'], $_POST['NaamArtiest'], $_POST['Nummer']) )
   {


//  We gaan de errors in een array bijhouden
  $aErrors = array();
    
    if ( !isset($_POST['NaamNummer']) or !preg_match( '~^[\w ]{3,}$~', $_POST['NaamNummer'] ) ) {
    $aErrors['name'] = 'Please fill in your name';
  }

    
    if ( !isset($_POST['NaamAriest']) or !preg_match( '~^[\w ]{3,}$~', $_POST['NaamArtiest'] ) ) {
    $aErrors['name'] = 'Please fill in your name';
  }

    
    
    
    
     }

    
     if ( count($aErrors) == 0 ) {
    
     $sQuery = "INSERT INTO messages
                (naam_nummer, naam_artiest, address1, second_address, town, postcode)
                VALUES (
                  '"
.mysql_real_escape_string($_POST['NaamNummer'])."',
                  '"
.mysql_real_escape_string($_POST['NaamArtiest'])."'
                )"
;
        }

?>


<style type="text/css">
      .errorlist, .error input{
        border: 1px solid #f00;
        background: #fdd;
      }
      form.cmxform fieldset {
        margin-bottom: 10px;
      }
      form.cmxform legend {
        padding: 0 2px;
        font-weight: bold;
      }
      form.cmxform label {
        display: inline-block;
        line-height: 1.8;
        vertical-align: top;
      }
      form.cmxform fieldset ol {
        margin: 0;
        padding: 0;
      }
      form.cmxform fieldset li {
        list-style: none;
        padding: 5px;
        margin: 0;
      }
      form.cmxform em {
        font-weight: bold;
        font-style: normal;
        color: #f00;
      }
      form.cmxform label {
        width: 120px; /* Width of labels */
      }
    </style>
  </head>
  <body>
    <form action="invoegen.php" method="post" class="cmxform">
      <?php
      if ( isset($aErrors) and count($aErrors) > 0 ) {
        print '<ul class="errorlist">';
        foreach ( $aErrors as $error ) {
          print '<li>' . $error . '</li>';
        }

        print '</ul>';
      }

      ?>

      <p>Please complete the form below. Mandatory fields marked <em>*</em></p>
      <fieldset>
        <legend>Delivery Details</legend>
        <ol>
          <?php echo isset($aErrors['NaamNummer']) ? '<li class="error">' : '<li>' ?>
            <label for="name">Naam Nummer:<em>*</em></label>
            <input id="name" name="name" value="<?php echo isset($_POST['NaamNummer']) ? htmlspecialchars($_POST['NaamNummer']) : '' ?>" />
          </li>
                    <?php echo isset($aErrors['Naamartiest']) ? '<li class="error">' : '<li>' ?>
            <label for="name">Naam Artiest:<em>*</em></label>
            <input id="name" name="name" value="<?php echo isset($_POST['NaamArtiest']) ? htmlspecialchars($_POST['NaamArtiest']) : '' ?>" />
          </li>
          

                    
        </ol>
        <input type="submit" value="Verstuur" />
      </fieldset>
    </form>


Toevoeging op 16/01/2014 17:34:27:

- Aar - op 16/01/2014 17:21:30:
Kost een hoop performance, en lever enge traagheid op.

Voor kleine bestanden is het te overwegen, maar MP3's en andere grote bestanden zou ik lekker op de server zetten i.p.v. in MySQL. Makkelijker te backuppen ook nog eens. Ook met het bijkomende voordeel dat je ze makkelijker kan verhuizen naar een andere server, om ze bijv. te verspreiden over de aanwezige schijven.


En hoe moet dat dan? ik heb daar al helemaal geen ervaring mee :/


- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Gewijzigd op 16/01/2014 17:35:40 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

16/01/2014 17:36:46
 
Tom Stock

Tom Stock

21/01/2014 20:33:41
Quote Anchor link
maar klopt de code hierboven?
 
- Ariën  -
Beheerder

- Ariën -

21/01/2014 20:47:04
Quote Anchor link
Je moet er wel uploadfuncties in bouwen....
 
Erwin H

Erwin H

21/01/2014 21:04:37
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
 $sQuery
= "INSERT INTO messages
                (naam_nummer, naam_artiest, address1, second_address, town, postcode)
                VALUES (
                  '"
.mysql_real_escape_string($_POST['NaamNummer'])."',
                  '"
.mysql_real_escape_string($_POST['NaamArtiest'])."'
                )"
;
?>

En buiten dat deze query fout is (te weinig waardes voor de benoemde kolommen) doe je verder ook helemaal niets met hem. Daarmee is het dus technisch ook geen query, maar gewoon een ongebruikte string.
 



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.