A B C links + Pagina 1 2 3 & Sorteren

Door Thijs X, 23 jaar geleden, 8.818x bekeken

Omdat ik bezig was met een ledenlijst heb ik dit even gemaakt, en dacht laat ik het maar toevoegen mischien hebben anderen er nog wat aan ;)
Het script werkt als volgende, het geeft alle leden weer en bovenaan een links A t/m Z.
Als je op A klikt zie je alle members die naam hebben die begint met een A.
Als dat er meer zijn dan 25, dan worden er verschillende pagina's gemaakt en links gevormd onderaan.

Mocht iemand nog verbeteringen zien post het dan ff :D

Gesponsorde koppelingen

PHP script bestanden

  1. a-b-c-links-pagina-1-2-3-en-sorteren

 

Er zijn 19 reacties op 'A b c links pagina 1 2 3 en sorteren'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Nu nog een beveiliging tegen MySQL injection inbouwen.... :)
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Hoe? Geef eens een voorbeeld?
Dicenzo
Dicenzo
23 jaar geleden
 
0 +1 -0 -1
Ja dat wil ik ook wel weten...
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $letter = $_GET['letter']; ?>


wat als de gebruiker nou eens iets 'leuks' invoert ? ;)
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Hmm ja das waar maar hoe kan ik dat het beste beveiligen?
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
door eerst te controleren of het een geldige waarde is... je kan bijvoorbeeld een array maken met geldige waardes, dan gebruik je dit:
(het zal ongetwijfeld anders kunnen, bijvoorbeeld door de functie is_alphabetical() (oid) te gebruiken, maar in_array is perfect veilig...)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$letters
= array('a','b','c');
if( isset( $_GET['letter'] ) ) {
    $query = "SELECT * FROM letters WHERE letter = '" . $_GET['letter'] . "'";
    if( in_array( $_GET['letter'], $letters ) ) {
        mysql_query( $query );
    }

    else {
        echo 'Opzouten!';
    }
}

?>


de query die jij gebruikt zal denk ik niet goed werken... je kijkt of de opgegeven letter voorkomt in de naam... maar Pim zal dus ook bij de letter I komen te staan... (ik heb het script ff globaal doorgenomen, en die query viel me direct op)

/edit query klopt toch :)
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Bedankt Pim ik zal dat strax even proberen.
maar wat jij zei over die query klopt niet hoor, hij werkt perfect probeer zelf maar eens en Pim zou gewoon staan bij de P en nergens anders. Mischien heb je ergens overheeng elezen in de query ;)

http://www.semeleer.nl/tut_sql.html#like <-
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Je hebt in je script:

Quote:
$letter = $_GET['letter'];
$sql = "SELECT COUNT(*) AS `totaal` FROM `leden` WHERE `naam` LIKE '".$letter."%'";


Nu voer ik in:
http://www.jeurl.be/?letter=A' OR naam LIKE '%

Dit zal dus de volgende query geven:
SELECT COUNT(*) AS `totaal` FROM `leden` WHERE `naam` LIKE 'A' OR naam LIKE '%'

Dit zou dan nog een 'mooie' injection zijn, en gewoon alles uit je db ophalen... Mits wat truucjes verwijder je gewoon alle gegevens, de tabel zelf, of eventueel de hele database...
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
Sorry, mijn fout... ik gebruik de LIKE query niet vaak, maar als ik hem gebruik, is het voor zoekmachines :) dan zet je er % tekens voor en achter, dus krijg je alle records met iets dat erop lijkt
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Ja klopt dat is waar, kzal morgen eens even kijke wat ik eraan kan verbeteren :D
Bo az
Bo az
23 jaar geleden
 
0 +1 -0 -1
@Rafael, http://www.jeurl.be/?letter=A' OR naam LIKE '%

zal volgens mij niet echt werken, dan zit er een ' in je variable en dit zal automatisch \' worden, tenzij het eerst stripslashes(); gebruikt zal dit gewoon een foutmelding opleveren?
Thijs X
Thijs X
23 jaar geleden
 
0 +1 -0 -1
Ok ik heb hem ff geupdate
Elmer Kouwenberg
Elmer Kouwenberg
23 jaar geleden
 
0 +1 -0 -1
Zou je een link naar een voorbeeld er bij kunnen zetten (of naar mij kunnen mailen)? Ik ben net in de PHP materie gedoken en wil graag van dit script leren.

Elmer
Ferdi R
Ferdi R
21 jaar geleden
 
0 +1 -0 -1
Perfect hij doet het goed:)
Niek Kasius
Niek Kasius
21 jaar geleden
 
0 +1 -0 -1
Pas Op! dit is geen kritiek.
sorry! ik mis een database tabel, en volgens mij werk dat script dan niet, of zie ik dat verkeerd?
Thijs X
Thijs X
21 jaar geleden
 
0 +1 -0 -1
Het script heb ik een hele tijd geleden gepost, kunnen wel een aantal verbeteringen in ja, maar hij moet zeker wel werken.
Database tabel is naar mijn mening niet nodig omdat je het gemakkelijk naar je eigen model kan aanpassen / uitbreiden.
Jan geen
Jan geen
21 jaar geleden
 
0 +1 -0 -1
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
<?php
if(isset($_GET['sorteren']))
{

    switch($_GET['sorteren'])
    {
        case
"naam": $sorteer = "naam"; break;
        case
"email": $sorteer = "email"; break;

        default:
$sorteer = "naam"; break;
    }
}

else
{
    $sorteer = "naam";
}

 // kan iets korter
$sorteer = (isset($_GET['sorteren']) && $_GET['sorteren'] == "email") ? "email" : "naam";
?>
Thijs X
Thijs X
21 jaar geleden
 
0 +1 -0 -1
@ Rik,
Het kan inderdaad korter maar wanneer je op meerdere dingen wilt kunnen sorteren dan heb je toch wel een switch nodig. Vandaar dat ik deze hier ook heb staan.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Wishmaster
Wishmaster
19 jaar geleden
 
0 +1 -0 -1
wat als ik dit wil intergreren in een script van een tracker
en alle leden wil kunnen zoeken op alfabeth meer ook nummeriek
ik zoek hier al maanden naar maar een oplossing heb ik niet misschien is er hier iemand die me daar mee kan helpen
alvast bedankt

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. a-b-c-links-pagina-1-2-3-en-sorteren

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.