Waarom kan ik niet includen op de volgende manier?
Admin.php:
$id = $row['id'];
$var = include('display_image.php?id=3');
$result = mysqli_query($conn,$sql) or die ("Error in query: $query. ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
echo "<table class='bart' height=100px width=500px>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo $var;
display_image.php:
<?php
include "conf.php";
// just so we know it is broken
error_reporting(E_ALL);
// some basic sanity checks
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
//connect to the db
$link = mysql_connect("$host", "$user", "$pass")
or die("Could not connect: " . mysql_error());
// select our database
mysql_select_db("$db") or die(mysql_error());
// get the image from the db
$sql = "SELECT image FROM test_image WHERE id=" .$_GET['id'] . ";";
// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
// set the header for the image
header("Content-type: image/jpeg");
echo mysql_result($result, 0);
// close the db link
mysql_close($link);
}
else {
echo 'Please use a real id number';
}
?>
[size=xsmall]Toevoeging op 29/06/2016 12:38:16:[/size]
HIj geeft dan de error:
Warning: include(display_image.php?id=3) [function.include]: failed to open stream: No error in C:\xampp\htdocs\PHProject\admin.php on line 108
Warning: include() [function.include]: Failed opening 'display_image.php?id=3' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\PHProject\admin.php on line 108
Je kunt dit script niet gebruiken door deze te includen in je huidige script. Volgens mij had ik dit in een ander topic al duidelijk gemaakt: deze moet verwerkt worden in een img tag.
<?php
$id = $row['id'];
$var = include('display_image.php?id=3');
$result = mysqli_query($conn,$sql) or die ("Error in query: $query. ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
echo "<table class='bart' height=100px width=500px>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo $var;
?>
De toevoeging ?id=3 bij de include() moet weg.
In de include() kan je gewoon $id gebruiken, die bestaat daar omdat je die voor de include() hebt aangemaakt.
Als je include() in een $var wilt zetten moet de include eindigen met: return $inhoud (= wat de include als output heeft)
Ben, dat had ik eerst. Eerst had ik dat display_image.... in een imgtag maar een van de mensen waarmee ik dit project doe zei dat dat niet werkte, ik kreeg namelijk toen ook al verscheidene errors.
SSanthe is zal is kijken of het werkt.
Je probeert nu dus opnieuw binaire data te echoën in je HTML. Dat is iets dat gegarandeerd niet werkt. De img tag is de oplossing, en andere errors die er eventueel uit voortvloeien los je daarna op.
Daarnaast: een van de mensen zei het. Zei diegene ook waarom niet? Wat er fout aan is? Of een foutmelding die diegene kreeg? Of was het gewoon ongehinderd door enige kennis van zaken?
$id = $row['id'];
$var = include('display_image.php?id=$id');
$result = mysqli_query($conn,$sql) or die ("Error in query: $query. ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
echo "<table class='bart' height=100px width=500px>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
return $var;
echo "<td><b>
Warning: include(display_image.php?id=$id) [function.include]: failed to open stream: No error in C:\xampp\htdocs\PHProject\admin.php on line 109
Warning: include() [function.include]: Failed opening 'display_image.php?id=$id' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\PHProject\admin.php on line 109
[size=xsmall]Toevoeging op 29/06/2016 13:13:10:[/size]
whut. Vanochtend werkte display_image in image tag niet. Nu ineens wel.
Wat ik dan vanochtend fout deed weet ik ook niet. But it works.
Een tweede vraag: Hoe fix ik een Headers Already Sent error?
<?php
$id = $row['id'];
$var = include('display_image.php');
$result = mysqli_query($conn,$sql) or die ("Error in query: $query. ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
echo "<table class='bart' height=100px width=500px>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo $var;
?>
<?php
include "conf.php";
// just so we know it is broken
error_reporting(E_ALL);
// some basic sanity checks
if(isset($id) && is_numeric($id)) {
//connect to the db
$link = mysql_connect("$host", "$user", "$pass")
or die("Could not connect: " . mysql_error());
// select our database
mysql_select_db("$db") or die(mysql_error());
// get the image from the db
$sql = "SELECT image FROM test_image WHERE id=" .$id . ";";
// the result of the query
$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
// set the header for the image
header("Content-type: image/jpeg");
return mysql_result($result, 0);
// close the db link
mysql_close($link);
}
else {
return 'Please use a real id number';
}
?>
Gaat waarschijnlijk niet werken doordat er een header() in zit.