Ik ben net een beetje begonnen met php en loop tegen een uitdaging aan.
Ik heb gegevens in een database staan, en deze wil ik op de website tonen in 4 kollommen naast elkaar.
Tevens wil ik de oneven kollommen een bepaalde kleur geven en de even kollommen ook, hier loop ik tegen aan omdat ik niet een verschillende id kan meegeven aan de td.
mysql_connect($db_config['server'], $db_config['username'], $db_config['password']) or die(mysql_error()); mysql_select_db($db_config['database']) or die(mysql_error());
?>
Doe eens dit:
<?php
$con = mysqli_connect('localhost', 'user_username', 'password') or die(mysql_error()); mysqli_select_db($con, 'user_dbname') or die(mysql_error());
?>
Waarom eerst alles nodeloos in een variabele gooien?
Kan later (door een hacker oid) alleen maar misbruikt worden. En je doet er toch niets meer mee.
Ik snap niet dat veel mensen hun inloggegevens zo 'vrij' in een variabele laten staan. Terwijl dat echt niet nodig heeft (en geen enkel voordeel).
Let op dat je nu mysqli_-gebruikt, en dus overal $con bij moet zetten (kortom: alle mysql_query-dingen vervangen).
Het voordeel is dat het in een centrale configuratie kan worden geplaatst, en dat het een stuk duidelijker is dan halverwege de source, voor een beginner.
Ik zie zelf niet echt in hoe een hacker dit kan misbruiken?
Als hij ergens iets van PHP kan uitvoeren, doet hij gewoon een 'print_r($db_config)' oid.
Als het niet in een variabele staat, kan het ook niet meer opgeroepen worden.
En daarbij is het (zeker in dit geval) nutteloos kopiëren.
En aangezien je maar 1x een database-connectie maakt per request... zie ik er echt geen nut in.
Duidelijker.... ja..... een 1% duidelijker misschien.
Ik heb dit aangepast, de errors blijven wel aanwezig.
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in
Regel:
$query = mysqli_query("SELECT link, logo FROM ver-aansprakelijk", $con);
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in
regel:
while ($res = mysql_fetch_array($query))
index.php
<?php
include ('config.php');
$query = mysql_query("SELECT link, logo FROM ver-aansprakelijk", $con);
if($query === false)
{
echo 'De query is mislukt op lijn '. __LINE__ .' in '. __FILE__ .'<br>';
}
else
{
echo '<section class="logos">';
while ($res = mysql_fetch_array($query))
{
echo '<a href="'.$res['link'].'" target="_blank"><img src="images/'.$res['logo'].'"></a>';
}
echo '</section>';
}
?>
Ja, daar zit hem in.
Of alles met mysql_query() of alles met mysqli_query().
En ik raad dat laatste aan.
Nadeel is dat je de variabele met daarin de link naar je database (iets als $con, $link. $connectie oid) erbij moet vermelden.