accounts activeren

Status
Niet open voor verdere reacties.

dj technics

Gebruiker
Lid geworden
1 sep 2007
Berichten
367
he,

ik ben aan het werken aan een gesloten forum.
de bedoeling is dat wanneer er iemand zich registreerd zijn account inactief is (dit is niet het probleem want dit is momenteel al zo) en dat een van de beheerders de acount moet activeren vooraleer de gebruiker kan inloggen.

nu is de vraag hoe werk ik dit praktische uit.
in mijn db staat een kolom `active`. als die true is kan gij inloggen.
kan ik een formulier maken dat de beheerder kan zeggen die persoon is actief.
hieronder staat de huidige code.
PHP:
echo '<form action="activeren_db.php" method="post">';
        $i = 0;
            while( $f2Query = mysql_fetch_assoc($qQuery) ){
                if( $i == 0 ){
                    echo '<input type="checkbox" name="'.$fQuery['id'].'">'.$fQuery['Name'];
                    $i2++;
                } else {
                    echo '<br><input type="checkbox" name="'.$fQuery['id'].'">'.$fQuery['Name'];
                }
            }
        echo '<br><input type="submit" name="delete" value="verwijderen"> <input type="submit" name="accept" value="toelaten">
        </form>';
dit is praktisch onhaalbaar omdat ik de name van mijn checkbox in mijn volgende script niet kan achterhalen.
dit zou dus de id moeten zijn van de gebruiker die wordt geactiveerd.

ik kom er echt niet uit.

heel het systeem mag van mij anders zijn
maar ik kom er echt niet uit

bedankt voor jullie tijd

dj technics
 
Hi,
ik ga geen code aanleveren, want dat kunt u al zelf al zie ik. (In tegenstelling tot wat ik met PHP kan :( )
Ik ga even een gedachte hierover neerzetten:

kunt u niet een script voor een beheerder zó maken dat een lijst met niet-geactiveerden getoond wordt, voorzien van een checkbox. Aan de hand van de gemarkeerde checkboxen kan dan de activatie plaatsvinden.
Dit doen we dan natuurlijk in een FORM.

Als menselijke tussenkomst niet echt nodig is dan zou een e-mail gegenereerd kunnen worden waarmee door de geregistreerde zelf de activatie gedaan kan worden. De database zou dan wel een kolom moeten hebben waar een unieke code voor de registratie in kan opgenomen worden.
 
dit is zowat hetzelfde al wat ik in gedachte had.
maar de vraag in dit geval is eigenlijk, hoe kan ik aan het volgende script (dat alles in de database uitvoert) laten weten welke gebruikers hij moet wijzigen.
nogmaal geef je het id mee maar in dit geval kan dat niet aangezien de waarde van een chekbox enkel true of false is.

ik kom er echt niet uit
 
dit is zowat hetzelfde al wat ik in gedachte had.
maar de vraag in dit geval is eigenlijk, hoe kan ik aan het volgende script (dat alles in de database uitvoert) laten weten welke gebruikers hij moet wijzigen.
nogmaal geef je het id mee maar in dit geval kan dat niet aangezien de waarde van een chekbox enkel true of false is.

ik kom er echt niet uit

.. even in mijn geheugen graven. Doe het zonder checkboxen maar zet er buttons naast met 'afwijzen' of 'activeren'. Een algemene button wordt dan overbodig. In het aangeroepen script kan dan de bijbehorende waarde uit een HIDDEN CONTROL of de eerder uit de database opgehaalde waarde gebruikt worden. ($_POST) Zie ook: http://myphpform.com/php-form-tutorial.php

De variabele uit de request ($_POST) ga je dan substitueren in de SQL-query voor de database. Als u maar één script (activeren_db.php) gebruikt moet je bij het starten van het script wel uitzoeken of je alleen voor een goedkeuring of OOK voor een database-actie binnenkomt in het script.

Deze werkwijze verwerkt evaluaties per stuk, in tegenstelling tot een algemene commandbutton, waarvoor u een batch (stapel) - verwerking moet realiseren.

De goedkeuringsregel ziet er dan , globaal, zo uit:
[TEXT naam registrant1] [HIDDEN key voor registrant1](button goedkeuren voor registrant1)(button verwijderen voor registrant1)
[TEXT naam registrant2] [HIDDEN key voor registrant2](button goedkeuren voor registrant2)(button verwijderen voor registrant2)
(Overigens is er geen bezwaar om voor elke registrant een aparte FORM te maken.)
In het begin van het script moet er een IF opegenomen worden die kijkt of het script via een van de genoemde buttons is gestart, zo ja, dan moet de database gedaan worden.
 
Laatst bewerkt:
ik heb nu iets gelijkaardigs gemaakt en dit werkt best.

echo '<br>'.$fQuery['Name'].'<a href="http://djtechnics.no-ip.org:8080/forum/activeren_db.php?action=accept&id='.$fQuery['id'].'"><img src="http://djtechnics.no-ip.org:8080/ok.png" height="10px"></a><a href="http://djtechnics.no-ip.org:8080/forum/activeren_db.php?action=refuse&id='.$fQuery['id'].'"><img src="http://djtechnics.no-ip.org:8080/verwijder.png" height="10px"></a>';

desondanks ik geen fan ven van $_GET is dit toch het schoolvoorbeeld vanwaar het wel handig kan zijn.

P.S. bovenaan het script wordt wel eerst gecontrolleerd of de client die dit uitvoerd wel recht heeft om dit te doen. anders: gebruik NOOIT $_GET want dan zou iedereen instaat zijn dit uit te voeren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan