Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: MySQL & php | online fotoalbum - meedenken  (gelezen 1617 keer)

MySQL & php | online fotoalbum - meedenken
« Gepost op: 2010/08/31, 21:16:42 »
Ik probeer iets maar het lijkt niet te werken:
op fotoview.php staat dit (en werkt)
<?php
$SQL_statement
="SELECT * FROM images";
$resultset=mysql_query($SQL_statement);
while(
$pic=mysql_fetch_array($resultset)) {
echo 
"<p><a href=\"foto.php?iid=" $pic['iid'] . "\">" $pic['titel'] . "</a></p>";
}
?>


op foto.php staat dan het volgende maar daar wil hij niet echt naar lusiteren:
<?php
$SQL_statement
="SELECT * FROM images WHERE iid=" $iid;;
$resultset=mysql_query($SQL_statement);
while(
$pic=mysql_fetch_array($resultset)) {
echo 
$pic['link'];
}
?>


ideeën waarom dit niet werkt? thx
« Laatst bewerkt op: 2010/08/31, 22:11:21 door schwarzproductions »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #1 Gepost op: 2010/08/31, 21:19:53 »
$SQL_statement="SELECT * FROM images WHERE iid=" . $iid;
$iid is een nog niet aangemaakte variabele als dit alle code is.

Ik neem aan dat je daarvoor de waarde X uit de querystring wilt hebben (?iid=X)

Dat doe je middels $iid = $_GET['iid'].
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #2 Gepost op: 2010/08/31, 21:23:57 »
Ik wil er even bij vertellen dat dit gevaarlijk kan zijn! Het wordt erg vaak gedaan in php applicaties, maar dat is zeer onzurgvuldig!
Het maakt je code gevoelig voor SQL injecties.

Voor integer waardes zou ik het volgende doen:
$iid = intval($_GET['iid']);

Voor string kun je addslashes() gebruiken. Bedenk dan wel dat elke ' of " vervangen wordt door respectievelijk \' en \". Voordat je zulke strings dan print kun je stripslashes() gebruiken.

Dit zijn voorbeelden en er zijn meerdere wegen die naar Rome leiden :)
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #3 Gepost op: 2010/08/31, 21:32:31 »
Ik dacht al dat ik met een GET zou moeten werken, maar het vreemde is, op een andere website werkt dit wel zonder (weet ik omdat ik me op nu op die code baseer)

Zou het kunnen zijn dat het verschil ligt aan de php versie
Waar het werkt: PHP Version 5.2.6-2ubuntu4.6
Lokaal, waar het niet werkt: PHP Version 5.3.2-1ubuntu4.2

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #4 Gepost op: 2010/08/31, 21:47:29 »
Het kan inderdaad aan de php instellingen liggen. Misschien werd in die oudere versie onderwater door Apache of php een $_GET gedaan op een variabele als hij nog niet bestond.
Dit is (WAS) waarschijnlijk een smerige feature die het mogelijk maakte niet netjes te programmeren :P Die heeft php wel meer.
Ik raad je aan om de code zo netjes mogelijk te schrijven. Dit voorkomt meer van dit soort problemen met toekomstige php versies.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #5 Gepost op: 2010/08/31, 21:52:34 »
Dat zou het inderdaad wel kunnen zijn :)
Dan blijf ik wat verder onderzoeken... ;)
De bedoeling is om een fotoalbum te schrijven, met upload & categorieën.

Dan maar verder lezen (en eens volledig opnieuw beginnen...)

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #6 Gepost op: 2010/08/31, 22:05:16 »
Succes! Het punt is dat (vooral met php) er erg veel te vinden is op het net, en niet alles even handig of netjes in elkaar gezet. Als je vragen hebt stel ze maar...

Programmeer je dit trouwens zelf omdat je dit graag doet of wilt leren? Er zijn namelijk ook al halve kant en klare oplossingen voor foto-albums die je kunt gebruiken he ;)
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Re: MySQL & php WHERE iid=" . $iid;;
« Reactie #7 Gepost op: 2010/08/31, 22:08:43 »
het is vooral om te leren, en om dan ook te gebruiken.
De kant-en-klare oplossingen passen niet in het ontwerp van de volledige website (en valt dan ook niet goed samen met de beheerskant van de website etc etc)

Hints in de juiste richting zijn dus zeker welkom ;)
« Laatst bewerkt op: 2010/08/31, 22:10:49 door schwarzproductions »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php | online fotoalbum - meedenken
« Reactie #8 Gepost op: 2010/09/02, 11:51:19 »
Over SQL injectie gesproken...

Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Re: MySQL & php | online fotoalbum - meedenken
« Reactie #9 Gepost op: 2010/09/02, 11:59:57 »
Die kon ik al :) Een paar vrienden van mijn broer deden mee aan een programmeer wedstrijd en hadden hun groepsnaam ook zo genoemd :) (gelukkig was het beveiligd)

Ik had nu het volgende idee, om zonder SQL te werken (maar ik weet niet of het echt goed is)
Als een nieuwe categorie gemaakt word, word een nieuwe map op de server aangemaakt, met de titel van de categorie.
Als dan een categorie aangeklikt wordt wordt via read_dir de juiste folder uitgelezen, en die foto's weergegeven.
De Upload Dir word dan via een dropdown menu geselecteerd.

Ik heb echter geen idee of dit haalbaar is, en goed/veilig zal werken.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: MySQL & php | online fotoalbum - meedenken
« Reactie #10 Gepost op: 2010/09/02, 12:03:15 »
Dat kun je zeker doen. Ik wil je sowieso aanraden de foto's zelf als bestanden op schijf op te slaan en NIET in de DB. Ik weet alleen niet zeker of je helemaal geen SQL wilt...
Misschien wil je toch iets met MySQL doen. Bijvoorbeeld reacties bij foto's plaatsen. Dan kun je in de DB alleen de link naar de foto opslaan. En in php maak je daar een ofzo URL van..

Ik heb zelf ook welles een album gemaakt. Ik kan het script wel een keertje voor je opzoeken als je wilt..
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Re: MySQL & php | online fotoalbum - meedenken
« Reactie #11 Gepost op: 2010/09/02, 12:09:38 »
Sowieso ging ik niet met BLOB werken. Ik heb er over gelezen, en ging met links werken, en dan in php <img src=\"foto/" . $pic['link'] . "\" /> werken.

Dat scriptje zou zeker welkom zijn. Heb ik weer wat te lezen op de trein :)
Het feit is dat het album op zich wel werkt, maar de categorieën niet. En dat is wat 'de klant' graag wil. Vandaar :)

Net 2 boeken geleend in de bibliotheek:
Programming PHP / Lerdorf, Rasmus. - Sebastopol, Calif., 2002
Programming the world wide web / Sebesta, W. Robert. - Boston, 2008

Daar zal ik ook wel wat inspiratie uit halen :) (de voordelen van in een universiteitsbibliotheek te werken :))
« Laatst bewerkt op: 2010/09/02, 12:32:10 door schwarzproductions »