Laat foto zien

Status
Niet open voor verdere reacties.

mbakker71

Gebruiker
Lid geworden
25 mei 2012
Berichten
163
Beste,

I heb een vraag. een paar leerlingen die een paar jaar voor mij de opleiding hebben gedaan hebben een database gemaakt in php maar dit is gemaakt in de tijd dat ze nog php opende met <? en niet met <?php. Na veel uren al de foute er uit gehaald te hebben en nog steeds niet alle fouten te hebben verandert kwam ik bij iets wat de opdrachtgever graag verbeterd wilde hebben.

Het gaat hier om een foto van een leerling de wordt zichtbaar als je over de naam van de leerling gaat. Alleen helaas werkte de code niet op het nieuwere browsers en is het voor mijn te lastig om het te verberteren. Dus ik kwam op het idee om deze code helemaal opnieuw te schrijven met de nieuwste codes.

Weet iemand hoe je dit maakt of heeft iemand een link met informatie?

help.jpg

Alvast Bedankt,

Martijn Bakker
 
Wat is de code die je op dit moment gebruikt?

Welke versie PHP hebben de leerlingen gebruikt voor het maken?
 
Beste,

Hierbij de code van fototonen.php
Code:
<?php
function doorspoelen($wachttijd) {

	while (ob_get_level()) {				// De outputbuffer moet worden doorgespoeld zodat
		ob_end_flush();						// alle gegevens meteen naar de browser toe gaan
	}

	if (ob_get_length() === false) ob_start();

	ob_flush();
	flush();
	
	usleep($wachttijd);						// Even wachten
}

$query_gelukt = false;

while (!$query_gelukt) {

	$host = "localhost";					// Host van de database
	$user = "root";  						// Username van de database
	$pass = "";								// Password van de database
	$data = "gino";  						// De database

	$RegistratieSysteemVerbinding = mysql_connect($host, $user, $pass);
											// Maak een verbinding met de MySQL server

	if (!$RegistratieSysteemVerbinding) exit;
											// Het is niet gelukt om een verbinding te
											// maken met de MySQL server. Het heeft geen
											// zin om door te gaan.
											echo "<script>'geen toegang'</script>";

	if (!@mysql_select_db($data, $RegistratieSysteemVerbinding)) exit;
											// Van de mogelijke MySQL databases op deze server
											// kies de RegistratieSysteem database uit

	$foto_resource = 	mysql_query("SELECT inhoud, type FROM foto WHERE OVnr='" . $_GET["OVnr"] . "'", $RegistratieSysteemVerbinding);
											// Voer de query uit om de fotogegevens en fototype
											// uit de database te halen voor deze cursist

	if ($foto_resource) {					// Wij hebben een geldig resultaat voor de query
											// terug gekregen van de MySQL server.

		if ($rij = @mysql_fetch_object($foto_resource)) {
											// Het resultaat bevat in ieder geval minimaal één
											// rij: er was dus een foto in de database voor 
											// deze cursist
			header("Content-type: ".$rij->type);
			echo $rij->inhoud;				// De header moet het eerste zijn dat naar de browser
											// toe gaat, om ervoor te zorgen dat de browser weet	
											// dat de gegevens als een image moeten worden weergegeven.	
											// Dan pas kunnen de fotogegevens zelf naar de browser
		}									// worden verstuurd.
		else {								// De query is wel gelukt in de zin dat een geldig
			echo "";						// resultaat is terug gekomen, maar er was kennelijk
		}									// geen foto voor deze cursist.
	}

	if (mysql_errno() == 0) {				// Er is geen fout opgetreden tijdens het uitvoeren
		$query_gelukt = true;				// van de query. Wij hoeven dus de query niet nog
	}										// een keer te proberen.
	else {									// Er is wel een fout opgetreden tijdens het uitvoeren
		@mysql_close($RegistratieSysteemVerbinding);
	}										// van de query: waarschijnlijk "Lost connection to
}											// MySQL server during query". Wij moeten dus de
											// verbinding verbreken (indien nodig) en de query
											// nog een keer proberen.

doorspoelen(500000);						// De outputbuffer doorspoelen

mysql_free_result($foto_resource);

mysql_close($RegistratieSysteemVerbinding);

?>

Dit is de javascript code
Code:
	function thumbnailopenen (inhoud) {
	
		if (browser == "NN") { 
			document.layers['thumbnail'].document.open();
			document.layers['thumbnail'].document.write(inhoud);
			document.layers['thumbnail'].document.close();
		}

		if (browser == "MO" || browser == "OP" || browser == "IE5") document.getElementById('thumbnail').innerHTML = inhoud;
		
		if (browser == "IE4") document.all['thumbnail'].innerHTML = inhoud;

		thumbnailstyle.left = (cursor.x + Xoffset) + 'px';
		thumbnailstyle.top = (cursor.y + Yoffset) + 'px';
		thumbnailstyle.visibility = 'visible';
	}
	
	function thumbnailsluiten () {
		thumbnailstyle.visibility = 'hidden';
	}

En de code in het index.php bestand:

Code:
echo '<table class="lltabel" align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="900" bordercolor="#000000">';?>
				<tr>
					<td class="lltabelnaam" colspan="3">
						<?PHP if ($db1->klas != "Docenten") {?>
							<a href="#" onmouseover = "thumbnailopenen('<img src='fototonen.php?OVnr=<?PHP echo $db1->leerlingnr;?>'><p><?PHP echo $db1->naam;?></p>');" onmouseout = "thumbnailsluiten();" style="color:#FFFFFF;">
								<?PHP echo $db1->naam;?>
							</a>
						<?PHP }
						else {
							echo $db1->naam;
						}
						echo " (" . $db1->leerlingnr . ") " . $db1->klas;?>
					</td>
				</tr>
			<?PHP $vorigllnr = $db1->leerlingnr;
		}
		$van = explode("-",$db1->van);
		$tot = explode("-",$db1->tot);
		echo '<tr>
		<td class="lltabelartikel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="img/icons/'.$db1->img.'.png" alt="" />&nbsp;'.$db1->omschrijving.' <font size="1">('.$db1->artikel.')</font></td>
		<td class="lltabeldatum">'.$van[2].' '.nrToMaand($van[1]).' '.substr($van[0],2).' - '.$tot[2].' '.nrToMaand($tot[1]).' '.substr($tot[0],2).'</td>
		<td class="lltabelknoppen"><a href="javascript:wijzigen(\''.$db1->id.'\')" title="Wijzigen"><img src="skins/'.$skin.'/wijzigen.png" alt="" border="0" /></a>&nbsp;<a href="javascript:inleveren(\''.$db1->id.'\')" title="Inleveren"><img src="skins/'.$skin.'/inleveren.png" alt="" border="0" /></a>&nbsp;<a href="javascript:wisselen(\''.$db1->id.'\')" title="Overzetten naar andere leerling"><img src="skins/'.$skin.'/wisselen.png" alt="" border="0" /></a></td></tr>';
		if($teller == mysql_num_rows($query1)){
			echo '</table><font style="font-size:6px">&nbsp;</font>';
		}
		$teller++;
 
De link die ik in voorgaand bericht gestuurd heb, is dit enige oplossing?
 
Het probleem is opgelost na veel uren googled en programmeren.

Bedankt voor jullie hulp! en miss tot later

Martijn
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan