Controleren of data is opgehaald

Status
Niet open voor verdere reacties.

The Lion93

Gebruiker
Lid geworden
12 jul 2007
Berichten
189
Hallo,
Ik ben bezig om mijn Joomla website en phpBB forum wat meer te integreren. Ik wou dit doen d.m.v. het weergeven van de in Joomla geschreven artikelen in het phpBB profiel. Hiervoor heb ik deze code geschreven:

PHP:
if(isset($_GET['u']))
{ 
	$u=$_GET['u'];
}

$joomla = 'http://localhost/theyellowarmy/';

//maak een verbinding met de database
$link = mysql_connect('localhost', 'root');
mysql_select_db('theyello_iwg3wjo', $link);

//Verkrijg het juiste id van de auteur
$sql = 'SELECT iwg3_jfusion_users_plugin.id, iwg3_jfusion_users_plugin.userid FROM 
    iwg3_jfusion_users_plugin WHERE iwg3_jfusion_users_plugin.userid = ' . $u . '';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

//selecteer alle artikelen met id van de auteur
$sql = 'SELECT iwg3_content.id, iwg3_content.created_by, iwg3_content.title, iwg3_content.created FROM 
    iwg3_content WHERE iwg3_content.created_by = ' . $row['id'] . ' ORDER BY iwg3_content.created DESC';
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
	echo '
		<tr>
			<td width=50% class="row1"><a href="' . $joomla . 'index.php?option=com_content&view=article&id=' . $row['id'] . '&catid=47:blog&Itemid=49">' . $row['title'] . '</a></td>
			<td width=50% class="row1" align="center">' . $row['created'] . '</td>
		</tr>
	';
}

//sluit de database
mysql_close($link);

Dit werkt allemaal goed, alleen wil ik nu dat als er geen artikelen geschreven zijn door de gebruiker dat er dan een ander bericht komt te staan. Hoe kan ik dit het beste doen?

Kan er ook gekeken worden of deze code bruikbaar is online? Ik ben vrij nieuw met php.
Bedankt!
 
Met mysql_num_rows kan je opvragen hoeveel rijen een query oplevert. Als dat nul is weet je dat er er geen artikelen geschreven zijn door de gebruiker en kan je een bericht tonen.

Je moet wel oppassen met je eerste query
PHP:
$sql = 'SELECT iwg3_jfusion_users_plugin.id, iwg3_jfusion_users_plugin.userid FROM 
    iwg3_jfusion_users_plugin WHERE iwg3_jfusion_users_plugin.userid = ' . $u . '';
Omdat $u een get-variabele is, kan de gebruiker dit aanpassen met een SQL-injectie tot gevolg. Als $u een id (getal) is, is het het makkelijkste op te lossen door regel 3 te vervangen door
PHP:
$u=(int)$_GET['u'];
Dat maakt van $u een getal, waardoor er geen andere "enge" tekens in voor kunnen komen.
 
Ja ik was idd ook al bang voor SQL-Injecties. Ik ben nog vrij nieuw met PHP en MySQL dus ik was al blij dat ik informatie uit de database kon ophalen:D Maar gelukkig zijn deze pagina's alleen nog offline getest!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan