Krijg geen data uit db
Ik ben al bijna de hele dag bezig om iets wat simpels lijkt er uit te vissen.
Ik heb een htaccess file wat heel raar doet. Heb eerder een topic gemaakt maar dat gaat om iets anders.]
Ben totaal niet bekend met htaccess,
ik heb op mijn site paar categorien waar ik artikelen in heb staan. Echter moeten deze urls wel friendly zijn niemand wilt een link opnoemen dat lang is en met = tekens ectra.
Mijn categorie link is dan ook dit heb ik veranderd naar dit doet het in ieder geval.
Alleen heb ik artikelen in die categorieen staan en dan wil ik naar bijvoorbeeld: echter werkt dit niet want hij laat niks vanuit de database zien.
hier lukt het wel.
mijn htaccess code:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule c/(.*)$ category.php?nameID=$1 [L]
RewriteRule c/(.*)/(.*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
RewriteRule ^([^\s%20]*)[\s%20]+(.*)$ $1-$2 [E=NOSPACE:1]
RewriteCond %{ENV:NOSPACE} =1
RewriteRule ^([^\s%20]+)$ $1 [R=301,L]
RewriteEngine on
RewriteBase /
RewriteRule c/(.*)$ category.php?nameID=$1 [L]
RewriteRule c/(.*)/(.*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
RewriteRule ^([^\s%20]*)[\s%20]+(.*)$ $1-$2 [E=NOSPACE:1]
RewriteCond %{ENV:NOSPACE} =1
RewriteRule ^([^\s%20]+)$ $1 [R=301,L]
Plaats in category.php dit:
Dan kun je precies volgen hoe en wat er binnen komt.
Kom je er nog niet uit, plaats dan je input en output.
Gewijzigd op 06/04/2014 00:16:54 door Kumkwat Trender
Neem altijd eerst de meest specifieke regels op. Nu vangt regel 4 ook de urls op die je eigenlijk door regel 5 had willen laten afhandelen.
Wat je ook nog zou kunnen doen is de wildcards alleen laten matchen op tekens die géén / zijn. Dit voorkomt dat je gekke dingen gaat doorgeven als iemand een url als /c/Test/artikel/bla/die/bla opvraagt.
Je krijgt dan iets als:
Code (php)
1
2
2
RewriteRule c/([^/]*)$ category.php?nameID=$1 [L]
RewriteRule c/([^/]*)/([^/]*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
RewriteRule c/([^/]*)/([^/]*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
(in dit geval hoef je regel 4 en 5 niet per se om te draaien, maar het mag wel)
Gewijzigd op 06/04/2014 13:01:53 door Willem vp
Willem vp op 06/04/2014 12:55:31:
Ik zou in de .htaccess regel 4 en 5 omdraaien.
Neem altijd eerst de meest specifieke regels op. Nu vangt regel 4 ook de urls op die je eigenlijk door regel 5 had willen laten afhandelen.
Wat je ook nog zou kunnen doen is de wildcards alleen laten matchen op tekens die géén / zijn. Dit voorkomt dat je gekke dingen gaat doorgeven als iemand een url als /c/Test/artikel/bla/die/bla opvraagt.
Je krijgt dan iets als:
(in dit geval hoef je regel 4 en 5 niet per se om te draaien, maar het mag wel)
Neem altijd eerst de meest specifieke regels op. Nu vangt regel 4 ook de urls op die je eigenlijk door regel 5 had willen laten afhandelen.
Wat je ook nog zou kunnen doen is de wildcards alleen laten matchen op tekens die géén / zijn. Dit voorkomt dat je gekke dingen gaat doorgeven als iemand een url als /c/Test/artikel/bla/die/bla opvraagt.
Je krijgt dan iets als:
Code (php)
1
2
2
RewriteRule c/([^/]*)$ category.php?nameID=$1 [L]
RewriteRule c/([^/]*)/([^/]*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
RewriteRule c/([^/]*)/([^/]*)$ category.php?nameID=$1&id=$2&%{QUERY_STRING} [L]
(in dit geval hoef je regel 4 en 5 niet per se om te draaien, maar het mag wel)
Hallo,
Ik heb nou
Code (php)
1
2
3
4
5
2
3
4
5
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule c/([a-zA-Z]+)/([0-9]+)$ category.php?nameID=$1&id=$2 [L]
RewriteRule c/([a-zA-Z]+)$ category.php?nameID=$1 [L]
RewriteEngine on
RewriteBase /
RewriteRule c/([a-zA-Z]+)/([0-9]+)$ category.php?nameID=$1&id=$2 [L]
RewriteRule c/([a-zA-Z]+)$ category.php?nameID=$1 [L]
echter laat die bij category.php?nameID=$1&id=$2 alles zien inclusief de inhoud van nameID, dit moet niet ik wil alleen daar information hebben van id=$2
Kun je je vraag opnieuw formuleren?
Kumkwat Trender op 06/04/2014 13:40:57:
Kun je je vraag opnieuw formuleren?
Ik weet wat het probleem is, ik doe even alsof ik geen htaccess gebruik.
Ik heb de volgende link: Als ik naar deze url ga dan zie ik alleen de post,
en als ik naar deze link ga:
krijg ik alles van de category 'test' en de post.
Ik kan mensen wel doorsturen naar maar dan kun je achter nameid=van alles intypen en dan kom je als nog bij post id 3. deze 2 moeten gekoppeld worden, de test en de id 3.
Hier onder zie je mijn mysql query van id= page:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE name='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
?>
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE name='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_digit($_GET['id'])) $id = $_GET['id'];
if(ctype_digit($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_digit($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
//blabla
} else
// false
print 'false';
}
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_digit($_GET['id'])) $id = $_GET['id'];
if(ctype_digit($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_digit($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
//blabla
} else
// false
print 'false';
}
Gewijzigd op 06/04/2014 14:06:36 door Kumkwat Trender
Kumkwat Trender op 06/04/2014 14:06:10:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_digit($_GET['id'])) $id = $_GET['id'];
if(ctype_digit($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_digit($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
//blabla
} else
// false
print 'false';
}
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_digit($_GET['id'])) $id = $_GET['id'];
if(ctype_digit($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_digit($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
//blabla
} else
// false
print 'false';
}
Hallo moet ik bij het gedeelte 'blabla' daar mijn script invoegen van de post?
Gewijzigd op 06/04/2014 15:56:21 door Haddi Vries
Overigens zou ik op regel 9 en 10 van het script van Kumkwat geen ctype_digit() gebruiken maar ctype_alpha(), omdat nameID geen numerieke waarde is.
Code (php)
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
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
<?php
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_alpha($_GET['id'])) $id = $_GET['id'];
if(ctype_alpha($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_alpha($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE name='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
?>
<?php
echo '<p>';
if(empty($gooo['youtube'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
$fullurl1 = $gooo['youtube'];
$videoid1=substr($fullurl1,-11);
?>
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<iframe width="560" height="315" src="//www.youtube.com/embed/'.$videoid1.'" frameborder="0" allowfullscreen></iframe><br />';
echo '</p>';
}
if(empty($gooo['pic'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<img src="'.$gooo["pic"].'" style="max-height: auto; max-width: 600px;"/><br></p>';
}
echo '</p>';
} else {
print 'false';
}
}
?>
// BEGIN OF SHOWING CONTENT PAGE
if (isset($_GET['id'])){
$id = 0;
$nid = 0;
if(ctype_alpha($_GET['id'])) $id = $_GET['id'];
if(ctype_alpha($_GET['nameid'])) $nid = $_GET['nameid'];
if(ctype_alpha($_GET['nameID'])) $nid = $_GET['nameID'];
if($nid!=0 && $id!=0) {
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
$idnext = $id + 1;
$gn = (" SELECT * FROM category WHERE name='".$naamID."'") or die(mysql_error());
$go = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
$gnn = mysql_query($gn) or die(mysql_error());
$goo = mysql_query($go) or die(mysql_error());
$gnnn = mysql_fetch_array($gnn);
$gooo = mysql_fetch_array($goo);
?>
<?php
echo '<p>';
if(empty($gooo['youtube'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
$fullurl1 = $gooo['youtube'];
$videoid1=substr($fullurl1,-11);
?>
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<iframe width="560" height="315" src="//www.youtube.com/embed/'.$videoid1.'" frameborder="0" allowfullscreen></iframe><br />';
echo '</p>';
}
if(empty($gooo['pic'])){
} else {
?> <h1> <?php echo htmlspecialchars($gooo["title"]); ?> </h1><br />
<?php
echo '<p><a href="/editpost.php?id='.$gooo['id'].'"><i>Edit this post</i></a><br />';
echo '<img src="'.$gooo["pic"].'" style="max-height: auto; max-width: 600px;"/><br></p>';
}
echo '</p>';
} else {
print 'false';
}
}
?>
Gewijzigd op 06/04/2014 18:25:58 door Haddi Vries
Je mag je code ook inspringen met TAB's. Dat maakt alles beter leesbaarder.
Quote:
Hier onder staat nu mij volgende code van get ID, maar ik krijg nu 'false' melding als ik bijvoorbeeld naar: site.com/category.php?nameid=Test&id=3 ga
Dat komt, omdat je in regel 7 de ctype_digit() hebt vervangen door ctype_alpha(), en dat had nu juist níet gemoeten. ;-)
Ik krijg nog steeds de zelfde error, nameid moet nameID zijn, in de url maar daar krijg ik tevens alle artikelen onder mijn post ID 3
toevoegen en zeggen welk url je bezoekt EN wat hier uitkomt.
Je hebt het steeds over nameid en nameID, ik volg je daarom niet helemaal.
Kumkwat Trender op 06/04/2014 20:19:04:
kun je aub. aub. aub. boven aan je script
toevoegen en zeggen welk url je bezoekt EN wat hier uitkomt.
Je hebt het steeds over nameid en nameID, ik volg je daarom niet helemaal.
toevoegen en zeggen welk url je bezoekt EN wat hier uitkomt.
Je hebt het steeds over nameid en nameID, ik volg je daarom niet helemaal.
Array ( [nameID] => Test [id] => 1 )
mijn url:
http://memearch.eu/category.php?nameID=Test&id=1
Gewijzigd op 06/04/2014 20:31:20 door Haddi Vries
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
Verander het in:
$naamID = mysql_real_escape_string($nid);
$id = mysql_real_escape_string($id);
Gewijzigd op 06/04/2014 20:38:43 door Kumkwat Trender
Kumkwat Trender op 06/04/2014 20:37:42:
Deze 2 heb je niet veranderd:
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
Verander het in:
$naamID = mysql_real_escape_string($nid);
$id = mysql_real_escape_string($id);
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
Verander het in:
$naamID = mysql_real_escape_string($nid);
$id = mysql_real_escape_string($id);
Dank je wel, volgens mij heb ik iets heel doms gedaan ik heb aan het einde van de script even een geplaats, en hij doet het, ik schaam me heel diep dank jullie wel
Gewijzigd op 06/04/2014 21:25:07 door Haddi Vries
Haddi Vries op 06/04/2014 21:22:18:
Dank je wel, volgens mij heb ik iets heel doms gedaan ik heb aan het einde van de script even een geplaats, en hij doet het, ik schaam me heel diep dank jullie wel
Kumkwat Trender op 06/04/2014 20:37:42:
Deze 2 heb je niet veranderd:
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
Verander het in:
$naamID = mysql_real_escape_string($nid);
$id = mysql_real_escape_string($id);
$naamID = mysql_real_escape_string($_GET['nameID']);
$id = mysql_real_escape_string($_GET['id']);
Verander het in:
$naamID = mysql_real_escape_string($nid);
$id = mysql_real_escape_string($id);
Dank je wel, volgens mij heb ik iets heel doms gedaan ik heb aan het einde van de script even een geplaats, en hij doet het, ik schaam me heel diep dank jullie wel
Je hoeft je nergens voor te schamen. Iedereen maakt wel eens fouten of begint aan iets nieuws. Please dont blame yourself en zie het als een leermoment!