[PHP]Newbie vraag

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Doordat ik nog niet zolang met php werk, krijg ik het volgende niet voor elkaar. Ik heb een lijst met daar in alle regisseuren die in een database staan. Nu was mijn bedoeling om via die lijst alle dvd's weer te gegeven die in de database staan. In mijn list.php staat het volgende:

PHP:
1
2
3
4
5
6
7
8
9
$list_result = mysql_query("SELECT DISTINCT regisseur FROM dvd ORDER BY regisseur ASC");
$regisseur = mysql_fetch_array($list_result);
    
do{
echo "<a href=\"..\beta.php?info=1&content=$regisseur[regisseur]\">";
echo $regisseur["regisseur"];
echo "</a>";
echo "<br>";
} while ($regisseur = mysql_fetch_array($list_result));


Zoals jullie kunnen zien wordt hiermee mijn beta.php aangeroepen. Zoals de naam al zegt is dit een beta dus staat er nog niet echt veel informatie in over de dvd's zelf, maar dit staat er in:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include ("config.php");

$info = $_GET['info'];

if ($info == '1'){

mysql_select_db("$db_naam");
$list_result = mysql_query("SELECT * FROM dvd WHERE regisseur LIKE '%content%' ORDER BY titel ASC");
$regisseur = mysql_fetch_array($list_result);

echo $regisseur["titel"];
}

?>


Nu het probleem, ik krijg op mijn beta.php helemaal niets te zien en dat terwijl ik aangeeft dat hij de titels van de dvd's moet weergeven.
Wat doe ik fout.

P.S. Modjes, ik kon geen juiste titel bedenken, dus mochten jullie het er niet mee eens zijn pas het dan graag aan....

Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Gaat je query wel goed?
Doe 'ns:
PHP:
1
2
3
4
5
6
7
8
9
if(!$list_result)
{
echo mysql_error();
}

else
{
//doe code
}


edit:
PHP:
1
$list_result = mysql_query("SELECT * FROM dvd WHERE regisseur LIKE '%content%' ORDER BY titel ASC");

%content%? moet dat niet %$_GET['content']% zijn oid? :)

[ Voor 45% gewijzigd door blizt op 04-05-2004 17:42 ]

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
blizt schreef op 04 mei 2004 @ 17:39:
Gaat je query wel goed?
Doe 'ns:
PHP:
1
2
3
4
5
6
7
8
9
if(!$list_result)
{
echo mysql_error();
}

else
{
//doe code
}
Wanneer ik dat aanpas in me script krijg ik geen foutmelding. Dus mag er nu van uitgaan dat het wel goed zit met me query.

hehehe te vroeg, zal het nu eens in me beta aanpassen

Na het aanpassen van me beta.php krijg ik geen foutmelding, maar geeft hij ook mijn titels niet weer

[ Voor 22% gewijzigd door Verwijderd op 04-05-2004 17:44 ]


Acties:
  • 0 Henk 'm!

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 17:27

Spooksel

Spooksel!

Je haalt $content zo te zien niet op uit de URL?
PHP:
1
$content = $_GET['content'];

En dan je sql:
PHP:
1
2
$sql = "SELECT * FROM dvd WHERE regisseur LIKE '". $content ."' ORDER BY titel ASC";
$list_result = mysql_query($sql);

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thnx spooksel, het werkt. Ik was in de veronderstelling dat content ook gelijk met info werd opgehaald....

Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Dat zei ik dus ook al in m'n edit hè...

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 17:27

Spooksel

Spooksel!

$_GET['var'] direct gebruiken voor zoiets heb ik al eens problemen mee gehad in het verleden, vandaar dat ik het eerst in een 'gewone' variabele zet.

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9


The_One
Kan je volgende keer een duidelijke titel kiezen? "Newbie vraag" zegt niet zo veel over de inhoud. Zie ook: *!*!* Over topictitels in P&W - Updated 25 feb 04 *!*!* :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Spooksel schreef op 04 mei 2004 @ 18:00:
$_GET['var'] direct gebruiken voor zoiets heb ik al eens problemen mee gehad in het verleden, vandaar dat ik het eerst in een 'gewone' variabele zet.
Je moet natuurlijk ook wel iets van htmlentities, strip_tags oid doen hè ;)
Maar je hoeft 't echt niet eerst in een var te douwen ... hoe kom je aan dat sprookje? :o

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Spooksel schreef op 04 mei 2004 @ 18:00:
$_GET['var'] direct gebruiken voor zoiets heb ik al eens problemen mee gehad in het verleden, vandaar dat ik het eerst in een 'gewone' variabele zet.
Ja, dit is een heel verschil! O-)
PHP:
1
2
3
4
$info = $_GET['info']
mysql_query('SELECT * FROM tabel WHERE column="'.$info.'"');
// of
mysql_query('SELECT * FROM tabel WHERE column="'.$_GET['info'].'"');

Je bedoelt iets als
PHP:
1
2
$info = mysql_real_escape_string(stripslashes($_GET['info']));
mysql_query('SELECT * FROM tabel WHERE column="'.$info.'"');

Blizt: dat soort dingen doe je bij de output. Een database is om informatie op te slaan, niet om het op te maken.

[ Voor 14% gewijzigd door Skaah op 04-05-2004 21:01 . Reden: stripslashes toegevoegd. ]


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Skaah: SQL-injection? Als jij gewoon alles toelaat als $info, .... Nja, dat weet je toch wel?

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

blizt schreef op 04 mei 2004 @ 20:31:
Skaah: SQL-injection? Als jij gewoon alles toelaat als $info, .... Nja, dat weet je toch wel?
Met mysql_real_escape_string ben je beveiligd tegen injection... :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
blizt schreef op 04 mei 2004 @ 20:31:
Skaah: SQL-injection? Als jij gewoon alles toelaat als $info, .... Nja, dat weet je toch wel?
Ik bedoel dingen als htmlentities() e.d. Stripstags hoor je niet te gebruiken imho bij het opslaan, wat nu als iemand iets als
<piet> hoi
<jan>ook hoi
in je database wil stoppen? Htmlentities bij het tonen voorkomt XSS (Cross-Site-Scripting).

[ Voor 33% gewijzigd door Skaah op 04-05-2004 21:04 ]


Acties:
  • 0 Henk 'm!

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 22-01 10:03

DanceTrend

w0ei

Het is al opgelost enzo volgens mij maar ik zeg het toch. In deze regel:
PHP:
1
$list_result = mysql_query("SELECT * FROM dvd WHERE regisseur LIKE '%content%' ORDER BY titel ASC");

staat %content% en dus NIET %$content% :)

[ Voor 7% gewijzigd door DanceTrend op 04-05-2004 21:05 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

DanceTrend schreef op 04 mei 2004 @ 21:03:
Het is al opgelost enzo volgens mij maar ik zeg het toch. In deze regel:
code:
1
$list_result = mysql_query("SELECT * FROM dvd WHERE regisseur LIKE '%content%' ORDER BY titel ASC");

staat %content% en dus NIET %$content% :)
Waarom post je een oplossing die ten eerste al aan bod is geweest en ten tweede fout is i.v.m. de standaard instelling van superglobals? :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

@DanceTrend:
blizt schreef op 04 mei 2004 @ 17:39:
[...]
edit:
PHP:
1
$list_result = mysql_query("SELECT * FROM dvd WHERE regisseur LIKE '%content%' ORDER BY titel ASC");

%content%? moet dat niet %$_GET['content']% zijn oid? :)
Skaah schreef op 04 mei 2004 @ 21:00:
[...]

Ik bedoel dingen als htmlentities() e.d. Stripstags hoor je niet te gebruiken imho bij het opslaan, wat nu als iemand iets als
.
Wie heeft 't hier over opslaan? Met een select sla ik niets op hoor...

[ Voor 5% gewijzigd door blizt op 04-05-2004 21:06 . Reden: Typo :( ]

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 22-01 10:03

DanceTrend

w0ei

NMe84 schreef op 04 mei 2004 @ 21:05:
[...]

Waarom post je een oplossing die ten eerste al aan bod is geweest en ten tweede fout is i.v.m. de standaard instelling van superglobals? :P
Omdat er niemand is die daar over begon volgens mij :P Maar das dus wel zo ik had er overheen gelezen |:( D8 dat ik t hele topic goed had gelezen.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
DanceTrend schreef op 04 mei 2004 @ 21:03:
Het is al opgelost enzo volgens mij maar ik zeg het toch. In deze regel:
code:
1
2
$list_result = mysql_query("SELECT * FROM dvd WHERE 
regisseur LIKE '%content%' ORDER BY titel ASC");

staat %content% en dus NIET %$content% :)
Zo kies je alle rijen uit je tabel waarbij het veld 'regisseur' het woord 'content' bevat (dus: 'contents, 'piet@content.nl'). Of jij formuleert vreemd, of ik lees slecht. Ligt 'm vast aan mij.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
include ('config.php'); 

$content = mysql_real_escape_string(stripslashes($_GET['content']));

if (isset($_GET['info']) && $_GET['info'] == '1')
{ 
  mysql_select_db($db_naam);  // deze regel hoort eigenlijk in je config.php
  $list_result = mysql_query('SELECT * FROM dvd WHERE regisseur LIKE "%'.$content.'%" ORDER BY titel'); 
  while ($regisseur = mysql_fetch_array($list_result))
  {
    echo $regisseur['titel'].'<br />'; 
  }
}
blizt schreef op 04 mei 2004 @ 21:05:
@DanceTrend:

[...]


[...]

Wie heeft 't hier over opslaan? Met een select sla ik niets op hoor...
Waarom gebruik je dan striptags op een SELECT?

[ Voor 34% gewijzigd door Skaah op 04-05-2004 21:20 ]


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Misschien een domme vraag Skaah, maar waarom moet $_GET['info'] volgens jou de waarde 1 bevatten? :+

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
blizt schreef op 04 mei 2004 @ 21:11:
Misschien een domme vraag Skaah, maar waarom moet $_GET['info'] volgens jou de waarde 1 bevatten? :+
Verwijderd schreef op 04 mei 2004 @ 17:34:
[...]
PHP:
1
2
3
4
5
6
7
<?php
include ("config.php");

$info = $_GET['info'];

if ($info == '1'){
//[...]
[...]

Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Ah, niet gezien.... My bad.
Over die strip_tags: ook een select-query is toch zo te veranderen dat ie andere dingen doet dan jij wilt?

offtopic:
4e keer dat ik dit probeer te posten, hopen dat 't nu lukt :(

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
blizt schreef op 04 mei 2004 @ 21:19:
Ah, niet gezien.... My bad.
Over die strip_tags: ook een select-query is toch zo te veranderen dat ie andere dingen doet dan jij wilt?

offtopic:
4e keer dat ik dit probeer te posten, hopen dat 't nu lukt :(
Jazeker, maar strip_tags is ervoor om htmltags zoals <b>, <script>, <body>, <br />, </em> en dergelijke uit een string te halen. Je verwart de functie misschien met add- en stripslashes()?

(zonder underscore, met underscore, gedoe man)

Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Argh, je hebt gelijk. Again: my bad.... Had niet goed nagedacht over wat ik gebruikte.
Toch goed dat er meer mensen op dit forum zijn, die je soms verbeteren ;)

United we stand, and divided we fall

Pagina: 1