Avatar billede MadsDue Nybegynder
22. maj 2011 - 12:16 Der er 8 kommentarer og
1 løsning

Hjælp til PHP

Hej

Jeg er igang med at lave en "opret bruger menu" på min hjemmeside.

Jeg har lavet det sådan, så bruger skal igennem 3 step. for at kunne blive oprettet.

Først step skal de give:

  Navn

  email.

De info. jeg for der, skal jeg videre før til step to.
Det gør jeg så med følgende:

  $navn = $_REQUEST["fornavn"];

Det er ikke noget problem.

Men så skal jeg have din info fra step 1 + de nye fra step 2 . til step 3.

Men på step 3. kan jeg ikke hente de infomationer som jeg kan på step 2 fra step 1.

Så det jeg gerne vil kunne er, at tage den værdi jeg for fra brugen på den først side. videre igennem ændre side, uden at miste værdien($navn).

step 1 = en html-siden step=en ny html side. osv.
Avatar billede emfr08ab Nybegynder
22. maj 2011 - 12:27 #1
Du kan jo gemme data fra step 1 i en session.
Avatar billede MadsDue Nybegynder
22. maj 2011 - 13:09 #2
okay.

Det har jeg ingen viden om. Har du et link? måske
Avatar billede emfr08ab Nybegynder
22. maj 2011 - 13:34 #3
Ja, men hvordan havde du tænkt dig at lave login-systemet. Her bruger man jo også normalt sessions eller cookies.

http://www.w3schools.com/php/php_sessions.asp

Det er sådan set ganske simpelt.

På alle de sider, du benytter sessions, skal du have dette i toppen af din fil:

<?php session_start(); ?>

I dit step 2 gemmer du så data i sessionvariabler. Sessions er variabler, som der bliver gemt, så de kan benyttes på alle sider.

Sådan gemmer du i en session:

$_SESSION['fornavn']= $_REQUEST['fornavn'];

Du har så gemt fornavn, og kan bruge den i step 3.

Når du skal bruge den, skriver du bare $_SESSION['fornavn']. Husk igen at have session_start i toppen af filen.
Avatar billede MadsDue Nybegynder
22. maj 2011 - 14:23 #4
okay. <?php session_start(); ?>

skal det stå øverst i body eller head? eller?
Avatar billede MadsDue Nybegynder
22. maj 2011 - 14:29 #5
Den skriver følgende:


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Sider\Opret_brugere\opret_bruger2.php:91) in C:\xampp\htdocs\Sider\Opret_brugere\opret_bruger2.php on line 91

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Sider\Opret_brugere\opret_bruger2.php:91) in C:\xampp\htdocs\Sider\Opret_brugere\opret_bruger2.php on line 91
Avatar billede moddi100 Seniormester
22. maj 2011 - 14:32 #6
Problemet er, at du på side 1 sender data til side 2. De data fra side 1, gemmer du jo så slet ikke. Derimod gemmer du kun data fra side 2.

Måden jeg ville lave det på, var, at du på side 2 opretter usynlige inputfelter og gemmer værdierne deri.

I nedenstående eksempel skal du lægge mærke til php-blokkene på side 2 og side 3. De gennemløber alt data, og gemmer det til næste side.

Side 1:
...
<form action='side2.php' method='post'>
Fornavn: <input type='text' name='fornavn' />
Efternavn: <input type='text' name='efternavn' />
<input type='submit' value='Næste' />
</form>
...


Side 2:
...
<form action='side3.php' method='post'>
<?php
foreach($_POST as $key => $value)
    echo "<input type='hidden' name='" . $key . "' value='" . $value . "' />";
?>
Email: <input type='text' name='email' />
<input type='submit' value='Næste' />
</form>
...


Side 3:
...
<form action='opret.php' method='post'>
<?php
foreach($_POST as $key => $value)
    echo "<input type='hidden' name='" . $key . "' value='" . $value . "' />";
?>
Telefon: <input type='text' name='telefon' />
<input type='submit' value='Opret' />
</form>
...
Avatar billede MadsDue Nybegynder
22. maj 2011 - 14:41 #7
lokay, så ved at indsætte:

<?php
foreach($_POST as $key => $value)
    echo "<input type='hidden' name='" . $key . "' value='" . $value . "' />";
?>

Skulle jeg så kunne hente alle informationer på side 4?
Avatar billede emfr08ab Nybegynder
22. maj 2011 - 14:54 #8
okay. <?php session_start(); ?>

skal det stå øverst i body eller head? eller?


Det skal stå helt øverst. Altså det første i filen. Det er over head.

Måden jeg ville lave det på, var, at du på side 2 opretter usynlige inputfelter og gemmer værdierne deri.


Hvad skulle fordelen ved det være fremfor sessions? Session er for det første simplere, og derudover bliver det meget nemmere senere. Hvis han på et tidspunkt skal have et trin mere på, så kan han benytte samme session i stedet for at endnu engang at lave hidden forms.
Avatar billede MadsDue Nybegynder
22. maj 2011 - 15:00 #9
Så lykkes det tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester