*Hoe zou ik het best gegevens (veilig) gegevens uit een database halen en updaten?
*Moet ik voor elke te bewerken pagina een soort edit pagina maken of kan ik dit doen met post?
Hetgene ik nu doe is hetvolgende (ik ben nog maar een beginner)
ik heb een homepage en om deze te bewerken heb ik in de cms een edithome.php pagina gemaakt. Dus per pagina het ik een edit.... .php pagina gemaakt.
is het mogelijk om het op devolgende manier te doen bvb edit.php?home ofzo?
Of hoe zou jij het doen?
Je zou inderdaad een pagina edit.php kunnen maken. Als je deze pagina opent geeft je ook een GET variabele mee waarin staat welke pagina je wilt wijzigen. De link zou dan bijvoorbeeld kunnen zijn: www.jouwsite.nl/edit.php?page=home
Met behulp van php kun je dan kijken welke pagina er gewijzigd moet worden. Dit doe je door $_GET['page'] te gebruiken.
<?php
$paginas = array('home', 'pagina2', 'etc'); // Pagina's die gewijzigd kunnen worden.
if(isset($_GET['page']))
{
if(in_array(strtolower($_GET['page']), $paginas))
{
$pagina = strtolower($_GET['page']).'.php';
// De code om de pagina te wijzigen.
}
else
{
// Pagina kan niet gewijzigd worden.
}
}
else
{
// Er is geen pagina opgegeven.
}
?>
Ik heb de volledige code in een txt bestandje gezet http://chismoor.net/edit.txt
zoals je ziet is dit script vrij slecht qua beveiliging en qua scripting, ik ben dit nu aan het opknappen.
Hoe zou ik deze code het best herschrijven?
in ieder geval door te beginnen om in te springen, je hebt nu weliswaar al bij de div's ingesprongen, maar daar houdt het dan ook bij op. zoek eens een tutorial over PEAR. dat maakt je code gelijk een stuk beter leesbaar, voor jezelf en anderen.
- Overal foutafhandeling toepassen.
- Variabelen overal buiten quotes halen.
- PHP logica en output zoveel mogelijk gescheiden houden. Eerst alle logica uitvoeren en dan pas output genereren.
- mysql_real_escape_string() gebruiken als je iets naar een database schrijft. Dit om mysql injectie te voorkomen.
Dat ligt aan de risico's die jij loopt uitgedrukt in geld en tijd.
En de enige die daar wat over kan zeggen, dat ben jij. Bedenk daarbij ook dat je nogal afhankelijk bent van de server waarop de boel is geinstalleerd, je zou niet de eerste zijn bij wie de hele boel in het honderd loopt dankzij een beveiligingslek op de server. Dan kun je scripten wat je wilt, zolang de server (of scripts van anderen op de server!) onveilig zijn, ben je gewoon het haasje.
Zie verder de opmerkingen van Blanche en bedenk dat je met PostgreSQL de boel naar een hoger beveiligingsniveau kunt tillen dan dat met MySQL mogelijk is. Maar dat hangt voor een groot deel af van de kennis en kunde van de programmeur.