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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.