/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Bøvl med at sende variabler
Fra : J Christensen


Dato : 28-11-04 15:27

Jeg har problemer med at videresende variabler fra formularer, men jeg har
vist efterhånden også kørt rundt i det så længe, at jeg ikke længere ved,
hvad jeg gør....

Jeg har en tilmeldingsblanket med et nogle felter (tilmeld.php). Når der i
formularen trykkes på Send, videresendes oplysningerne til tilmeldCheck.php,
hvor brugeren præsenteres for de indtastede oplysninger og også får vist dem
i en formular igen med påbud om at ændre eventuelle forkerte indtastninger
eller bare acceptere.

Når der på tilmeldCheck.php er trykket på Accepter, går oplysningerne i en
database, bliver sendt som e-mail og bliver skrevet på en side
(tilmeldBekraeft.php), som skal udskrives og bruges som dokumentation for
tilmelding.

Alt det virkede helt fint, indtil jeg ville til at validere indtastningerne.
Der er i en if-struktur på tilmeld.php opstillet nogle kriterier for felter,
der SKAL udfyldes. Hvis de ikke mødes, får brugeren besked på at udfylde
felterne. Det virker fint, men så kommer problemet: når/hvis felterne ER
udfyldt, skal de gerne sendes videre til tilmeldCheck.php. Det har jeg gjort
med en formular fyldt med skjulte input-felter. Det sker der ingenting ved.
Hvis submit-feltet IKKE er skjult, og man klikker, virker det fint.

Men hvordan-er-det-lige, jeg får sendt de validerede variabler videre??

Her er et uddrag af den del af koden, der giver problemerne, med kun et par
af felterne:

if ($_POST['valider']) {
$fornavn = $_POST['fornavn'];
$efternavn = $_POST['efternavn'];

if (!$fornavn)
$fornavn_fejl = 'Der skal skrives et fornavn!';

if (!$efternavn)
$efternavn_fejl = 'Der skal skrives et efternavn!';

if ($fornavn && $efternavn) {

echo "<form action='tilmeldCheck.php' method='post'>";
echo "<INPUT TYPE='hidden' NAME='fornavn' value='$fornavn'>";
echo "<INPUT TYPE='hidden' NAME='efternavn' value='$efternavn'>";
echo "<INPUT TYPE='hidden' VALUE='Send' NAME='send'>";
echo "</form>";

exit;
}
}

(scriptet er venligst fundet på webcafe

Jeg har også prøvet med noget header("Location"...., men det kom variablerne
heller ikke videre i verden af.

På forhånd tak for hjælpen!

Mvh.
Janni Christensen



 
 
Tommy Ipsen (28-11-2004)
Kommentar
Fra : Tommy Ipsen


Dato : 28-11-04 20:21

> Jeg har også prøvet med noget header("Location"...., men det kom variablerne
> heller ikke videre i verden af.

Jeg vil foreslå dig, at lave validering og behandling af data i samme
script, da det er lidt bøvlet, at sende data videre på en "pæn" måde!

Derfor:

formular i form.php kalder formprocess.php som indeholder:

function ValidateForm() {
// return true hvis validerer
// return false ellers
}

function ProcessForm() {
// Behandle inputdata fra formular
}

function ShowForm() {
// generer+evt. output formular-html
}

if(ValidateForm()) {
ProcessForm();
}
else {
ShowForm();
}

Mvh Tommy

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste