Clear de 'get' na klikken op hyperlink

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mathieu Posthumus

Mathieu Posthumus

06/03/2015 11:58:25
Quote Anchor link
Hey mensen,

Wanneer ik op een 'a' element klik stuur ik ze door naar de zelfde pagina waar ze de 'a' element hebben aangeklikt.
Wanneer ze zijn doorgevoerd naar diezelfde pagina en de GET is gevuld dan zal hij in de database wat update m.b.v een query, die leidt als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (!empty($_GET['editReq'])) {
  mysql_query("
    UPDATE formbbformtemplate
    SET formRequired = '"
.$_GET['editReq']."'
    WHERE formTemplateId = "
.$_GET['templateId']." AND formBuildingBlockId = ".$_GET['bbId']."
  "
) or die(__LINE__.": ".mysql_error());
}

?>


En mijn a element is gevuld met;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<td style="text-align: center;" class="<?=$class?>">
  <?=($vragen['formRequired'] == 'on' ? '<a><img style="cursor: pointer;" src="'.IMG.'/tick.png" title="Verplicht!"></a><a href="template_edit.php?templateId='.$templateId.'&bbId='.$vragen['formBuildingBlockId'].'&editReq=off" onclick="data.reset()"><img style="opacity: .25;" id="hoverEditReq" src="'.IMG.'/cross.png" title="Niet Verplicht!"></a>' : '<a href="template_edit.php?templateId='.$templateId.'&bbId='.$vragen['formBuildingBlockId'].'&editReq=on"><img style="opacity: .25;" src="'.IMG.'/tick.png" id="hoverEditReq" title="Verplicht!"></a><a><img style="cursor: pointer;" src="'.IMG.'/cross.png" title="Niet Verplicht!"></a>')?>
</td>


Maar wat ik dus nou wil is wanneer het is geupdate in de database dan moet de GET gecleard worden.

Hopelijk kunnen jullie me hiermee helpen.

Groet.

Toevoeging op 06/03/2015 13:06:09:

Heeft echt niemand een idee? Want ik heb gezocht op internet but no clear definitions has been found!
Gewijzigd op 06/03/2015 12:22:16 door Mathieu Posthumus
 
PHP hulp

PHP hulp

17/04/2024 00:30:04
 
Thomas van den Heuvel

Thomas van den Heuvel

06/03/2015 14:50:56
Quote Anchor link
Twee alternatieve oplossingen:
- scheid je acties; maak van "editReq" een op zichzelfstaande bewerking die losstaat van de rest van je code; dan kun je na afloop van die actie iemand direct doorsturen naar een andere pagina middels een header('Location: ') operatie

of misschien beter, omdat het toch een soort van aan/uit "toggle" lijkt:

- voer deze bewerking op de achtergrond uit middels een AJAX-operatie; je hoeft dan nergens naartoe te navigeren en dus ook niet erg ingewikkeld te doen, want ook bij deze oplossing is je AJAX-call een "geisoleerde, op zichzelfstaande actie"

Dit is nieuwe code die je aan het schrijven bent? En je gebruik nog steeds mysql_-functies? Foei!

Daarnaast: ik zie geen enkele escaping in je query :(
 
Mathieu Posthumus

Mathieu Posthumus

06/03/2015 15:41:49
Quote Anchor link
Thomas dit is de code van mijn stage baas waar ik in moet werken.
 
Thomas van den Heuvel

Thomas van den Heuvel

06/03/2015 15:54:41
Quote Anchor link
Dan heb je nog steeds een "meldplicht".

Stel dat dadelijk je site van voor en vanachter ge...hackt wordt dan kun je in ieder geval zeggen "Ik heb je gewaarschuwd".

Je wilt toch wel een beetje verantwoordelijkheid dragen voor je (eigen) werk?

Ik neem aan dat je je wel een beetje bewust bent van de gevaren van bovenstaande werkwijze? Ik zou bovenstaande code niet snel "live" zetten / in productie nemen eerlijk gezegd.

Je doet je baas er geen plezier mee dit soort dingen te "verzwijgen", ook al wordt 'ie mogelijk niet blij van de boodschap dat de code een (noodzakelijke) opfrisbeurt nodig heeft (om met zijn tijd mee te gaan).

Het kost waarschijnlijk meer werk om te herstellen van aanvallen van kwaadwillenden die moedwillig de boel proberen te vernielen. En daarbij heb je op dat moment nog een extra probleem namelijk vervuiling van je database... Of misschien is die op dat moment compleet onbruikbaar.
 



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.