Hallo,

Er zullen genoeg topics hier over aangemaakt zijn, maar het lukt me nog steeds niet.

Heb al verschillende dingen geprobeerd,

Probleem:
Ik heb een pagina systeem daarmee bedoel ik; x aantal berichten per pagina.

als ik nu naar userlist.php?page=4 ga, werkt het wel!

Maar als ik dit dus met httacces wil doen userlist/4

werkt het niet.


ErrorDocument 404 /error.php
Options +FollowSymlinks
Options +Indexes
<Files .htaccess>
deny from all
</Files>
<Files ~ "\.log$">
	Order allow,deny
	Deny from all
</Files>
<ifModule mod_php5.c>
	php_value zlib.output_compression 16386
	php_value register_globals off
	php_value session.use_trans_sid 0
</ifModule>
<ifModule mod_rewrite.c>
RewriteEngine on
# Uncomment the line below if the site doesn't work and you have mod_rewrite installed.
# RewriteBase /
RewriteEngine On
RewriteRule    ^userlist/([A-Za-z0-9-]+)/?$ userlist.php?id=$1    [NC,L] 
</ifModule>


dit is het laatste wat ik geprobeerd hebt.


Hoor het graag !
afhankelijk van hoe je server op gezet is, kan er voor userlist een / staan:

probeer eens:

RewriteRule    ^/?userlist/([0-9]+)/?$ userlist.php?id=$1    [NC,L] 


(en aangezien je aan het einde een getal verwacht, zou ik niet op letters gaan matchen.)
Helaas werkt dit ook niet

Notice: Undefined index: id in C:\wamp64\www\userlist.php on line 126

lijn 113 t/m 126

$eachPage = 20;

					if(isset($_GET['id'])){
						
						$page = $_GET['id'];
					}else{
						$page = 1;
					}
					
					$calc = $eachPage * $page;
					$start = $calc - $eachPage;
					$sql = $connect->runQuery("SELECT * FROM users ORDER BY points DESC Limit $start, $eachPage");
					echo $page;
					echo $_GET['id'];
.htaccess


Options -Indexes
Options +FollowSymLinks
ErrorDocument 404 /index.php
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}/index.html !-f
    RewriteCond %{REQUEST_FILENAME}/index.php !-f
    RewriteRule ^(.*)$ index.php/?id=$1 [L]

</IfModule>


PHP:

<?php
echo '<pre>';
var_dump($_GET);
echo '</pre>';
?>


Output als ik deze opvraag: http://localhost/phphulp/1

array(1) {
  ["id"]=>
  string(2) "1"
}

array (size=0)
empty


dat krijg ik als antwoord

en als ik via rankinglist.php?id=2 ga dan krijg ik
array (size=1)
'id' => string '2' (length=1)
Volgens mij gebruik je _quote_ verkeerd, want je quote niemand.

Wat doe je precies om die output te krijgen?

Options -Indexes
Options +FollowSymLinks
ErrorDocument 404 /index.php
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}/index.html !-f
    RewriteCond %{REQUEST_FILENAME}/index.php !-f
    RewriteRule ^userlist/(.*)$ userlist.php?id=$1

</IfModule>


dit is me httacces bestand


<?php
echo '<pre>';
var_dump($_GET);
echo '</pre>';
?>
					<?php
					$eachPage = 20;

					if(isset($_GET['id'])){
						if($_GET['id'] == '0'){
							$page = 1;
						}else{
							$page = $_GET['id'];
						}
					}else{
						$page = 1;
					}
					
					$calc = $eachPage * $page;
					$start = $calc - $eachPage;
					$sql = $connect->runQuery("SELECT * FROM users ORDER BY points DESC Limit $start, $eachPage");
					if($connect->NumRows($sql) == 0){
					?>


dit is wat ik wil, en dan aanroepen met site/userlist/1 of site/userlist/2

alleen werkt het niet, de output is zoals hierboven vermeld.

als ik site/userlist.php?id=1 doe, werkt het wel dus het probleem zal n de httaccess file zitten.

alvast wederom bedankt!
htaccess:

Options -Indexes
Options +FollowSymLinks
ErrorDocument 404 /index.php
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}/index.html !-f
    RewriteCond %{REQUEST_FILENAME}/index.php !-f
    RewriteRule ^userlist/(.*)$ userlist.php?id=$1

</IfModule>


userlist.php:

<?php
echo '<pre>';
var_dump($_GET);
echo '</pre>';

$eachPage = 20;

if (isset($_GET['id'])) {
    if ('0' == $_GET['id']) {
        $page = 1;
    } else {
        $page = $_GET['id'];
    }
} else {
    $page = 1;
}

var_dump($page);
?>


Output:


array(1) {
  ["id"]=>
  string(2) "1/"
}
string(2) "1/"


[size=xsmall]Toevoeging op 27/12/2017 19:05:14:[/size]

Het is dus mogelijk, dat er een extra slash aan $_GET['id'] zit vastgeplakt, waardoor je query misschien niet werkt.
C:\wamp64\www\rankinglist.php:115:
array (size=0)
empty
C:\wamp64\www\rankinglist.php:130:int 1

Dit is mijn output.
Heb het bestand inmiddels aangepast naar rankinglist lijn 115 tot 130 zijn die lijnen die je hierboven gaf.


C:\wamp64\www\rankinglist.php:130:int 1



RewriteRule ^userlist/(.*)$ userlist.php?id=$1


Zoek de verschillen. Kleine hint, userlist.php is niet het zelfde als rankinglist.php
Jacco Engel op 28/12/2017 08:46:03


C:\wamp64\www\rankinglist.php:130:int 1



RewriteRule ^userlist/(.*)$ userlist.php?id=$1


Zoek de verschillen. Kleine hint, userlist.php is niet het zelfde als rankinglist.php


Dat weet ik, maar had al aangegeven dat ik de naam veranderd had naar rankinglist.

[size=xsmall]Toevoeging op 28/12/2017 21:08:00:[/size]

Helaas nog geen oplossing... iemand iets?

Reageren