Variabelen in adresbalk coderen/wegschrijven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bram

Bram

04/07/2006 14:36:00
Quote Anchor link
Dag mensen,

Ik ben nieuw hier en val maar meteen met de deur in huis. Ik had een vraagje omtrend PHP (joh?) nouja eigenlijk twee. :)

Vraag 1:
Kan ik mijn variabelen welke in mijn adresbalk staan coderen of wegschrijven zodat deze niet handmatig aan te passen zijn? hiermee bedoel ik bijvoorbeeld:

pagina.php?USER=1&PAGINA=3

Wanneer men hier bijvoorbeeld een 4 invuld bij pagina dan kan deze persoon zelf bepalen waar hij/zij uitkomt. Ik had iets gelezen over sessions maar ik dacht dat dat alleen voor loginsystemen en taalkeuzes was. Kunnen jullie mij hier mee helpen?


Vraag 2:
Stel (tis zo, maar stel) ik heb een invulformulier. Hiermee schrijf ik bijvoorbeeld een inleiding voor een vragenformulier in een database. Wanneer ik op de submitknop druk dan moet ik een vraag toevoegen.

Formulieren staan in een aparte tabel(formulierid, titel, inleiding) en vragen staan in een aparte tabel (vraagid, formulierid, vraag1, vraag2 etc etc).

Wanneer ik nu op de submit knop druk, dan komen de inleiding gegevens in de database. De database maakt een auto_increment voor formmulierid aan. Maar nou zou ik na de submit op dezelfde pagina of de nieuwe pagina meteen deze inleiding terug willen zien. Kortom meteen dat id weer weergeven.

Ik weet niet of dit kan, maar hij moet dus als het ware de laatst toegevoegde formulier weer laten zien, waarna ik aan dat id weer de vragen kan hangen door het zojuist aangemaakte id weg te schrijven in de tabel vragen (vraagid, formulierid, vraag1, vraag2 etc etc) onder formulierid.

Kan dit? Submit en meteen je submit bekijken VANUIT de database?


hnnnndus, lekker lange uitleg en vraag op deze warme dag. Ik hoop dat jullie me een beetje snappen, zo niet, sorry :) ik heb waarschijnlijk alles 3 keer uitgelegd :P

Alvast bedankt!
 
PHP hulp

PHP hulp

07/11/2024 17:30:32
 
Eris -

Eris -

04/07/2006 14:40:00
Quote Anchor link
1. Werken met sessie probleem opgelost. Get is niet veilig. Coderen heeft geen nut...
 
Snotty

snotty

04/07/2006 14:41:00
Quote Anchor link
Vraag 1:
Je kan nooit je adresbalk zover krijgen dat de gebruiker de gegevens niet zelf kan veranderen. Je kan eventueel wel op de pagina's zelf een controle uitvoeren of deze wel correct is aangeroepen.

Je haalt sessies aan en zegt dat deze enkel zijn voor loginsystemen en voor taalkeuzes. Dit is niet zo, een sessie gebruik je om de gegevens in te steken die je zelf wilt. Alleen wordt een sessie bijna enkel voor dat soort zaken gebruikt. Als je wilt, kan je daar altijd je pagina-gegevens insteken en dan bovenaan de pagina eruit halen.

Vraag 2:
Ik versta niet 100% wat je bedoelt, maar via mysql_insert_id() krijg je het ID mee van de laatste query. (Voor meer info, zie de manual).


edit: voor vraag 1 was eris me voor :p
Gewijzigd op 01/01/1970 01:00:00 door snotty
 
Bram

Bram

04/07/2006 15:18:00
Quote Anchor link
Dus als ik het goed begrijp dan plaatste je op pagina 1 de gegevens in een sessie. Wanneer je dan op pagina 2 komt dan haalt de pagina de gegevens uit de sessie en plaatst deze in de balk? Zodat een knop niet de gegevens toevoegd aan de balk maar de sessie zelf. Dus als je zelf iets veranderd en daarna de pagina laad dan is het toch de sessie die de informatie verwerkt? Zoiets?

En over vraag 2. Het gaat er om dat je zegmaar iets submit aan een database. De database maakt daar een autoincrement voor aan. En wanneer je dus na het drukken op die knop weer op de pagina uitkomt dan krijg je meteen het resultaat weer te zien. Van de id die de database net heeft ingevuld. Kortom je krijgt een soort resume van de nieuwe gegevens die je net hebt ingevoerd, en kunt dan verder om de overige informatie in te vullen. Zonder eerste terug te moeten naar een database overzicht.
 
Snotty

snotty

04/07/2006 15:36:00
Quote Anchor link
Vraag 1:
Als je op pagina 1 komt, komt in je sessie bijvoorbeeld '1'. Als je naar pagina 2 gaat, dan zet je pagina '2' in je sessie. Je moet de gegevens dus niet in de adresbalk gaan plaatsen.

Vraag 2:
Je zet in je formulier gewoon;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$PHP_SELF;?>

zodat de pagina zelf wordt aangeroepen. Je verwerkt je gegevens in de database zoals je nu al doet en meteen nadat je dus alles in de database hebt gestoken (na je query), doe je mysql_insert_id(). Eens je dit ID hebt, is het niet moeilijk meer om dan de gegevens opnieuw op te vragen.

//ik hoop dat het wat duidelijk is?
Gewijzigd op 01/01/1970 01:00:00 door snotty
 
Bart Tuma

Bart Tuma

04/07/2006 15:39:00
Quote Anchor link
even anno 2006:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$_SEVER
['PHP_SELF'];

?>
 
Bo az

Bo az

04/07/2006 15:42:00
Quote Anchor link
$_SERVER['PHP_SELF']; is niet zonder meer veilig, om naar dezelfde pagina te verwijzen werkt meestal enkel een # ook.
 
Bram

Bram

04/07/2006 15:59:00
Quote Anchor link
Nou het gaat dus niet zozeer om het verwijzen naar dezelfde pagina maar naar de content die je op die pagina in de DB hebt ingevoerd.

Je kunt bijvoorbeeld ook op een 2de pagina uitkomen. Als daar maar de DB gegevens van het zojuist ingevulde formulier geprint komen te staan. Als dat met PHP_SELF kan dan zal ik dat zeker even uitproberen :)
 
Snotty

snotty

04/07/2006 16:08:00
Quote Anchor link
Zoals ik al zei: mysql_insert_id() is een mooie functie :). Zet het id dan ook in je sessie bijvoorbeeld of zet het id in je adresbalk zodat je gewoon op de volgende pagina SELECT * FROM tbl WHERE id='$id' kan doen. (In $id steek je dan de variabele uit je sessie/je adresbalk).
 



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.