Data wordt niet in database geschreven
Het heeft gewerkt maar nu in eens niet meer (Misschien door PHP update??)
File word wel upgeload alleen informatie word niet Inn de Database geschreven.
Als ik de waardes die in de database moeten komen via echo op het scherm zet zijn ze er wel.
Gebruikersnaam etc worden eerder op de pagina via include_once toegevoegd.
Krijg ook geen fout in het scherm.
Dit is de PHP die het formulier afhandelt:
Code (php)
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
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
<?php
if(isset($_POST['upload']))
{ $allowedExts = array("gif", "jpeg", "jpg", "png","GIF", "JPEG", "JPG", "PNG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 10000000000000000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("advertiserimage/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"advertiserimage/" . $_FILES["file"]["name"]);
echo "Stored in: " . "advertiserimage/" . $_FILES["file"]["name"];
$target = "url(advertiserimage/". $_FILES['file']['name'].")";
//$target = $target . basename( $_FILES['file']['name']);
$URL = $_POST['txtUrlimage'];
$con = mysqli_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"], $_CONFIG["Database"]);
$Insert = mysqli_query($con,"INSERT INTO advertisor(customerid,createddate,imagepath,url,isactive) VALUES ('$ID',curdate(),'$target','$URL',0)")or die(mysqli_error()) ;
}
//$Pic = $_FILES['file']['name'];
}
}
else {
echo "File size limit exceed";
}
}
}
?>
if(isset($_POST['upload']))
{ $allowedExts = array("gif", "jpeg", "jpg", "png","GIF", "JPEG", "JPG", "PNG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 10000000000000000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("advertiserimage/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"advertiserimage/" . $_FILES["file"]["name"]);
echo "Stored in: " . "advertiserimage/" . $_FILES["file"]["name"];
$target = "url(advertiserimage/". $_FILES['file']['name'].")";
//$target = $target . basename( $_FILES['file']['name']);
$URL = $_POST['txtUrlimage'];
$con = mysqli_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"], $_CONFIG["Database"]);
$Insert = mysqli_query($con,"INSERT INTO advertisor(customerid,createddate,imagepath,url,isactive) VALUES ('$ID',curdate(),'$target','$URL',0)")or die(mysqli_error()) ;
}
//$Pic = $_FILES['file']['name'];
}
}
else {
echo "File size limit exceed";
}
}
}
?>
Edit:
Ik heb even een duidelijkere topictitel aan je topic meegegeven die je probleem uitlegt.
Gewijzigd op 19/08/2019 18:33:43 door - Ariën -
En waar komt $ID vandaan?
- Ariën - op 18/08/2019 22:47:37:
Welke foutmelding krijg je?
En waar komt $ID vandaan?
En waar komt $ID vandaan?
User is ingelogd en $ID haal ik uit $ID=$_SESSION['uniqueid'];
Krijg geen fout melding en gekke is dat de afbeelding wel geupload word, alles gaat goed tot $Insert = mysqli_query($con,........
Pas mysqli_error() eens aan naar:
mysqli_error($con)
- Ariën - op 18/08/2019 22:47:37:
Welke foutmelding krijg je?
En waar komt $ID vandaan?
En waar komt $ID vandaan?
Weet denk ik waar het fout gaat, krijg error: Field 'counter' doesn't have a default value.
Kijkeven en laat weten of het opgelost is. (Is een teller toegevoeg, zet de waarde voor dit veld even op 0)
Toevoeging op 18/08/2019 23:49:36:
Jeroen Weij op 18/08/2019 23:41:10:
Weet denk ik waar het fout gaat, krijg error: Field 'counter' doesn't have a default value.
Kijkeven en laat weten of het opgelost is. (Is een teller toegevoeg, zet de waarde voor dit veld even op 0)
- Ariën - op 18/08/2019 22:47:37:
Welke foutmelding krijg je?
En waar komt $ID vandaan?
En waar komt $ID vandaan?
Weet denk ik waar het fout gaat, krijg error: Field 'counter' doesn't have a default value.
Kijkeven en laat weten of het opgelost is. (Is een teller toegevoeg, zet de waarde voor dit veld even op 0)
Hallo Ariën, opgelost bedankt!
Counter toegevoegd en waarde op 0 gezet.
$Insert = mysqli_query($con,"INSERT INTO advertisor(customerid,createddate,imagepath,url,isactive,counter) VALUES ('$ID',curdate(),'$target','$URL',0,0)
Ik raad wel aan om je invoer te escapen met mysqli_real_escape_string() want nu is er SQL-injectie mogelijk. En dát wil je niet, of het nu schadelijk is, of onverwacht.
- Ariën - op 18/08/2019 23:53:35:
Ik raad wel aan om je invoer te escapen met mysqli_real_escape_string() want nu is er SQL-injectie mogelijk. En dát wil je niet, of het nu schadelijk is, of onverwacht.
Alleen $_POST['txtUrlimage'] toch?
Gewijzigd op 19/08/2019 00:28:07 door - Ariën -
Quote:
Krijg ook geen fout in het scherm.
Maar je echo'd in het bovenstaande fragment een heleboel informatie op het scherm. Wat krijg je precies te zien?
Overigens, het Content-Type van het bestand wordt volgens mij door de browser "bepaald" door de extentie, dus in bovenstaande code controleer je in wezen twee keer hetzelfde (de extensie, en vervolgens het Content-Type, wat gebaseerd is op de extentie).
Een hele rudimentaire check om te zien of het bestand een afbeelding is en niet simpelweg een bestand met de extentie van een afbeelding, is via een aanroep van getimagesize(). Indien deze false retourneert dan heb je naar alle waarschijnlijkheid in ieder geval niet te maken met een afbeelding.
Als de informatie niet in de database wordt geschreven houdt dit ofwel in:
- dat je niet in het goede (geneste) if-statement terecht bent gekomen, de insert wordt dan simpelweg niet uitgevoerd, hier zou je informatie over terug moeten krijgen, voeg anders else-statements toe zodat je precies kunt zien waar het misgaat
- de insert mislukt om een of andere reden
Ik denk dat het belangrijk is dat je eerst precies vaststelt hoe het pad eruit ziet wat in de code wordt afgelegd. Pas dan weet je precies wat er is gebeurd. En vervolgens kun je gaan verklaren waarom dat specifieke pad doorlopen werd, en moeten mogelijk aanpassingen in code gedaan worden als blijkt dat bepaalde controles niet goed (of niet meer zoals voorheen) werk(t)en. Begin dus bij een analyse van wat er stap voor stap gebeurt.
Gewijzigd op 19/08/2019 16:19:06 door Thomas van den Heuvel
Thomas van den Heuvel op 19/08/2019 01:28:46:
Maar je echo'd in het bovenstaande fragment een heleboel informatie op het scherm. Wat krijg je precies te zien?
Overigens, het Content-Type van het bestand wordt volgens mij door de browser "bepaald" door de extentie, dus in bovenstaande code controleer je in wezen twee keer hetzelfde (de extensie, en vervolgens het Content-Type, wat gebaseerd is op de extentie).
Een hele rudimentaire check om te zien of het bestand een afbeelding is en niet simpelweg een bestand met de extentie van een afbeelding, is via een aanroep van getimagesize(). Indien deze false retourneert dan heb je naar alle waarschijnlijkheid in ieder geval niet te maken met een afbeelding.
Als de informatie niet in de database wordt geschreven houdt dit ofwel in:
- dat je niet in het goede (geneste) if-statement terecht bent gekomen, de insert wordt dan simpelweg niet uitgevoerd, hier zou je informatie over terug moeten krijgen, voeg anders else-statements toe zodat je precies kunt zien waar het misgaat
- de insert mislukt om een of andere reden
Ik denk dat het belangrijk is dat je eerst precies vaststelt hoe het pad eruit ziet wat in de code wordt afgelegd. Pas dan weet je precies wat er is gebeurd. En vervolgens kun je gaan verklaren waarom dat specifieke pad doorlopen werd, en moeten mogelijk aanpassingen in code gedaan worden als blijkt dat bepaalde controles niet goed (of niet meer zoals voorheen) werk(t)en. Begin dus bij een analyse van wat er stap voor stap gebeurt.
Quote:
Krijg ook geen fout in het scherm.
Maar je echo'd in het bovenstaande fragment een heleboel informatie op het scherm. Wat krijg je precies te zien?
Overigens, het Content-Type van het bestand wordt volgens mij door de browser "bepaald" door de extentie, dus in bovenstaande code controleer je in wezen twee keer hetzelfde (de extensie, en vervolgens het Content-Type, wat gebaseerd is op de extentie).
Een hele rudimentaire check om te zien of het bestand een afbeelding is en niet simpelweg een bestand met de extentie van een afbeelding, is via een aanroep van getimagesize(). Indien deze false retourneert dan heb je naar alle waarschijnlijkheid in ieder geval niet te maken met een afbeelding.
Als de informatie niet in de database wordt geschreven houdt dit ofwel in:
- dat je niet in het goede (geneste) if-statement terecht bent gekomen, de insert wordt dan simpelweg niet uitgevoerd, hier zou je informatie over terug moeten krijgen, voeg anders else-statements toe zodat je precies kunt zien waar het misgaat
- de insert mislukt om een of andere reden
Ik denk dat het belangrijk is dat je eerst precies vaststelt hoe het pad eruit ziet wat in de code wordt afgelegd. Pas dan weet je precies wat er is gebeurd. En vervolgens kun je gaan verklaren waarom dat specifieke pad doorlopen werd, en moeten mogelijk aanpassingen in code gedaan worden als blijkt dat bepaalde controles niet goed (of niet meer zoals voorheen) werk(t)en. Begin dus bij een analyse van wat er stap voor stap gebeurt.
Thomas, bedankt. Heb het inmiddels opgelost. Miste een DB veld