Next/Previous, sorteren, muteren

Door Meddiecap B, 15 jaar geleden, 3.798x bekeken

Ik ben zelf met een backoffice bezig waarbij ik Next/Previous, sorteren, muteren op een pagina wilde hebben. Door voor heb ik mij een beetje rot gezocht en dacht, laat ik dat eens samenvoegen.

Ik heb de scriptjes o.a. van deze website afgehaald en heb ze dus niet zelf gemaakt. Het leek mij alleen handig voor andere mensen om deze scripts in een keer ergens vandaan te kunnen halen.

Overigens..een database ontbreekt. Na commentaar heb ik variabele die ik eerste $1, $2, etc noemde, veranderd naar NAW gegevens. Dus om het script echt te laten werken, moet je eerst even een database maken waarin "voorletters, voornaam, achternaam, straat, postcode, plaats en land" in staan.

Het bestaat eigelijk uit twee bestanden, dat wordt onderaan het script wel duidelijk. Ik krijg dat alleen niet nog duidelijker weergegeven.

Het is mijn eerste toevoeging, dus hoor graag wat men ervan vind.

Oja, let aub niet op de leesbaarheid, al heb ik het zo goed mogelijk proberen te doen.

Gesponsorde koppelingen

PHP script bestanden

  1. nextprevious-sorteren-muteren

 

Er zijn 35 reacties op 'Nextprevious sorteren muteren'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
Ja, sh*t, komt die code zo raar eruit.
Martijn Boshoven
Martijn Boshoven
15 jaar geleden
 
0 +1 -0 -1
moet je het script even tussen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
en
zetten
dan werkt t wel goed ;)
Robin de Vries
Robin de Vries
15 jaar geleden
 
0 +1 -0 -1
[(en dan zonder deze text) code ] en [ / code] zetten ...
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
lol...geef me ff tijd, het kwartje moet ff vallen...lukt nmlk voor geen meter.

Is hier geen handleiding voor?
Crispijn -
Crispijn -
15 jaar geleden
 
0 +1 -0 -1


Bedoelen jullie gok ik? heerlijk die ignore functie :D
Erwin Nieuwenhuis
Erwin Nieuwenhuis
15 jaar geleden
 
0 +1 -0 -1
je moet gewoon hier je script gebruiken.

Dat is wat Robin en martijn je proberen te vertellen :p
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
@ Erwin & Crispijn: Dankjewel

edit:

en dat ik nog steeds wat fouten tegenkom, maar die kun je er zo uit vissen, en daar ben ik natuurlijk ook mee bezig...
Hipska BE
Hipska BE
15 jaar geleden
 
0 +1 -0 -1
// Hier kijken we hoeveel records we hebben
--> dit doe je dan wel met de goede query hopelijk.

( SELECT COUNT(*) AS aantal FROM tabel )

En kijk ook nog eens om je SQL injection tegen te gaan.. Want, wat als in $_GET['id'] "id" zit? bij die DELETE query zijn dan alle items weg ...
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
@ Hipska: Gelijk heb je, maar ik heb daar niet op gelet omdat bij de backoffice die ik maak deze pagina alleen te bereiken is alvorens er wordt ingelogd. En dus leek het mij niet nodig. (Verbeter mij als ik dit fout zeg)

En betreft wat je hierover zegt:
// Hier kijken we hoeveel records we hebben
...werkt bij mij..

Edit:
Overigens, betreft SQL-injectie, met dat inlogdingetje dat ik gebruikt, kan ik niet injecties doen, dan moet ik weer inloggen...
Onbekend Onbekend
Onbekend Onbekend
15 jaar geleden
 
0 +1 -0 -1
$1=$_POST['1'];
$2=$_POST['2'];
$3=$_POST['3'];
$4=$_POST['4'];
$5=$_POST['5'];
$6=$_POST['6'];
$7=$_POST['7'];

klinkt heel slim ja. Al gedacht aan foreach()? Want dit kost verschikkelijk veel serverload en staat niet netjes. Verder vind ik dit niet echt iets nuttigs. Zou eigenlijk niet eens weten wat iemand hiermee moet. Het is gewoon om bijvoorbeeld een ledenlijst in pagina's te verdelen? Daar zijn toch wel makkelijkere dingen voor?
Jacco Engel
Jacco Engel
15 jaar geleden
 
0 +1 -0 -1
$1=$_POST['1'];
$2=$_POST['2'];
$3=$_POST['3'];
$4=$_POST['4'];
$5=$_POST['5'];
$6=$_POST['6'];
$7=$_POST['7'];

==

extract($_POST) ;
Onbekend Onbekend
Onbekend Onbekend
15 jaar geleden
 
0 +1 -0 -1
Ik was eerder ''p
Jacco Engel
Jacco Engel
15 jaar geleden
 
0 +1 -0 -1
Ik zie anders in jou post nergens extract staan
GaMer B
GaMer B
15 jaar geleden
 
0 +1 -0 -1
Het is overigens niet toegestaan om een variabelnaam te laten beginnen met een cijfer. Zie de PHP reference voor meer informatie.
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
@Tommy: Lol, idd, heb ik aan gedacht. In het orgineel is dat bijv.: naam, achternaam, adres, etc...(zo moet je het eigenlijk ook zien) Zoals ik het nu heb zou ik idd ook een foreach of een while hebben gekozen.

Daarnaast had ik het script ook wel kunnen uitbreiden door een create_table eraan toe te voegen, en dan ipv:
$1=$_POST['1'];
$2=$_POST['2'];
$3=$_POST['3'];
$4=$_POST['4'];
$5=$_POST['5'];
$6=$_POST['6'];
$7=$_POST['7'];
gewoon met naam, voornaam, adres, etc te werken. Was misschien wel duidelijker danwel gebruiksvriendelijker geweest.

@ Jacco: Niet bekend mee en waarom extract? Ik heb dat helemaal niet nodig...

Overigens waardeer ik de feedback, maar het feit dat deze scriptjes bij elkaar staan, heeft dat toegevoegde waarde?
Jeffrey H
Jeffrey H
15 jaar geleden
 
0 +1 -0 -1
Geeft dit script echt geen error mathijs??
Want meestal mag een vriabele niet met een numer beginnen...
Dus het moet wel volgens Tommy z'n manier ;)

@jacco, denk je dat extract werkt, dan gebeurd hetzelfde als met Register Globals, en die is, voor als je het nog niet weet:
PHP:
This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

Edit: Of op mathijs z'n manier, zou kunnen...
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
@ Tha Wizekid: Ja die nummers werken dus niet. Die heb ik er enkel als voorbeeld in gelaten. Nogmaals, lees $1 bijv. als $naam, en $2 als $achternaam, etc..ik moest gewoon snel iets hebben wat mij duidelijk leek.

Het gaat om het principe wat dit betreft, niet het precieze.
$row['1'], moet je dus eigelijk lezen als $row['naam'], etc...
$_POST['1'] --> als $_POST['naam']

edit: ik heb dit veranderd /edit

Ik ga er gemakshalve vanuit dat men weet dat je hier je eigen gegevens moet invullen. Het script zal in zijn totaal ook niet werken omdat er geen database/tabel is, die ik aanroep met "require_once("inc_connect.php")".

De basisreden voor deze post is ook, dat Next/Previous, sorteren en muteren bij elkaar staat.
Onbekend Onbekend
Onbekend Onbekend
15 jaar geleden
 
0 +1 -0 -1
@gamer13, ik had dat in een edit van één van mijn vorige reacties gezet, maar ik heb blijkbaar niet op submit geklikt. En ik vind een variable met een cijfer er in sowieso lelijk staan.
Hipska BE
Hipska BE
15 jaar geleden
 
0 +1 -0 -1
// Hier kijken we hoeveel records we hebben
$data = mysql_query("SELECT COUNT(*) AS aantal FROM tabelnaam") or die(mysql_error());
$rows = mysql_num_rows($data);

Klopt nog steeds voor geen meter.

+ nog steeds OVERAL(!) SQL injectie mogelijkheid
Meddiecap B
Meddiecap B
15 jaar geleden
 
0 +1 -0 -1
@ Kipska: Het spijt me zeer, maar het werkt wel hoor. Als je ff verteld wat er precies niet klopt...

edit: het werkt idd toch niet...maar het is al verbeterd

Daarnaast weet ik dat SQL injectie overal nog mogelijk is, maar aangezien je eerst moet inloggen om op deze pagina te komen, heb ik daar verder niets aan gedaan. Zoals ik al eerder heb uitgelegd.
Marvin S
Marvin S
15 jaar geleden
 
0 +1 -0 -1
@Mathijs..

Een ingelogd persoon kan toch ook handmatig de url aanpassen? dus inloggen als beveiliging is stap 1. Alle GET's beveiligen is voor jou dus stap 2.
Wim E
Wim E
15 jaar geleden
 
0 +1 -0 -1
probeer evt de GET om te zetten in POST gegevens;)
In hidden fields bijvoorbeeld...dan maak je het al een stuk moeilijker
Karl Karl
Karl Karl
15 jaar geleden
 
0 +1 -0 -1
Ik heb de rest niet gelezen hoor, maar hoezo is een hidden filed moeilijker? In opera kan klik ik gewoon op source, en dan kan ik de broncode aanpassen....
Marvin S
Marvin S
15 jaar geleden
 
0 +1 -0 -1
@Karl.
Je kunt hem aanpassen ja. Maar dan pas je alleen op je eigen pc die source aan. Uiteraard niet op de server. Dus heb je hier niets aan wat jij bedoeld.

Als je je GET wilt beveiligen zet je gewoon in de query waar je ze gebruikt dit neer:

als je nu dit hebt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM tabel WHERE id = " '.$_GET['iets'].' ";"

Maak je er dit van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"SELECT * FROM tabel WHERE id = " '.mysql_real_escape_string($_GET['iets']).' ";"


Dan zijn dingen als 'id' etc beveiligd.


edit: uiteraard kun je die ook het beste bij de POST doen.
Karl Karl
Karl Karl
15 jaar geleden
 
0 +1 -0 -1
@Marvin: Dat weet ik ook, maar ik reageer op Wim, want hij heeft het er over dat het dan moeilijker wordt. Ik zie niet in waarom dat is. Ik kan zo de source van de html aanpassen (doh, geen php), dus zo injections toepassen als d'r geen beveiliging is.
Ik bedoel dus hetzelfde als wat jij bedoelt.
Marvin S
Marvin S
15 jaar geleden
 
0 +1 -0 -1
Nee ik denk niet dat je hetzelfde bedoeld als ik. Want in je browser kun je de 'source' niet aanpassen;-) alleen het door jou browser binnengehaalde html. De 'source' staat namelijk op je webserver en die komt never nooit op jou pc terecht. De source valt alleen aan te passen op de webserver. Je kunt dit in je browser dus alleen bekijken door 'view source' of welke browser je ook gebruikt.

Injections is weer een heel ander verhaal, die pas je namelijk via je browser toe op je webserver. En niet via de 'bekijk de broncode'-knop die jij bedoeld.
Karl Karl
Karl Karl
15 jaar geleden
 
0 +1 -0 -1
Marvin:

Nee ik denk niet dat je hetzelfde bedoeld als ik. blablalabla, ik heb een bril nodig want ik lees niet, balablablablalab, nog meer onzin. Nu ga ik doen alsof ik het allemaal goed weet. Blablablabla. Ik ben eigenwijs, blbalbalabla

Jij leest blijkbaar niet wat ik zeg. Ik zeg namelijk ook dat ik de html aan kan passen, verder niks. Heb jij mij ooit horen zeggen dat ik de php oid kan aanpassen? Nee.
Verder heb je geen achtergrondonderzoek geplaatst, want:
Marvin:
Je kunt dit alleen bekijken door 'view source' of welke browser je ook gebruikt.

onzin. Je hebt nog nooit Opera gebruikt, die kan namelijk de html wel aanpassen, ja, natuurlijk de html die op je eigen pc staat, niet die op de server staat. Maar als je dat niet snapt....

Marvin:
Injections is weer een heel ander verhaal, die pas je namelijk via je browser toe op je webserver. En niet via de 'bekijk de broncode'-knop die jij bedoeld.

Ah, zeker via httpliveheaders ofzo? Of firebug? Trouwens, firebug kan ook de html editten, maar dat zal je vast en zeker ook niet hebben ontdekt.
En jewel ik bedoel hetzelfde, want die knakker voor mij had het er over dat je een hidden field maakt, zodat het moeilijker wordt om sql injections te doen. Nou, mijn god, wat maakt dat het moeilijk. Men pakt firebug voor die firefox liefhebbers, en kloot wat in de html, of pak httpliveheaders en kloot met de headers.
In Opera ga je gewoon naar de source, en past dat field aan. Klaar, daar hoef je niet ingewikkeld te doen met firebug of httpliveheaders.

En je zal vast en zeker nog steeds zo eigenwijs en ik-weet-het-lekker-beter-dan-hij houding hebben. Neem dan effe de moeite om dit filmpje te bekijken. Als je die houding niet hebt, bekijk het filmpje nogsteeds.

Alles wat ik in die ene post wou zeggen is dat een hidden field niks helpt, dat je op serverside moet beveiligen. Want die html die de server stuurt, en weer op je pc terecht komt, kan je zo aanpassen, dus ook dat hidden field. Dat betekend dat je ook sql injections d'r in kan stoppen.



Marvin:
Nee ik denk niet dat je hetzelfde bedoeld als ik. Want in je browser kun je de 'source' niet aanpassen;-) alleen het door jou browser binnengehaalde html, de 'source' staat namelijk op je webserver en die never nooit op jou browser (pc) terecht. Nogmaals deze source die jij bedoeld pas je niet aan (probeer maar eens op te slaan). Je kunt dit alleen bekijken door 'view source' of welke browser je ook gebruikt.

Sorry hoor dat ik die eerste quote heb vernacheld, maar het is echt onzin wat je hier praat. Ik stel me jou al voor op school: "Nee antwoordenboekje, 2+2 is niet 4 het is 12!". Hoe eigenwijs ben je wel ooit niet als je gaat beweren dat iemand anders wat anders bedoelt, ik bedoel wat ik bedoel en daarmee basta. Als ik zeg dat wat ik bedoel, dan is dat zo, dan kan jij niet effe zeggen, dat bedoel je niet.
Verder vind ik het onzin omdat je gewoon niet hebt gecontroleerd, je hebt niet effe Opera gedownload en effe niet gekeken wat er gebeurt als je rechts klikt op een pagina source (broncode dus, kijk maar in de Nederlandse firefox daar het het broncode, of ie) aanklikt en wat voor een knopje d'r bovenaanstaat:
http://screencast.com/t/tj4Cc7YDTpA
Dan kan jij net zogoed morgen zeggen dat Nederland met 199 - 0 gewonnen heeft van Rusland. Je weet niet eens waar je het over hebt. En dan andere een beetje verbeteren.
En als je niet eens Opera kent, dat is dan wel erg...

Begrijp je nou wat ik bedoel? Of moet ik het nog effe in puntjes zetten?
Je weet niet waar je het over hebt, want je hebt niet gekeken hoe het in Opera zit met source.Je kan niet zeggen dat iemand anders wat anders bedoelt, want jij bent die gene niet.Je bent harstikke eigenwijs met stront in je ogen dat je niet wilt geloven wat ik zeg.Je hebt niet eens gelezen wat ik heb gezegt: - Als er een hidden field is kan je dat zo aanpassen, dit is geen beveiliging.
- In Opera doe je dit gewoon door rechts te klikken op een pagina, source aan te klikken en dan lekker gaan editten.
Ik heb nergens gezegt dat ik de achterliggende, serverside, de php code, whatever kan aanpassen, ik heb alleen gezegt dat ik de html kan aanpassen.
Duidelijk?
En schat, wees de volgende keer niet zo eigenwijs, dat ben ik wel.


15 jaar geleden
 
0 +1 -0 -1
go Karl go Karl go Karl

anyway leuk lesje hoe pas ik broncode aan
Jesper Diovo
Jesper Diovo
15 jaar geleden
 
0 +1 -0 -1
Opnieuw een mislukt paginanummering script. Al vond ik die van mij niet geheel tegenvallen. Wanneer krijgen we eens echt een topper te zien? Liquid voor alles, gemakkelijk aan te passen, etc. etc.? Eentje waarvoor mensen zoals Frank wel buigen?


15 jaar geleden
 
0 +1 -0 -1
Misschien voor zijn eigen systeem? http://www.phphulp.nl/php/scripts/1/1268/
Marvin S
Marvin S
15 jaar geleden
 
0 +1 -0 -1
Beste Karl,

Ik heb inderdaad geen opera gebruikt om jou verhaal te controleren. Opera heb ik ook nog nooit gebruikt dus ervaring met opera is er niet vanaf deze kant. Hierbij geef ik jou dus je gelijk en mezelf een minpunt omdat ik hier geen rekening mee gehouden heb met mijn antwoord (over opera heengelezen).

Het enige dat ik weet is dat ik geen reacties meer plaats bij jouw scripts. Jij plaats een script in de veronderstelling dat het perfect is terwijl het dat bij lange na niet is. Je gaat de aanval (hier bedoel ik niet die lange tegen mij) aan terwijl er vele mensen als reactie geven hoe je het beter kunt doen. Uit je antwoorden maak ik op dat je hier niets mee doet. Prima dan moet je je geweldige script hier niet posten want dan krijg je altijd commentaar (/tips). Als je dat niet kunt begrijpen moet je het gewoonweg niet posten en jezelf in de veronderstelling houden dat je een supermooi script hebt gemaakt die geen beveiliging nodig heeft.

dus nogmaals: ik bemoei me niet meer met dit script/topic, succes verder met scripten!
Karl Karl
Karl Karl
15 jaar geleden
 
0 +1 -0 -1
Marvin:
Het enige dat ik weet is dat ik geen reacties meer plaats bij jouw scripts. Jij plaats een script in de veronderstelling dat het perfect is terwijl het dat bij lange na niet is.

Dit is niet mijn script:
Quote:
Door Mathijs op 18.06.2008
- -
- -
15 jaar geleden
 
0 +1 -0 -1
Marvin:
dus nogmaals: ik bemoei me niet meer met dit script/topic, succes verder met scripten!


Jup, succes. Zul je nodig hebben :-)
The Ultimate
The Ultimate
15 jaar geleden
 
0 +1 -0 -1
Het sorteren op achternaam gaat trouwens ook niet helemaal lekker met de volgende achternamen:

van den Berg
van Meegen
van Estrick
Wiersma
Hornswaggle
Cobussen

Dit heeft overigens met de hoofdletters (wel/niet hoofdletter) te maken. Heeft iemand hier een oplossing voor, zodat er geen onderscheid wordt gemaakt tussen kleine en hoofdletters?

Bovendien lukt het ook niet om gegevens te wijzigen...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jesper Diovo
Jesper Diovo
15 jaar geleden
 
0 +1 -0 -1
@Bart: eerst alles naar strtolower() zetten, dan sorteren, dan ucfirst(), et voila :-).

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

Inhoudsopgave

  1. nextprevious-sorteren-muteren

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.