Blog / Gastboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper DS

Jasper DS

21/08/2010 15:19:07
Quote Anchor link
Hey,
ik had een gastenboek en ik heb nu een blog geschreven maar nu heb ik een probleem met de navigatie. Het probleem is dat ik het id uit de url haal:
http://jasperdesmet.bplaced.net/blog.php?id=56?start=5
zoals je ziet staat er na ?id=.. ?start=5 dat dient voor de reacties op verschillende pagina's te zetten als ik nu het id opvraag met $_GET[id] dan haal ik het id op maar daar achter staat dan bv: ?start=5 endan krijg ik een mysql error.

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/jasperdesmet/www/blog.php on line 42
geen bericht gevonden

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/jasperdesmet/www/blog.php on line 73
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?start=5' at line 1


Ik weet niet hoe dit heet(ik kan het dus niet zoeken)
Iemand een idee hoe ik dit oplos?
voor het duidelijker te maken
www.jasperdesmet.bplaced.net
klik daar op bekijk reacties of voeg reactie toe bij eigen site en dan kan je het zien.

Als je niet snap wat ik bedoel met de reacties op verschillende pagina's zetten kijk dan op de index bij de reacties die er staan. (dat is van mijn vorig gatsenboek)

Alvast bedankt
 
PHP hulp

PHP hulp

29/11/2024 05:33:53
 
Noppes Homeland

Noppes Homeland

21/08/2010 15:24:02
Quote Anchor link
je moet toch onderhand wel weten hoe je meerdere parameters in de url moet zetten

index.php?a=1&b=2&c=3

En pas correcte controles en validaties toe!!
Indien je dat had dan was die query geen eens afgevuurd geweest geworden!
Gewijzigd op 21/08/2010 15:25:22 door Noppes Homeland
 
Jasper DS

Jasper DS

21/08/2010 15:33:04
Quote Anchor link
Noppes Homeland op 21/08/2010 15:24:02:
je moet toch onderhand wel weten hoe je meerdere parameters in de url moet zetten

index.php?a=1&b=2&c=3

En pas correcte controles en validaties toe!!
Indien je dat had dan was die query geen eens afgevuurd geweest geworden!


edit: lukt me nog niet. xs
Gewijzigd op 21/08/2010 15:39:18 door Jasper DS
 
Noppes Homeland

Noppes Homeland

21/08/2010 15:48:42
Quote Anchor link
En wat hebben we aan de melding: "edit: lukt me nog niet. xs"

GEEN ENE KLOOT

Dus wees duidelijk in het geen er dan nog niet lukt - verduidelijk het aan de hand van wat relevante code -. Overigens kan je in die paar minuten natuurlijk nooit je code hebben aangepast, zodat je wel een correcte url verkrijgt en de benodigde controles en validaties uitvoert op $_GET / $_POST waarden
Gewijzigd op 21/08/2010 15:56:52 door Noppes Homeland
 
Jasper DS

Jasper DS

21/08/2010 16:06:28
Quote Anchor link
Noppes Homeland op 21/08/2010 15:48:42:
En wat hebben we aan de melding: "edit: lukt me nog niet. xs"

GEEN ENE KLOOT

Dus wees duidelijk in het geen er dan nog niet lukt - verduidelijk het aan de hand van wat relevante code -. Overigens kan je in die paar minuten natuurlijk nooit je code hebben aangepast, zodat je wel een correcte url verkrijgt en de benodigde controles en validaties uitvoert op $_GET / $_POST waarden


ik weet niet waar de fout zit. ik kan moeilijk de hele code plaatsen
ik zal de navigatie code plaatsen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$_GET
['id'];
$sql = sprintf("SELECT * FROM blog WHERE id=$_GET[id]") or die (mysql_error());
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0) echo 'geen bericht gevonden';
else{


$result = mysql_fetch_assoc($res);
$titel = htmlentities($result['titel']);
$bericht = htmlentities($result['bericht']);
$datum = $result['datum'];

}


echo "<strong>".$titel."</strong><br />";
echo $datum;
echo nl2br($bericht);

/// NAVIGATIE


//max weergeven per pagina

$per_page = 5;

// get start variable
$start = $_GET['start'];

// count records
$record_count = mysql_num_rows(mysql_query("SELECT * from reageer_index where blog=$_GET[id]")) or die (mysql_error());

// count max pages
$max_pages = $record_count / $per_page; //may come out as decimal

if (!$start)
$start = 0;

//display data
//setup prev and next var

$prev = $start - $per_page;
$next = $start + $per_page;

//show prev but
if (!($start <= 0))
echo "<a href='blog.php?id=$_GET[id];start=$prev' class='gastboek1'>Vorige</a>  ";

//show page numb

// set variable voor eerste pag.

$i=1;

for ($x=0;$x<$record_count;$x=$x+$per_page)
{

    echo "<a href='blog.php?id=$_GET[id];start=$x' class='gastboek1'>$i</a>   ";  
    $i++;
}


//show next but
if (!($start>=$record_count-$per_page))
echo "  <a href='blog.php?id=$_GET[id];start=$next?' class='gastboek1'>volgende</a>";

/// EINDE NAVIGATIE
?>
Gewijzigd op 21/08/2010 16:09:39 door Jasper DS
 
Noppes Homeland

Noppes Homeland

21/08/2010 16:31:05
Quote Anchor link
1. wat doet $_GET['id'] op regel 2
2. $sql = sprintf("SELECT * FROM blog WHERE id=$_GET[id]") or die......
- sprintf is foutief gebruikt
- geen controle validatie op $_GET['id']
- sql injectie is mogelijk
- or die is niet van toepassing, je wilt fatsoenlijke foutafhandeling op het moment dat bij het uitvoeren van de query een fout op treed
3. je moet de mysql functies niet nesten, onmogelijk om dat correcte foutafhandeling te doen
4. je url is nog steeds niet correct
href='blog.php?id=$_GET[id];start=$next?'

waar oh waar is nu de &amp; en waarom in vredesnaam aan het eind nu nog een ongepast vraagteken plaatsen
- je doet er verstandiger aan om
4.1 je html te quoten met '' en niet met ""

4.2. html attribuutwaarden te qouten met "" ipv ''
4.3. php variabelen buiten de quotes te plaatsen

en zo kunnen we elke regel van jouw code wel van commentaar voorzien.

kijk eens op
http://www.phphulp.nl/php/tutorials/
of je daar niet wat gerelateerde artikelen tegen komt met betrekking tot jouw nietszeggende problemen
Gewijzigd op 21/08/2010 16:33:52 door Noppes Homeland
 
Jasper DS

Jasper DS

21/08/2010 16:38:17
Quote Anchor link
bedankt het is me gelukt.
Je gebruikt wel een harde aanpak xo
Gewijzigd op 21/08/2010 16:42:24 door Jasper DS
 
Noppes Homeland

Noppes Homeland

21/08/2010 16:48:55
Quote Anchor link
Wie wil leren moet het geschrevene maar tot zich nemen

Met andere woorden:
denk eerst zelf eens na, zoek zaken zelf uit, alvorens je onzinnige vragen gaat stellen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.