09. juni 2003 - 22:13Der er
23 kommentarer og 2 løsninger
Noget hjælp til min side functions.php
Først og fremmest så er jeg total nybegynder i php!!!
Jeg har fået et "lånt" login-system til at virke på min hjemmeside (http://lerduen.h4f.dk/simpleauth/join.php)og det er jo bare kanon eftersom det tog en krig at finde ud af.
Login-systemet er så smart at den gennemløber en masse checks med IF. F.eks. kontrolleres at brugernavnet er mere end 4 bogstaver langt og om felterne overhovedet er fyldt ud osv. Checksne laves på siden functions.php som er INCLUDED i login-siden og returnere derfor også fejlmeldinger på samme side. Da fejlmeddelserne popper op i øverste venstre hjørne betyder det desværre at resten af min sideopsætning rykker sig hvilet jo er temmelig amatør-agtigt at se på.
Er der nogen der ved hvordan man fix'er problemet så fejlmeddelserne popper op inden for de røde rammer (se siden)?
$status=0; if (!$brugernavn) { $fejl1 = "Brugernavn skal udfyldes før du kan blive oprettet<br>"; $status++; } elseif (strlen($brugernavn)<4) { $fejl1 = "Brugernavn er ugyldig, minimumslængden er 4 tegn<br>"; $status++; }
if (!$kodeord) { $fejl2 = "Kodeord skal udfyldes før du kan blive oprettet<br>"; $status++; } elseif (strlen($kodeord)<4) { $fejl2 = "Kodeord er ugyldig, minimumslængden er 4 tegn<br>"; $status++; }
if (!$gentag) { $fejl2 = "Gentag kodeord skal udfyldes før du kan blive oprettet<br>"; $status++; } elseif ($gentag!=$kodeord) { $fejl3 = "Dine passwords var ikke identiske<br>"; }
Jeg er lige kommet på en ide til hvordan man kan omgås problemet. Hvis meddelsen popper op på en lille advarsels-side ville det være perfekt. Så bliver der jo ikke rykket ved noget når der advares og brugeren skal bare lukke vinduet igen. Men hvordan laver man sådan et lille pop-up vindue? Den må gerne komme frem lige som de belastende reklamer der nogen gange dukker op på siderne ;-)
lerduen -> Hvilket lyder som en dårlig ide, da nogle har popupkillers og vil derfor ikke få beskeden, jeg tilbyder stadig at gøre det for dig hvis du sender scriptet til mig, på nævnte mail.
he he ohmish... Det som måske er såre simplet for dig er temmelig hårdkogt for mig :-(
Lad mig lige stille nogle indledende spørgsmål. Du vil altså flytte checks'ne fra functions.php til join.php og kontrollere dem med det samme for at få meddelserne til at dukke op lad os sige oppe over login-boksen?
Det jeg har at arbejde med i functions.php ser sådan her ud ...
function doCSS() { /* CSS Output: This function simply outputs some cascading style sheet data for markup by the user's browser. */ ?> <style type="text/css"> body{font-family: Arial, Helvetica; font-size: 10pt} h1{font-size: 12pt} </style> <?php } // end func doCSS()
# function validates HTML form field data passed to it: function field_validator($field_descr, $field_data, $field_type, $min_length="", $max_length="", $field_required=1) { /* Field validator: This is a handy function for validating the data passed to us from a user's <form> fields. Using this function we can check a certain type of data was passed to us (email, digit, number, etc) and that the data was of a certain length. */ # array for storing error messages global $messages;
# first, if no data and field is not required, just return now: if(!$field_data && !$field_required){ return; }
# initialize a flag variable - used to flag whether data is valid or not $field_ok=false;
# this is the regexp for email validation: $email_regexp="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|"; $email_regexp.="(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
# a hash array of "types of data" pointing to "regexps" used to validate the data: $data_types=array( "email"=>$email_regexp, "digit"=>"^[0-9]$", "number"=>"^[0-9]+$", "alpha"=>"^[a-zA-Z]+$", "alpha_space"=>"^[a-zA-Z ]+$", "alphanumeric"=>"^[a-zA-Z0-9]+$", "alphanumeric_space"=>"^[a-zA-Z0-9 ]+$", "string"=>"" );
# check for required fields if ($field_required && empty($field_data)) { $messages[] = "$field_descr skal udfyldes før du kan blive oprettet"; return; }
# if field type is a string, no need to check regexp: if ($field_type == "string") { $field_ok = true; } else { # Check the field data against the regexp pattern: $field_ok = ereg($data_types[$field_type], $field_data); }
# if field data is bad, add message: if (!$field_ok) { $messages[] = "Vær venlig at indtaste et gyldigt $field_descr."; return; }
# field data min length checking: if ($field_ok && $min_length) { if (strlen($field_data) < $min_length) { $messages[] = "$field_descr er ugyldig, minimumslængden er $min_length tegn."; return; } }
# field data max length checking: if ($field_ok && $max_length) { if (strlen($field_data) > $max_length) { $messages[] = "$field_descr er ugyldig, maximumlængden er $max_length tegn."; return; } } }
Hør hov, det ser sgu da ud til at join.php netop er kodet som du der foreslår, men at jeg bare ikke helt har været med på hvad der var galt (jf. at jeg er TOTAL nybegynder) . Jeg nusser lige lidt rundt med tingene og vende evt. tilbage med point
Jeg er sgu stadig imponeret over at Ohmish kunne gætte løsningen uden at se koden.
og jeg er også imponeret over ahv's promte svar efter koden blev sendt.
I er sgu begge nogle dygtige programmører (efter mine lave standarder)
Håber ikke der er nogen sure miner :-)
Synes godt om
Ny brugerNybegynder
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.