Jeg har en tjekker på når man skal til at oprette en bruger, og hvis eksempelvis brugernavnet er optaget sender jeg en header location ting, eks: header("Location: opret.php?error=bruger"); , men så alt det man har skrevet er blevet slettet fra inputsne,
Er der en løsning så de kan blive ståene hvis man laver fejl i indtastningen?
foreach($_POST as $key => $value) { $_SESSION["posts"][$key] = strip_slashes($value); }
// så laver du dine tjek. Og er det hele ok sletter du session igen. unset($_SESSION["posts"]);
?>
Hvis det ikke er ok, og brugeren sendes tilbage, kan du tjekke om f.eks. $_SESSION["posts"]["brugernavn"] er sat til feltet "brugernavn", og så evt. vise dens værdi.
<table cellspacing="0" cellpadding="2" style="width: 100%;"> <tr> <td style="width: 100%; background: #BAFF78"> <b>Opret ny bruger</b> </td> </tr> <tr> <td style="width: 100%;"> For at oprette en bruger, skal du udfylde de få felter under dig.<br /> Vi anbefaler du er <b>12</b> år eller ældre for at oprette en profil, da der kan forkomme stødende materiale på siden<br /><br /> </td> </tr> </table>
<?php if($_GET["action"] == "usertaken") { print "<b>Brugernavnet er optaget. Vælg venligst et nyt</b><br><br>"; } elseif($_GET["action"] == "wronguser") { print "<b>Brugernavnet er ikke gyldigt.<br /> Brugernavnet skal være mellem 2-15 bogstaver/tegn.<br /> Må kun indeholde bogstaver fra A-Z, tal fra 0-9 og disse tegn -_. i mellem 2 ord.</b><br /><br />"; } elseif($_GET["action"] == "nameempty") { print "<b>Du mangler at udfylde dit navn mellem 2 og 20 bogstaver.</b><br><br>"; } elseif($_GET["action"] == "efterempty") { print "<b>Du mangler at udfylde dit efternavn</b><br><br>"; } elseif($_GET["action"] == "emailempty") { print "<b>Du mangler at udfylde din email adresse</b><br><br>"; } elseif($_GET["action"] == "wrongmail") { print "<b>Den E-mail adresse du indtastet er ikke gyldig</b><br><br>"; } elseif($_GET["action"] == "userempty") { print "<b>Du mangler at udfylde et brugernavn</b><br><br>"; } elseif($_GET["action"] == "passempty") { print "<b>Passwordet er ikke gyldigt.<br /> Passwordet skal være mellem 4-20 bogstaver/tegn.<br /> Må kun indeholde bogstaver fra A-Z, tal fra 0-9..</b><br><br>"; } elseif($_GET["action"] == "passdontmatch") { print "<b>Dine password's matcher ikke</b><br><br>"; } elseif($_GET["action"] == "dayempty") { print "<b>Du mangler at udfylde hvilken dag du blev født</b><br><br>"; } elseif($_GET["action"] == "monthempty") { print "<b>Du mangler at udfylde hvilken måned du blev født i</b><br><br>"; } elseif($_GET["action"] == "yearempty") { print "<b>Du mangler at udfylde hvilket årstal du blev født i</b><br><br>"; } elseif($_GET["action"] == "konempty") { print "<b>Du mangler at udfylde hvilket køn du er</b><br><br>"; } elseif($_GET["action"] == "sucess") { print "<b><font color=green>Tillykke $_POST[brugernavn], du er nu medlem :)</font></b><br><br>"; } ?>
Mangler du ikke at indlæse værdierne fra din $_POST's? Som jeg ser det mangler du at kalde funktionen feltvalue(). Den skal jo kaldes når der er submittet. Ellers kan tingene ikke blive gemt i første omgang.
Og ved evt. fejl skal session så lige slettes: :O)
if(preg_match('/\\d/', $_SESSION["posts"]["husk"])) { //Værdien indeholdet et tal, det må den ikke... unset($_SESSION["posts"]["husk"]); header("location: 661592.php"); exit(); }
Sidder lige og prøver lidt af her, men for s.... da, hvad er der galt her? Kan ikke få den til at vise "selected" for born_day, selvom session born_day har $value ???
<?php session_start();
function feltvalue($var, $value="", $valuetext="checked") { $output = ""; if(isset($_SESSION["posts"][$var])) {
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.