$_get
Notice: Undefined index: id in /home/i296429/domains/i296429.iris.fhict.nl/public_html/snap/page/dailyScreenSubmit.php on line 42
Het zal we heel erg simpel zijn...
Code (php)
Gewijzigd op 11/06/2015 16:59:59 door Enrico van der List
De oplossing, regel 2 verhuizen na regel 5, of gewoon niet onnodig variabelen aanmaken, en netjes $_GET['id'] gebruiken.
Tevens zie ik een SQL-injection in je query, dus gebruik mysqli_real_escape_string() om je $id (of $_GET['id']).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Gewijzigd op 09/06/2015 19:56:35 door RobertJan Doeternietoe
@RobertJan: Waarom gebruik je array_key_exists? Een simpele isset() lijkt mij toch ook wel voldoende?
- Aar - op 09/06/2015 19:56:42:
@RobertJan: Waarom gebruik je array_key_exists? Een simpele isset() lijkt mij toch ook wel voldoende?
Programmeer gewoonte van me :P
Maar je kunt ook uiteraard if(isset()) gebruiken =)
RobertJan Doeternietoe op 09/06/2015 19:54:32:
Probeer dit eens :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Krijg vervolgens een melding van:
ID parameter niet gesubmit of onjuist
Enrico van der List op 09/06/2015 20:06:29:
Krijg vervolgens een melding van:
ID parameter niet gesubmit of onjuist
RobertJan Doeternietoe op 09/06/2015 19:54:32:
Probeer dit eens :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Krijg vervolgens een melding van:
ID parameter niet gesubmit of onjuist
Hoe benader je het bestand?
RobertJan Doeternietoe op 09/06/2015 20:16:44:
Hoe benader je het bestand?
Enrico van der List op 09/06/2015 20:06:29:
Krijg vervolgens een melding van:
ID parameter niet gesubmit of onjuist
RobertJan Doeternietoe op 09/06/2015 19:54:32:
Probeer dit eens :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(array_key_exists('id', $_GET)) {
if(is_int($_GET['id'])) $_GET['id'] = (int)$_GET['id'];
else mysqli_real_escape_string($con, $_GET['id']);
$res = mysqli_query($con, "SELECT * FROM temp WHERE id = $id ORDER BY id DESC");
if(mysqli_num_rows($res) >= 1) {
while($row = mysqli_fetch_array($res)) {
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else {
echo 'Geen rijen gevonden in de database.';
}
}
else {
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Krijg vervolgens een melding van:
ID parameter niet gesubmit of onjuist
Hoe benader je het bestand?
vanuit database door:
is_int() levert op strings (alle inhoud van $_GET en $_POST zijn altijd strings...) in ieder geval altijd false op.
Ben er nog niet veel mee opgeschoten want het blijft op een of andere manier maar foutmeldingen geven.
Welke code heb je nu, en welke foutmeldingen blijven over?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_GET['id']))
{
$res = mysqli_query($con, "SELECT path FROM temp WHERE id = ". (int) $_GET['id']);
if(mysqli_num_rows($res) >= 1)
{
while($row = mysqli_fetch_array($res))
{
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else
{
echo 'Geen rijen gevonden in de database.';
}
}
else
{
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(isset($_GET['id']))
{
$res = mysqli_query($con, "SELECT path FROM temp WHERE id = ". (int) $_GET['id']);
if(mysqli_num_rows($res) >= 1)
{
while($row = mysqli_fetch_array($res))
{
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else
{
echo 'Geen rijen gevonden in de database.';
}
}
else
{
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Gewijzigd op 10/06/2015 12:03:51 door - SanThe -
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/i296429/domains/i296429.iris.fhict.nl/public_html/snap/page/dailyScreenSubmit.php on line 56
Code (php)
Toevoeging op 10/06/2015 12:05:32:
- SanThe - op 10/06/2015 12:02:21:
Waarom niet gewoon zo?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_GET['id']))
{
$res = mysqli_query($con, "SELECT path FROM temp WHERE id = ". (int) $_GET['id']);
if(mysqli_num_rows($res) >= 1)
{
while($row = mysqli_fetch_array($res))
{
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else
{
echo 'Geen rijen gevonden in de database.';
}
}
else
{
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
if(isset($_GET['id']))
{
$res = mysqli_query($con, "SELECT path FROM temp WHERE id = ". (int) $_GET['id']);
if(mysqli_num_rows($res) >= 1)
{
while($row = mysqli_fetch_array($res))
{
echo "<img class='photo' src='../".$row['path']."' height='100' />";
}
}
else
{
echo 'Geen rijen gevonden in de database.';
}
}
else
{
echo 'ID parameter niet gesubmit of onjuist.';
}
?>
Ik krijg uiteindelijk deze echo terug: 'ID parameter niet gesubmit of onjuist.';
Dan bestaat $_GET['id'] dus niet.
$_GET -> de bron hiervan is je URL (pagina.php?id=1234)
$_POST -> de bron hiervan is je formulier (<input type="..." name="id" value="1234" />)
Snap je hoe $_GET werkt?
Thomas van den Heuvel op 10/06/2015 12:12:05:
Hoe roep je je pagina aan? ...
$_GET -> de bron hiervan is je URL (pagina.php?id=1234)
$_POST -> de bron hiervan is je formulier (<input type="..." name="id" value="1234" />)
Snap je hoe $_GET werkt?
$_GET -> de bron hiervan is je URL (pagina.php?id=1234)
$_POST -> de bron hiervan is je formulier (<input type="..." name="id" value="1234" />)
Snap je hoe $_GET werkt?
normaal wel maar in dit geval snap ik het zelf ook even niet meer...
Enrico van der List op 10/06/2015 12:14:03:
Thomas van den Heuvel op 10/06/2015 12:12:05:
Hoe roep je je pagina aan? ...
Doe je dat met pagina.php?id=1234
Doe je dat met pagina.php?id=1234
- SanThe - op 10/06/2015 12:17:00:
nee ik roep de pagina aan door
header('location: ../page/dailyScreenSubmit.php');
Enrico van der List op 10/06/2015 12:14:03:
Thomas van den Heuvel op 10/06/2015 12:12:05:
Hoe roep je je pagina aan? ...
Doe je dat met pagina.php?id=1234
Doe je dat met pagina.php?id=1234
nee ik roep de pagina aan door
header('location: ../page/dailyScreenSubmit.php');
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
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
<?php
error_reporting(E_ALL);
ini_set("display_errors", "1");
include '../page/error.php';
include('../conect_mysqli.php');
/*Upload van afbeelding naar server en database*/
$resultaat = mysqli_query($con,"SELECT MAX(id) FROM temp"); // checkt of database image bestaat
$rij = mysqli_fetch_array($resultaat);
$rij = $rij['MAX(id)'] + 1 ; // veranderd de naam in een nummer van de foto's aan de hand van de database + 1
$target_dir = "../upload/temp/";
$image_name = addslashes($_FILES['myimg']['name']); // naam bestand
$new_image_name = date('YmdHis') . '_' . uniqid() . '.jpg';
$target_file = $target_dir. $new_image_name;
$filePath = "upload/temp/" .$new_image_name; // locatie en naam van het bestand wat is geupload
if (move_uploaded_file($_FILES["myimg"]["tmp_name"], $target_file)){
echo "gelukt";
} else {
echo "niet gelukt";
}
mysqli_query($con, "INSERT INTO temp VALUES('$new_image_name', '$filePath')"); /*tussen de '' moet je de array benoemen die je wilt weergeven*/
header('location: ../page/dailyScreenSubmit.php');
?>
error_reporting(E_ALL);
ini_set("display_errors", "1");
include '../page/error.php';
include('../conect_mysqli.php');
/*Upload van afbeelding naar server en database*/
$resultaat = mysqli_query($con,"SELECT MAX(id) FROM temp"); // checkt of database image bestaat
$rij = mysqli_fetch_array($resultaat);
$rij = $rij['MAX(id)'] + 1 ; // veranderd de naam in een nummer van de foto's aan de hand van de database + 1
$target_dir = "../upload/temp/";
$image_name = addslashes($_FILES['myimg']['name']); // naam bestand
$new_image_name = date('YmdHis') . '_' . uniqid() . '.jpg';
$target_file = $target_dir. $new_image_name;
$filePath = "upload/temp/" .$new_image_name; // locatie en naam van het bestand wat is geupload
if (move_uploaded_file($_FILES["myimg"]["tmp_name"], $target_file)){
echo "gelukt";
} else {
echo "niet gelukt";
}
mysqli_query($con, "INSERT INTO temp VALUES('$new_image_name', '$filePath')"); /*tussen de '' moet je de array benoemen die je wilt weergeven*/
header('location: ../page/dailyScreenSubmit.php');
?>
Gewijzigd op 10/06/2015 12:20:18 door Enrico van der List
Enrico van der List op 10/06/2015 12:19:45:
nee ik roep de pagina aan door
header('location: ../page/dailyScreenSubmit.php');
header('location: ../page/dailyScreenSubmit.php');
Dan heb je dus ook geen $_GET['id'].
- SanThe - op 10/06/2015 12:23:36:
Dan heb je dus ook geen $_GET['id'].
Enrico van der List op 10/06/2015 12:19:45:
nee ik roep de pagina aan door
header('location: ../page/dailyScreenSubmit.php');
header('location: ../page/dailyScreenSubmit.php');
Dan heb je dus ook geen $_GET['id'].
hmm hoe krijg ik dan alsnog een $_GET['id'] mee?