Avatar billede lerduen Nybegynder
09. juni 2003 - 22:13 Der 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)?
Avatar billede lerduen Nybegynder
09. juni 2003 - 22:14 #1
Linket hedder selvfølgelig http://lerduen.h4f.dk/simpleauth/join.php !!!
Avatar billede ahv Nybegynder
09. juni 2003 - 22:15 #2
Jeg vil hvertfald gerne se på det, du kan sende scriptet til mig på ->
alexander_hv@hotmail.com
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:17 #3
i din include-fil:

if (noget) {

$fejl = "hovsa.. bla bla"; }


og på selve siden (et sted mellem de røde bjælker):

if ($fejl) { echo $fejl; }



du burde lave en tabel istedet for at bruge <br> til mellemrum-justeringen
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:18 #4
:)
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:19 #5
hov.. du HAR brugt en tabel, bare på en lidt suspekt måde. jeg troede det var <br> da jeg omringede hele teksten med musen.
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:27 #6
behandlingen af formen kunne være:

if ($submit) {

$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>"; }

if ($status>0) { $fejl = $fejl1.$fejl2.$fejl3; } else { $fejl=""; }
}
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:27 #7
$fejl3 mangler lige en $status++; til sidst.
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:30 #8
og så vil jeg råde dig til at tilføje noget i stil med:

elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$brugernavn)) { $fejl1="ugyldig(e) tegn i brugernavnet<br>"; $status++; }
Avatar billede lerduen Nybegynder
09. juni 2003 - 22:35 #9
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 ;-)
Avatar billede ahv Nybegynder
09. juni 2003 - 22:42 #10
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.
Avatar billede ohmish Nybegynder
09. juni 2003 - 22:51 #11
har du prøvet min løsning? det er såre simpelt..
Avatar billede lerduen Nybegynder
09. juni 2003 - 22:52 #12
ahv koden er nu sendt til dig :-)
Avatar billede lerduen Nybegynder
09. juni 2003 - 22:55 #13
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?
Avatar billede lerduen Nybegynder
09. juni 2003 - 22:58 #14
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;
        }
    }
}
Avatar billede ahv Nybegynder
09. juni 2003 - 22:58 #15
Jeg vender tilbage så snart jeg hr set på det, har ikke modatget mailen endnu.
Avatar billede ahv Nybegynder
09. juni 2003 - 23:03 #16
lerduen >> Sikker på du sendte til ->
alexander_hv@hotmail.com
har nemlig ikke modtaget scriptet endnu.
Avatar billede lerduen Nybegynder
09. juni 2003 - 23:03 #17
>>> Ohmish

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
Avatar billede lerduen Nybegynder
09. juni 2003 - 23:05 #18
ahv... min fejl :-( Den lange tekst var åbenbart ikke så villig til at forlade udbakken :-(

Sorry nu skulle den være der :-)
Avatar billede ahv Nybegynder
09. juni 2003 - 23:08 #19
Jeg har modtaget, det ser blot ud til at du skal flytte:

<?php

//Check if $message is set, and output it if it is:

if(!empty($messages)){

            displayErrors($messages);

}

?>

som lægger i join.php, alle de linier flytter du så dertil hvor du vil have de,
Avatar billede ahv Nybegynder
09. juni 2003 - 23:10 #20
Så hvis vi nu tager hele tabellen på join.php (Laaang post) Jeg har indsat php lininer det rigtig sted nu skulle jeg mene:




<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="AutoNumber1">

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="75%" bgcolor="#CC0000" colspan="3" align="center">

    <font face="Impact" size="5" color="#FFFFFF">Opret bruger</font><p>&nbsp;</td>

  </tr>

  <tr>



  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">
    <?php

    //Check if $message is set, and output it if it is:

    if(!empty($messages)){
        displayErrors($messages);
    }

?>

                        <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">

                        <table>

                        <tr><td>Brugernavn:</td><td><input type="text" name="login" value="<?php print $_POST["login"] ?>"



                        maxlength="15"></td></tr>

                        <tr><td>Kodeord:</td><td><input type="password" name="password" value="" maxlength="15"></td></tr>

                        <tr><td>Gentag kodeord:</td><td><input type="password" name="password2" value="" maxlength="15"></td></tr>

                        <tr><td>&nbsp;</td><td><input name="submit" type="submit" value="Opret"></td></tr>

                        <tr><td>&nbsp;</td><td><input type="reset" name="reset" value="Slet"></td></tr>

                        </table>

                        </form>

    <p>&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    <p align="center">&nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

    <td width="25%" bgcolor="#FFFFFF">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    &nbsp;</td>

    <td width="75%" bgcolor="#CC0000" colspan="3">

    &nbsp;</td>

  </tr>

  <tr>

    <td width="25%">

    &nbsp;</td>

    <td width="75%" bgcolor="#CC0000" colspan="3">

    <p align="center">&nbsp;</td>

  </tr>

</table>
Avatar billede lerduen Nybegynder
09. juni 2003 - 23:12 #21
Det var satans! Du havde sgu ret... meget logisk egentligt når nu jeg ser på det med oplyste øjne :-)

Takker for hjælpen
Avatar billede ahv Nybegynder
09. juni 2003 - 23:14 #22
Nu bliver jeg forvirret, havde jeg ret eller var det ohmish?
Avatar billede ahv Nybegynder
09. juni 2003 - 23:17 #23
Skulle den næsten ikke mindst have været lige over? Efter som jeg kom med løsningen, og allerede helt fra start tilbød min hjælp, men skidt.
Avatar billede lerduen Nybegynder
09. juni 2003 - 23:18 #24
jah, i har jo begge fuldstændig ret! Ohmish kom først men det var muligvis kun fordi koden blev sendt så sent.

Jeg har delt point ud en anelse skævt, men håber at i begge føler jeg retfærdigt behandlet :-)

Takker MANGE gange for hjælpen
Avatar billede lerduen Nybegynder
09. juni 2003 - 23:22 #25
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 :-)
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



IT-JOB

Teknika - Copenhagen College of Technology Management and Marine Engineering

It-supporter

Netcompany A/S

IT Manager

NAVTILUS SOFTWARE PARTNERSELSKAB

Microsoft Business Central Forretningskonsulent