Doorsturen naar andere view op commando

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Klaas Nat

Klaas Nat

19/06/2019 14:43:27
Quote Anchor link
Hi,
Hoe zou ik mensen door kunnen sturen naar een andere pagina op commando doormiddel van alleen PHP. Voorbeeld:

User logt in -> in queue wachten op goedkeuring -> admin says yes = door naar andere pagina, no = opnieuw invullen

Iemand?
thx
 
PHP hulp

PHP hulp

29/03/2024 11:19:56
 
- Ariën  -
Beheerder

- Ariën -

19/06/2019 14:52:12
Quote Anchor link
Moet er real-time worden gecontroleerd? Dan is een setTimeout of setInterval in combinatie met een AJAX-request die de toegang controleert voldoende.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2019 17:02:16
Quote Anchor link
Wie regelt "admin says yes", is dit echt een persoon aan de andere kant van de lijn die binnen een bepaalde tijdslimiet een reactie moet geven, of een geautomatiseerd proces?

Hoe ziet deze queue er precies uit?

Los hiervan, dit is niet echt een normale gang van zaken als dit een website betreft. Deze nemen niet echt vaak on-the-fly handmatige beslissingen, deze zijn vaak al voorgeschreven. Toegepast op het bovenstaande voorbeeld: op het moment dat iemand in probeert te loggen dan bestaat deze persoon in de administratie van het systeem en kan deze toegang krijgen, of niet. Dat wordt niet dan en daar nog eventjes bepaald, de informatie wordt opgezocht, en als deze er is, en klopt, dan geef je iemand toegang, anders niet.

Wat ik eerdere zou verwachten is dat je het bovenstaande zou splitsen in registratie en aanmelding, zodat beheerders ook op een aparte tijd en plaats iemand kunnen goedkeuren zodat deze persoon kan inloggen.

Waar je misschien naar op zoek was is een zogenaamde Location header. Dit commando instrueert de browser om na afloop van het laden van de pagina een andere pagina te laden. Dit "na afloop van het laden van de pagina" is nogal belangrijk. De code van het script en alle output gaat gewoon verder na het aanroepen van de header(), deze transporteert je niet direct automagisch naar de nieuwe locatie (interne link) tenzij je alle verdere executie van code en output stopt, dit doe je door direct na de Location header een exit-statement toe te voegen. In de bovenstaande link kun je lezen hoe dat verder in zijn werk gaat zodat je dit nooit meer verkeerd doet, met alle mogelijke veiligheidsimplicaties van dien.

Overigens, de actie voor het verwerken van het inlogformulier zou je ook in een apart codesegment moeten regelen. Dus ook als een login mislukt, ook dan zul je teruggestuurd moeten worden naar het inlogformulier (of een pagina met een foutmelding) middels zo'n Location header.
Gewijzigd op 19/06/2019 17:04:36 door Thomas van den Heuvel
 
Klaas Nat

Klaas Nat

19/06/2019 19:58:10
Quote Anchor link
Ik zal het wat beter proberen uit te leggen.

Als iemand de login form submit, wil ik real time de actie kunnen bepalen. Dus doorsturen naar pagina1 of pagina2 vanuit een admin panel. Met enkel gebruik van Sql en php
 
- Ariën  -
Beheerder

- Ariën -

19/06/2019 20:27:03
Quote Anchor link
Dan zul je dus ook AJAX en dus JavaScript moeten gebruiken.
 
Klaas Nat

Klaas Nat

19/06/2019 20:37:17
Quote Anchor link
Zou je me op weg kunnen helpen?
 
- Ariën  -
Beheerder

- Ariën -

19/06/2019 21:20:53
Quote Anchor link
Heb je al een inschrijfformulier? En ben je bekend met AJAX?
ook ben ik best wel benieuwd waarvoor je dit wilt bouwen?
Gewijzigd op 19/06/2019 21:29:38 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

19/06/2019 21:39:26
Quote Anchor link
Het ligt er een beetje aan hoe "real-time" die goedkeuring is. Zit daar echt iemand de hele dag (24 uur) met z'n vinger boven de JA/NEE knop, of kijkt deze persoon eens per uur in z'n mail / gaat ie ook wel eens lunchen / naar de plee / enz? In dat laatste geval zou ik gewoon een mailtje sturen zodra er wel/geen toestemming is verleend met daarin een link om in te loggen / een link om om het opnieuw te proberen (hoezo? als je de 1e keer afgekeurd wordt, toch ook de 2e keer - of is het meer een loterij?).

Als je geen zin hebt om je in AJAX te verdiepen kun je ook heel lomp de pagina met een <meta http-equiv="refresh" content="60"> elke minuut (60 seconden) verversen en dan aan de PHP kant steeds controleren of er reeds toestemming is verleend (nog niet = zelfde pagina nogmaals tonen, weer na een minuut verversen, enz). Maar onder water via AJAX pollen is wel wat netter.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2019 22:51:40
Quote Anchor link
Klaas Nat op 19/06/2019 19:58:10:
Als iemand de login form submit, wil ik real time de actie kunnen bepalen. Dus doorsturen naar pagina1 of pagina2 vanuit een admin panel. Met enkel gebruik van Sql en php

Een betere vraag is wellicht, waarom zou je dit in hemelsnaam willen doen? Dit klinkt allemaal nogal niet-deterministisch.

Met andere woorden, zou je hier wat meer over kunnen vertellen, bijvoorbeeld een concrete case ofzo, waar uit blijkt dat dat voor dat geval een zinnige aanpak is. Want het klinkt nogal apart allemaal.

Om maar te zwijgen van favoritisme, corrumpeerbaarheid van dit systeem et cetera.
Gewijzigd op 19/06/2019 23:45:57 door Thomas van den Heuvel
 
Jan R

Jan R

20/06/2019 07:03:23
Quote Anchor link
Volgens mij bedoeld ts gewoon dat na de inlog de gebruiker liefst bij een correcte inlog, hij gewoon doorgestuurd wordt naar een pagina welke de gebruiker als standaard ingesteld heeft.
op chess.com kan je bijvoorbeeld kiezen tussen nieuws, mijn partijen en nog een paar. De gebruiker stelt dit zelf in via zijn profiel.

dan moet je per gebruiker de pagina in een database opslaan en dan weergeven via header, location

Op mijn eigen site kan de iedereen, dus ook niet leden, zijn voorkeur opslaan. dit gebeurd met een koekje.
https://www.janr.be/sc_post-gent/kiesstart.php.


Jan
Gewijzigd op 20/06/2019 07:17:27 door Jan R
 
Thomas van den Heuvel

Thomas van den Heuvel

20/06/2019 15:39:28
Quote Anchor link
Om in eerste instantie te kunnen weten of iemand "op goedkeuring wacht", hoe gaat dat in zijn werk? Hierbij zou je misschien van push notifications gebruik kunnen maken.
 



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.