Avatar billede prop46 Nybegynder
02. juli 2003 - 15:02 Der er 104 kommentarer og
1 løsning

brugerlogin - støttepædagog

Jeg ved dette spørgsmål har været oppe og vende flere gange, men jeg er IGANG med at lærer php og synes ikke at støde på noget jeg lige står og kan bruge med min nuværende viden.

Er der en derude der vil guide mig igennem (det er naturligvis mig der skal gøre arbejdet) kodningen af et brugersystem hvor der kan oprettes brugere fra hjemmesiden og hver bruger har deres profilsiden som de kan redigerer?

Jeg bruger mysql og foreløbigt kan jeg ikke engang få den til at tjekke om burgernavnet eksisterer!

Er det muligt at få denne hjælp eller skal jeg henvende mig et andet sted!? Skal der flere point på bordet?

På forhånd mange tak, prop46
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:02 #1
Her er mit foreløbige script:

<?php

require("mysql-funktioner.php");

function tjek_brugernavn($brugernavn) {

    $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";

    aabn_forbindelse_og_vaelgdb();
    $result = mysql_query($query);
    luk_forbindelse();

    if(!mysql_num_rows($result)) {
        echo ("Jaaaa");
        break;
    }else {
        echo ("buhhh");
        break;
    }
}

?>

<table width="496" height="100%" cellpadding="0" cellspacing="0" class="baggrund">
    <tr>
        <td height="100%" align="center" valign="middle">
            <table cellpadding="30" cellspacing="0" class="skriv">
                <tr>
                    <td height="100%" align="center" valign="middle">
                        <form action="" method="post">
                            <table cellpadding="0" cellspacing="0">
                                <tr>
                                    <td align="center">
                                        <span class="p3">Skriv dit ønskede brugernavn<br><br>
                                        <input type="text" name="brugernavn" size="20"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center">
                                        <input type="submit" value="TJEK" class="submit">
                                    </td>
                                </tr>
                            </table>
                        </form>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede ohmish Nybegynder
02. juli 2003 - 15:10 #2
første ting:

if(mysql_num_rows($result)>0) {
        echo ("buuuuh, navnet er taget");
        break;
    }else {
        echo ("Jæs sir!");
        break;
    }
Avatar billede ohmish Nybegynder
02. juli 2003 - 15:12 #3
og så skal du nok bytte om på de her:

    $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";

    aabn_forbindelse_og_vaelgdb();
Avatar billede ohmish Nybegynder
02. juli 2003 - 15:15 #4
og en extrating.. det er altid godt at validere et brugernavn så folk f.eks ikke bruger tegn som '\/"<?php osv. i navnet:

if (!eregi("^[ a-zæøå0-9_@,\.-]+$",$brugernavn)) { echo "ugyldig(e) tegn i brugernavnet"; }
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:23 #5
http://www.ungernesside.dk/?side=bruger

... der sker bare ligesom ikke noget !?
Avatar billede avminarm Juniormester
02. juli 2003 - 15:30 #6
hvis du er igang med at lære skulle du kigge nærme på http://www.showsource.dk/artikler/vis_artikel.php?id=1042998056&sh=b41f66f53224373925245250a288f60c - det er sukos's loginscript med kommentarer - rigtig godt hvis man er begynder
Avatar billede avminarm Juniormester
02. juli 2003 - 15:32 #7
du mangler action i <form action="" method="post"> ret til <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
Avatar billede tipsen Nybegynder
02. juli 2003 - 15:34 #8
Hvis du vil læse to ganske gode tutorials om emnet, kan jeg anbefale:

http://www.devshed.com/Server_Side/PHP/TimeIsMoney/

Dem brugte jeg selv, da jeg lavede mit første login-system!
Avatar billede googolplex Novice
02. juli 2003 - 15:34 #9
Der står ikke noget i din form action, måske er det det ?
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:35 #10
Jeg har sat <?php $_SERVER['index.php']; ?>?side=bruger ind da brugertjekket er en include !

Men ligemeget har det hjulpet...
Avatar billede googolplex Novice
02. juli 2003 - 15:36 #11
Prøv med:

<form action="<?php $_SERVER["PHP_SELF"]; >" method="post">
Avatar billede avminarm Juniormester
02. juli 2003 - 15:36 #12
er der noget i DB?
Avatar billede avminarm Juniormester
02. juli 2003 - 15:37 #13
du skal jo også kalde funktionen
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:39 #14
rikjor i DB
Avatar billede googolplex Novice
02. juli 2003 - 15:40 #15
Ja, du kalder jo slet ikke funktionen...
Avatar billede avminarm Juniormester
02. juli 2003 - 15:42 #16
kald funk:

<?php

require("mysql-funktioner.php");

function tjek_brugernavn($brugernavn) {

    $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";

    aabn_forbindelse_og_vaelgdb();
    $result = mysql_query($query);
    luk_forbindelse();

    if(!mysql_num_rows($result)) {
        echo ("Jaaaa");
        break;
    }else {
        echo ("buhhh");
        break;
    }
}

tjek_brugernavn($brugernavn);
?>
Avatar billede ohmish Nybegynder
02. juli 2003 - 15:48 #17
øverst på siden:

if ($_GET['TJEK']) {

// din form behandling her

}
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:48 #18
hehe.. nånej.... men den melder fejl på linie 16-->  Cannot break/continue 1 level
Avatar billede ohmish Nybegynder
02. juli 2003 - 15:48 #19
hov.. $_POST['TJEK'] sku' det være
Avatar billede googolplex Novice
02. juli 2003 - 15:49 #20
Prøv med return; i stedet for break;
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:53 #21
Dette er nu min kode... Lidt længere, men virker stadig ikke :0)

<?php

require("mysql-funktioner.php");

if ($_POST['TJEK']) {

    function tjek_brugernavn($brugernavn) {

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";

        aabn_forbindelse_og_vaelgdb();
        $result = mysql_query($query);
        luk_forbindelse();

        if(mysql_num_rows($result)>0) {
            echo ("buuuuh, navnet er taget");
            return;
        }else {
            echo ("Jæs sir!");
            return;
        }
    }

tjek_brugernavn($brugernavn);

}
?>

<table width="496" height="100%" cellpadding="0" cellspacing="0" class="baggrund">
    <tr>
        <td height="100%" align="center" valign="middle">
            <table cellpadding="30" cellspacing="0" class="skriv">
                <tr>
                    <td height="100%" align="center" valign="middle">
                        <form action="<?php $_SERVER['index.php']; ?>?side=bruger" method="post">
                            <table cellpadding="0" cellspacing="0">
                                <tr>
                                    <td align="center">
                                        <span class="p3">Skriv dit ønskede brugernavn<br><br>
                                        <input type="text" name="brugernavn" size="20"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center">
                                        <input type="submit" value="TJEK" class="submit">
                                    </td>
                                </tr>
                            </table>
                        </form>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede prop46 Nybegynder
02. juli 2003 - 15:54 #22
og jeg har nu flyttet:
$query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";

ned efter:
aabn_forbindelse_og_vaelgdb();
Avatar billede ohmish Nybegynder
02. juli 2003 - 16:06 #23
for mig er det lidt fjollet med en funktion.. prøv istedet med:

<?php

if ($_POST['submit']) {

$fejl=0;
$brugernavn = $_POST['brugernavn'];
require("mysql-funktioner.php");
aabn_forbindelse_og_vaelgdb();

if (!eregi("^[ a-zæøå0-9_@,\.-]+$",$brugernavn)) { echo "ugyldig(e) tegn i brugernavnet"; $fejl++; }

  $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";
  $result = mysql_query($query);

if (mysql_num_rows($result)>0) {
echo ("Brugernavnet er taget"); $fejl++; }

if ($fejl==0) { echo "ingen fejl. brugernavn ok"; }

luk_forbindelse();

}

?>

<table width="496" height="100%" cellpadding="0" cellspacing="0" class="baggrund">
    <tr>
        <td height="100%" align="center" valign="middle">
            <table cellpadding="30" cellspacing="0" class="skriv">
                <tr>
                    <td height="100%" align="center" valign="middle">
                        <form action="<?php $_SERVER['index.php']; ?>?side=bruger" method="post">
                            <table cellpadding="0" cellspacing="0">
                                <tr>
                                    <td align="center">
                                        <span class="p3">Skriv dit ønskede brugernavn<br><br>
                                        <input type="text" name="brugernavn" size="20" value="<?php echo $brugernavn; ?>"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center">
                                        <input type="submit" name="submit" value="TJEK" class="submit">
                                    </td>
                                </tr>
                            </table>
                        </form>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede prop46 Nybegynder
02. juli 2003 - 16:47 #24
hm... det er ligemeget hvad jeg skriver så kommer der ingen meddelelse !?
Avatar billede prop46 Nybegynder
02. juli 2003 - 16:48 #25
er der egt. nogen grund til at tjekke tegn efter at forbindelses til DB er skabt?
Avatar billede prop46 Nybegynder
02. juli 2003 - 16:49 #26
Hov.... nej det virker sgu....
Avatar billede ohmish Nybegynder
02. juli 2003 - 16:55 #27
nææh.. det betyder intet, men virker mere logisk (overskueligt senere hen) hvis du lige bytter om på dem.
Avatar billede prop46 Nybegynder
02. juli 2003 - 16:59 #28
Okay... nu vil jeg så istedet for at skrive--> 'ingen fejl. brugernavn ok' have en form hvor man kan indtaste kodeord, navn osv.

Går udfra at jeg bare laver if ($fejl==0) sætningen om.... men databasen er jo stadig åben og det er jo stadig åben. Ville det ikke være bedre at lukke den FØR jeg tjekker resultatet og skriver til browseren?
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:01 #29
men alt det her var jo kun en lille del af det du efterspørger.

nu skal brugeren vel smides i databasen?

mysql_query("INSERT INTO bruger (brugernavn) VALUES '$brugernavn') ");
header ("Location: ".$_SERVER['index.php']);
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:03 #30
Jo, men jeg tænkte at jeg ville hive $brugernavn med ind i en anden form med bl.a kodeord og lign FØR jeg gemmer i databasen.
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:03 #31
er det ikke bedst at have alle felter i samme form fra starten?
så checker du bare hvert felt, og smider i databasen hvis alt er ok.
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:03 #32
men hov..... Jeg kan da ikke bruge header nu? Siden er jo en include!?
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:04 #33
Jo... det har du vel egt ret i :0)
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:10 #34
er siden en include-fil? det gør vist ingen forskel så vidt jeg ved.. bare du har headeren øverst.. OVER alle outputs.
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:11 #35
med undtagelse: hvis du inkluderer filen efter noget output. så går det ikke (uden output buffering)
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:13 #36
Siden er includeret efter en masse html...
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:16 #37
ok. en header efter en form er jo ret nyttig, så man ikke kan reloade formen osv. osv.


lav en fil der hedder .htaccess (ingenting punktum htaccess) i din webmappe med indholdet:

php_value output_buffering 4096

så sku det være muligt at videresende efter output.
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:18 #38
... og er dette fornuftigt? Eller er det en genvej?
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:23 #39
nu ligger der jo en .htaccess i forvejen... Noget frontpage-gejl som ligger der pr. default.... Den overskriver jeg?
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:32 #40
Jeg skal lige jave forklaringen på hvad--> $fejl++; helt konkret gør i denne sætning

if (mysql_num_rows($result)>0) {
echo ("Brugernavnet er taget"); $fejl++; }
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:33 #41
eller tilføjer linien

de eneste alternativer er at bruge javascript redirect, meta refresh eller opbygge siden anderledes.

det sidste er klart at foretrække
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:36 #42
kunne jeg i virkeligheden ikke lave en action til en fil (gem.php) som IKKE er en include, gemme, og så heade tilbage fra den?
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:36 #43
$fejl++ gør bare at fejlen registreres som en fejl.

$fejl++ er det samme som at sige $fejl = $fejl+1


det kan udvides og er ret brugbart når man har mange kriterier og mange mulige fejl

øverst siger man $fejl = 0;
kriterierne gennemgåes. hvis $fejl ikke er 0 herefter, skrives der f.eks "fejl!". ellers skrives "success!". (groft sagt)
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:37 #44
nånej... så mangler jeg jo mit fejltjek :0(
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:37 #45
jo. det med action til en fil er bedre, men blir hurtigt uoverskueligt. nu har du så TO sider til samme funktion.
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:38 #46
og.... hvis der så ER fejl skal jeg tilbage til min form med variablerne og... nej... det duer sgu nok ikke
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:40 #47
jeg kunne lave en fil hvis eneste funktion var at heade mig vidre?... eller som også startede en session, så folk automatisk blev logget ind på deres brugerområde når de oprettede sig selv som bruger!?
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:41 #48
præcis.. det er det klassiske problem ved at inkludere sider. der holder jeg mig til automatisk output buffering.
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:41 #49
hvordan vil du komme hen til den fil så?
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:43 #50
argh... du har ret....
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:45 #51
Nå... men for at vende tilbage til tjek af form... Når jeg nu skal tjekke mine andre felter i formen så er det vel noget i denne retning:

if(empty($brugernavn)){
  {echo "Du har ikke indtaste et BRUGERNAVN<br>" $fejl++;
}

..ikk?
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:46 #52
output buffering gør livet meget lettere.. og det er ikke så farligt som nogen siger.
Avatar billede prop46 Nybegynder
02. juli 2003 - 17:50 #53
øh.... efter at havde rette i den .htaccess kan jeg nu ikke længere få kontakt til hjemmesiden !
Avatar billede ohmish Nybegynder
02. juli 2003 - 17:53 #54
du får lige mit eget script med udvidet fejlbehandling:

if ($_POST['opret']) {

ob_start();

$nynavn=$_POST['nynavn'];
$nypostnr=$_POST['nypostnr'];
$nyemail=$_POST['nyemail'];
$nytlf=$_POST['nytlf'];
$status=0;

if (trim(strlen($nybrugernavn))==0) { $fejl1="brugernavn mangler<br>"; $status++;}
elseif (trim(strlen($nybrugernavn))<3) { $fejl1="brugernavnet skal være min. 3 tegn<br>"; $status++; }
elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$nybrugernavn)) { $fejl1="ugyldig(e) tegn i brugernavnet<br>"; $status++; }

if (trim(strlen($nynavn))==0) { $fejl2="fulde navn mangler<br>"; $status++; }
elseif (trim(strlen($nynavn))<5 || !ereg("[ ]",$nynavn)) { $fejl2="fulde navn skal indeholde b&aring;de for- og efternavn<br>"; $status++; }

if (trim(strlen($nyemail))==0) { $fejl3="emailadresse mangler<br>"; $status++; }
elseif ($nyemail && !ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$", $nyemail)) { $fejl3="ugyldig emailadresse<br>"; $status++; }

if (trim(strlen($nypostnr))==0) { $fejl4="postnr mangler<br>"; $status++;}
elseif (!eregi("[0-9]", $nypostnr) || trim(strlen($nypostnr))<4) { $fejl4="ugyldigt postnr<br>"; $status++; }

if ($nytlf && !eregi("[0-9]", $nytlf)) { $fejl5="ugyldigt tlf-nr. (brug kun tal)<br>"; $status++;}
elseif ($nytlf && trim(strlen($nytlf))<8) { $fejl5="tlf-nr. skal være min. 8 cifre<br>"; $status++;}

if ($status==0) {
    $hentdb = "SELECT brugernavn FROM medlemmer WHERE brugernavn='$nybrugernavn' ";
    $dbexist = mysql_query($hentdb);
    if (mysql_num_rows($dbexist) > 0) { $fejl1="Brugernavnet \"$nybrugernavn\" er desv&aelig;rre taget.<br>V&aelig;lg venligst et andet.<br>"; $status++; }
    }
if ($status==0) {
    $hentem = "SELECT email FROM medlemmer WHERE email='$nyemail' ";
    $emexist = mysql_query($hentem);
    if (mysql_num_rows($emexist) > 0) { $fejl1="Emailadressen $nyemail<br> er optaget. M&aring;ske har du allerede<br>oprettet en konto? <a href=\"dmk.php?s=kodeord&konto=$nyemail\">se her</a>"; $status++; }
    }
if ($status!=0) { $fejlliste='<br><dt class="text"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.$fejl3.$fejl4.$fejl5.'</font>'; }

if ($status==0) {
    $nynavn = mysql_escape_string(htmlspecialchars(stripslashes($nynavn)));
    $nyemail = mysql_escape_string(htmlspecialchars(stripslashes($nyemail)));

    $iphost = $_SERVER['REMOTE_ADDR']." @ ".gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $system = $_SERVER['HTTP_USER_AGENT'];   

    @mysql_query("INSERT INTO medlemmer (brugernavn, kodeord, ip, alevel, logantal, status, system, navn, tlf, postnr, email, opret)
    VALUES ('$nybrugernavn', md5('$nytkodeord'), '$iphost', '3', '0', 'offline', '$system', '$nynavn', '$nytlf', '$nypostnr', '$nyemail', '$ligenu') ")
    or die ($dbfejl."<br><input type=\"button\" value=\"send igen\" onClick=\"self.location.reload(true)\">");

header("Location: dmk.php?s=ny&st=ok&nymail=$nyemail"); $st="ok";

}
ob_end_flush(); }

echo $fejlliste;
Avatar billede ohmish Nybegynder
02. juli 2003 - 19:21 #55
fjern htaccess linien igen.. ingen grund til at bruge det konstant hvis du sjældent har brug for at sætte "sene" headers
Avatar billede prop46 Nybegynder
02. juli 2003 - 21:27 #56
Pyha... den er lidt svær at overskue den fejlfinding.

Du laver alle bogstaverne små--> (trim(strlen($brugernavn) ?? og tjekker de enkelte indtasninger, giver dem et fejlnummer -->$fejl1 ?? og lægger 1 til status.

Så gør du status op... hvis status ikke er 0 skriver du fejlene ud.
Hvis status er 0 gør du et-eller-andet som jeg ikke kan huske hvad er
-->$nynavn = mysql_escape_string(htmlspecialchars(stripslashes($nynavn)));

og smider det så i DB'en.... er det korrekt gennemskuet?
Avatar billede avminarm Juniormester
02. juli 2003 - 21:29 #57
du kan hverken bruge break; eller return; der hvor du har brugt det - du skal bruge exit;
Avatar billede ohmish Nybegynder
02. juli 2003 - 22:08 #58
prop>
if (trim(strlen($nyemail))==0) betyder bare "hvis antallet af karakterer er 0"

mysql_escape_string(htmlspecialchars(stripslashes($nynavn)));
sætter \ foran farlige tegn (f.eks " og ') som primært mysql kunne reagere forkert på.
htmlspecialchars laver < om til &lt; osv. osv.

jeg laver samler $fejl1, $fejl2 osv. for at få en liste over alle eventuelle fejl, og kan herefter printe fejllisten præcis hvor jeg vil på siden.
Avatar billede prop46 Nybegynder
02. juli 2003 - 22:13 #59
Vender lige tilbage når jeg har fået samlet det hele indtil vidre :0)
Avatar billede ohmish Nybegynder
02. juli 2003 - 22:13 #60
du har ret.. det er lidt avanceret til dit brug.

if (trim(strlen($navn))==0) kunne sagtens istedet være:
if (!$navn)

men.. brugeroprettelse er også ret komplekst hvis det skal være gennemført og nogenlunde skud/fejlsikkert.
Avatar billede prop46 Nybegynder
02. juli 2003 - 23:34 #61
Det er helt cool... det må gerne være avanceret... Jeg skal bare tage mig god tid og forstå det... frem for bare copy paste det hel :0)

Jeg skriver imorgen.... Mange tak så langt... Hænger du ud vil jeg med glæde hæve pointene.
Avatar billede tipsen Nybegynder
03. juli 2003 - 00:03 #62
ohmish: Hvorfor prøver du ikke bare først at indsætte den nye bruger i databasen og hvis det så fejler kan du efterfølgende undersøge årsagen - det vil være hurtigere for brugerne af websiden.
Avatar billede ohmish Nybegynder
03. juli 2003 - 00:08 #63
ja, det kan du have ret i. det er et ikke-helt-nyt script, men det vil virke fint til prop's brug.

hvordan ville du undersøge årsagen, uden at enten spytte en mysql-fejl i browseren eller fortolke en forbindelsesfejl som at brugernavnet er optaget?
Avatar billede tipsen Nybegynder
03. juli 2003 - 00:19 #64
Du starter bare med at lave en "INSERT INTO..." og undersøger derefter mysql_affectedrows() og ser om den giver 0 eller 1 - hvis der ikke er blevet indsat nogle rækker, kan du så lave din check som ovenfor - så du har mulighed for at give brugeren en specifik fejlmelding.
Avatar billede ohmish Nybegynder
03. juli 2003 - 01:21 #65
det lyder jo strålende hr. tipsen.. har aldrig haft fingrene i affectedrows må jeg erkende
Avatar billede tipsen Nybegynder
03. juli 2003 - 02:12 #66
det er ækvivalenten til numrows - til andre operationer (INSERT, UPDATE, DELETE osv)!
Avatar billede prop46 Nybegynder
03. juli 2003 - 12:45 #67
Der er en eler anden fejl i denne linie. Skal ' ' efter = ikke være " " ?

if ($status!=0) { $fejlliste='<br><td class="text"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.$fejl3.$fejl4.$fejl5.'</font>'; }
Avatar billede prop46 Nybegynder
03. juli 2003 - 12:46 #68
Næh... det hjalp ikke
Avatar billede ohmish Nybegynder
03. juli 2003 - 13:32 #69
den er go nok. hva siger fejlen?
Avatar billede prop46 Nybegynder
03. juli 2003 - 14:20 #70
parse error, unexpected $ on line 106

.. men linie 106 er den sidste linie på siden hvor jeg lukker min tabel.
Avatar billede prop46 Nybegynder
03. juli 2003 - 14:20 #71
Her er hele koden.... ved ikke helt om det er optimalt!

<?php

require("mysql-funktioner.php");

if ($_POST['submit']) {


$status=0;
$brugernavn = $_POST['brugernavn'];
$navn = $_POST['navn'];
$kodeord = $_POST['kodeord'];
$kodeord2 = $_POST['kodeord2'];

$brugernavn = strtolower($brugernavn);
$navn = strtolower($navn);
$kodeord = strtolower($kodeord);
$kodeord2 = strtolower($kodeord2);

if (trim(strlen($brugernavn))==0) { $fejl1="brugernavn mangler<br>"; $status++;}
elseif (trim(strlen($brugernavn))<3) { $fejl1="brugernavnet skal være min. 3 tegn<br>"; $status++; }
elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$brugernavn)) { $fejl1="ugyldig(e) tegn i brugernavnet<br>"; $status++; }

if (trim(strlen($navn))==0) { $fejl2="fulde navn mangler<br>"; $status++; }
elseif (trim(strlen($navn))<6 || !ereg("[ ]",$navn)) { $fejl2="fulde navn skal indeholde b&aring;de for- og efternavn<br>"; $status++; }

if (trim(strlen($kodeord))==0) { $fejl3="Du har ikke skrevet noget kodeord<br>"; $status++; }
elseif (trim(strlen($kodeord))<6 || !ereg("[ ]",$kodeord)) { $fejl3="Dit kodeord skal være på mindst 6 bobstaver<br>"; $status++; }
elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$kodeord)) { $fejl1="ugyldig(e) tegn i kodeordet<br>"; $status++; }

if (trim(strlen($kodeord2))==0) { $fejl4="Du skal skrive kodeordet igen.<br>"; $status++; }

if($kodeord != $kodeord2) { $fejl5="Dine kodeord er ikke ens. Prøv at indtaste dem igen.<br>"; $status++; }

if ($status==0) {

aabn_forbindelse_og_vaelgdb();


  $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";
  $result = mysql_query($query);

if (mysql_num_rows($result)>0) { $fejl1="Brugernavnet er taget<br>"; $status++; }

luk_forbindelse();

}

if ($status!=0) { $fejlliste='<br><dt class="text"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.$fejl3.$fejl4.$fejl5.'</font>'; }

echo $fejlliste;
?>



<table width="496" height="100%" cellpadding="0" cellspacing="0" class="baggrund">
    <tr>
        <td height="100%" align="center" valign="middle">
            <table cellpadding="30" cellspacing="0" class="skriv">
                <tr>
                    <td height="100%" align="center" valign="middle">
                        <form action="<?php $_SERVER['index.php']; ?>?side=bruger" method="post">
                            <table cellpadding="0" cellspacing="0">
                                <tr>
                                    <td align="left">
                                        <span class="p3">Skriv dit ønskede brugernavn<br><br>
                                        <input type="text" name="brugernavn" size="20" value="<?php echo $brugernavn; ?>"></span><br><br>
                                    </td>
                                </tr>
                                                                <tr>
                                    <td valign="left">
                                        <span class="p3">Skriv dit fulde navn<br>
                                        <input type="text" name="navn" size="20" value="<?php echo $navn; ?>"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="left">
                                        <span class="p3">Skriv din email.<br>
                                        <input type="text" name="email" size="30" value="<?php echo $email; ?>"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="left">
                                        <span class="p3">Skriv et kodeord<br>
                                        <input type="password" name="kodeord" size="20"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="left">
                                        <span class="p3">Skriv kodeord igen<br>
                                        <input type="password" name="kodeord2" size="20"></span><br><br>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center">
                                        <input type="submit" name="submit" value="OPRET" class="submit">
                                    </td>
                                </tr>
                            </table>
                        </form>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede ohmish Nybegynder
03. juli 2003 - 14:26 #72
du mangler lige en til afsluttende } efter luk_forbindelse, vil jeg mene
Avatar billede prop46 Nybegynder
03. juli 2003 - 14:55 #73
Godt så... nu virker det og jeg kan oprette brugere :0)

Næste skridt bliver jo så at logge ind, tjekke brugernavn og kodeord og starte en session der sender brugeren til SIN side.
Avatar billede prop46 Nybegynder
03. juli 2003 - 14:56 #74
Jeg lægger lige hovedet i blød og vender tilbage :0)
Avatar billede prop46 Nybegynder
03. juli 2003 - 17:07 #75
Kunne det er her være noget af det rigtige til login?

<?php

if ($_POST['submit']) {

$fejl1="Der findes ingen bruger med det brugernavn<br>";

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn, kodeord FROM bruger WHERE brugernavn = '$brugernavn'";
        $result = mysql_query($query);

    if (mysql_num_rows($result)==0) { echo $fejl1;}
    if (mysql_num_rows($result)>0) {

    session_start();
    if(($brugernavn == "$brugernavn") && ($kodeord == "$kodeord") {
        $_SESSION['kodeord'] = "$kodeord";
        header("Location: profil.php");
    } else {
        echo "Brugernavn og/eller kodeord er forkert";
    }

}

?>

<table width="164" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="24" class="gul">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" valign="bottom" align="left">
            <form action="bruger/login.php" method="post">
                <table height="140" width="138" cellpadding="10" cellspacing="0" border="0">
                    <tr>
                        <td align="left" valign="top">
                            <span class="p">
                            Brugernavn:<br>
                            <input type="text" name="brugernavn" size="15" class="input"><br>
                            Kodeord:<br>
                            <input type="password" name="kodeord" size="15" class="input"><br><br>
                            <input type="submit" value="LOGIN" class="submit"><br>
                            <a href="<?php $_SERVER['index.php']; ?>?side=bruger">OPRET NY BRUGER</a></span>
                        </td>
                    </tr>
                </table>
            </form>
        </td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
</table>
Avatar billede prop46 Nybegynder
03. juli 2003 - 17:10 #76
bortset fra at jeg stadig ikke kan få det--> php_value output_buffering 4096 til at virke
Avatar billede ohmish Nybegynder
03. juli 2003 - 17:22 #77
tja, det ser ikke helt forkert ud.

jeg ville nok adskille selve behandlingen/valideringen fra echo af fejl m.m.
så du istedet siger:  if (mysql_num_rows($result)==0) { $fejl1 = "Der findes ingen bruger med det brugernavn<br>"; }

og et andet sted: if ($fejl eller noget) { echo $fejl; }
som jeg skrev i det andet eksempel.

autobufferen, php_value output_buffering 4096 behøver du faktisk ikke... brug istedet ob_start(); og ob_end_flush();, og kun hvis du er tvunget til at sende header efter output.
Avatar billede prop46 Nybegynder
03. juli 2003 - 18:07 #78
Er de rigtigt sat ind de ob_start();  &  ob_end_flush();  ??

Får stadig headers already sent by

<?php

require("mysql-funktioner.php");

if ($_POST['submit']) {

ob_start();

$status=0;
$brugernavn = $_POST['brugernavn'];
$navn = $_POST['navn'];
$kodeord = $_POST['kodeord'];
$kodeord2 = $_POST['kodeord2'];

$brugernavn = strtolower($brugernavn);
$navn = strtolower($navn);
$kodeord = strtolower($kodeord);
$kodeord2 = strtolower($kodeord2);

    if (trim(strlen($brugernavn))==0) { $fejl1="brugernavn mangler<br>"; $status++;}
    elseif (trim(strlen($brugernavn))<3) { $fejl1="brugernavnet skal være min. 3 tegn<br>"; $status++; }
    elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$brugernavn)) { $fejl1="ugyldig(e) tegn i brugernavnet<br>"; $status++; }

    if (trim(strlen($navn))==0) { $fejl2="fulde navn mangler<br>"; $status++; }
    elseif (trim(strlen($navn))<6 || !ereg("[ ]",$navn)) { $fejl2="fulde navn skal indeholde b&aring;de for- og efternavn<br>"; $status++; }

    if (trim(strlen($kodeord))==0) { $fejl3="Du har ikke skrevet noget kodeord<br>"; $status++; }
    elseif (trim(strlen($kodeord))<4 || ereg("[ ]",$kodeord)) { $fejl3="Dit kodeord skal være på mindst 4 bobstaver og må IKKE indholde mellerum<br>"; $status++; }
    elseif (!eregi("^[ a-zæøå0-9_@,\.-]+$",$kodeord)) { $fejl1="ugyldig(e) tegn i kodeordet<br>"; $status++; }

    if (trim(strlen($kodeord2))==0) { $fejl4="Du skal skrive kodeordet igen.<br>"; $status++; }

    if($kodeord != $kodeord2) { $fejl5="Dine kodeord er ikke ens. Prøv at indtaste dem igen.<br>"; $status++; }

    if ($status==0) {

    aabn_forbindelse_og_vaelgdb();


        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn'";
        $result = mysql_query($query);

        if (mysql_num_rows($result)>0) { $fejl1="Brugernavnet er taget<br>"; $status++; }

        if (mysql_num_rows($result)==0) {

            $query = "insert into bruger(brugernavn, navn, email, kodeord)
            values('$brugernavn','$navn', '$email', '$kodeord')";

            mysql_query($query);
        }


    luk_forbindelse();

    header("Location: ../index.php?side=oprettet");

    }

    ob_end_flush();

}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.$fejl3.$fejl4.$fejl5.'</font>'; }

echo $fejlliste;
?>
Avatar billede ohmish Nybegynder
04. juli 2003 - 18:07 #79
mja.. nu kom jeg jo i tanke om at du inkluderer selve filen.. så skal alt jo smides i bufferen.

ob_start(); skal sættes helt øverst på hovedsiden der inkludere brugersiden.

ob_end_flush(); skal sættes lige UNDER din include af brugersiden.
Avatar billede ohmish Nybegynder
04. juli 2003 - 18:08 #80
så længe du ikke kører meget store scripts er det fint at bruge bufferen.. ellers kan det godt sløve visningen af siderne en smule.
Avatar billede prop46 Nybegynder
04. juli 2003 - 19:29 #81
Jeps.... virker nu.... men:

Når jeg har oprettet brugeren header jeg til oprettet.php hvor jeg lige vil sige at bruger $brugernavn er oprettet osv. Men $brugernavn bliver ikke vist!
Er det ikke bare--> echo "bruger $brugernavn er oprettet"; ?? :01
Avatar billede exp Juniormester
04. juli 2003 - 19:34 #82
header("location: oprettet.php?brugernavn=".$brugernavn);
Avatar billede exp Juniormester
04. juli 2003 - 19:35 #83
og så:

echo "bruger ".$_GET['brugernavn']." er oprettet";
Avatar billede exp Juniormester
04. juli 2003 - 19:36 #84
Alternativt kan du bruge $_SESSION['brugernavn'] eller setcookie()
Avatar billede prop46 Nybegynder
04. juli 2003 - 19:42 #85
2 sek.... min  header ser sådan ud:

header("Location: index.php?side=oprettet");

Hvordan får jeg flettet--> brugernavn=".$brugernavn ind der?
Avatar billede exp Juniormester
04. juli 2003 - 19:45 #86
header("Location: index.php?side=oprettet&brugernavn=".$brugernavn);
Avatar billede exp Juniormester
04. juli 2003 - 19:45 #87
header("Location: index.php?side=oprettet&amp;brugernavn=".$brugernavn); <== så kan koden ogs valideres :-)
Avatar billede prop46 Nybegynder
04. juli 2003 - 19:46 #88
cool :0)
Avatar billede tipsen Nybegynder
05. juli 2003 - 08:02 #89
exp: Hvorfor rettede du & til &amp; ?
Avatar billede exp Juniormester
05. juli 2003 - 10:09 #90
Så w3c-validatoren ikke melder fejl ved det :-)
Avatar billede tipsen Nybegynder
05. juli 2003 - 10:19 #91
Det forstår jeg ikke - '&' er da et gyldigt tegn i en url!?
Avatar billede exp Juniormester
05. juli 2003 - 10:30 #92
Ihvertfald i <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> vil den ikke godkende ?a=1&b=2 - der skal det være ?a=1&amp;b=2 - husk det er i koden; det bliver jo stadig udskrevet korrekt ;-)
Avatar billede tipsen Nybegynder
05. juli 2003 - 10:56 #93
Det der står i header bliver da ikke udskrevet!?
Avatar billede exp Juniormester
05. juli 2003 - 13:22 #94
Mente HTML 4.01 Transitional - DTD'et
Avatar billede prop46 Nybegynder
07. juli 2003 - 11:24 #95
Er nu igang med selve login'et..... Men den synes ikke rigtigt at taget fat og der er ingen fejlmeldinger....

<?php

if ($_POST['submit']) {

$brugernavn = strtolower($brugernavn);
$kodeord = strtolower($kodeord);

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn, kodeord FROM bruger WHERE brugernavn = '$brugernavn'";
        $result = mysql_query($query);

    if (mysql_num_rows($result)==0) { $fejl1="Der findes ingen bruger med det brugernavn<br>"; $status++;}
    if (mysql_num_rows($result)>0) {

        session_start();
        if(($brugernavn == "$brugernavn") && ($kodeord == "$kodeord")) {
        $_SESSION['brugernavn'] = "$brugernavn";
        header("Location: index.php?side=profil");
        } else {
            $fejl2 = "Brugernavn og/eller kodeord er forkert<br>"; $status++;
        }

    }
}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.'</font>'; }

echo $fejlliste;

?>
Avatar billede ohmish Nybegynder
07. juli 2003 - 14:11 #96
<?php

if ($_POST['submit']) {

$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
$check = mysql_num_rows($result);

    if ($check==0) { $fejl1="Der findes ingen bruger med det brugernavn<br>"; $status++;}
    elseif ($check>0) {
        session_start();
$_SESSION['brugernavn'] == $brugernavn;
$_SESSION['kodeord'] == $kodeord;
        header("Location: index.php?side=profil");
        } else {
            $fejl1 = "Brugernavn og/eller kodeord er forkert<br>"; $status++;
        }

    }
}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.'</font>'; }

echo $fejlliste;

?>
Avatar billede ohmish Nybegynder
07. juli 2003 - 14:20 #97
når du så skal lave en konstant loginchecker kan du bruge noget i stil med (kald siden check.inc):

<?php

$brugernavn = $_SESSION['brugernavn'];
$kodeord = $_SESSION['kodeord'];

if ($brugernavn && $kodeord) {
aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
$check = mysql_num_rows($result);

    if ($check==0) { $adgang="nix"; }
    elseif ($check>0) { $adgang="ok"; }
}
luk_forbindelse();

} else { $adgang = "nix"; }

?>


nu skal siden inkluderes på sider der skal beskyttes:
$adgang="nix";
include ("check.inc");
if ($adgang!="ok") { echo "ikke logget ind"; exit; }

// og her kommer så alt det man må se hvis man er logget ind.
Avatar billede prop46 Nybegynder
09. juli 2003 - 14:35 #98
Det virker ikke. Når jeg kører uden check.inc logger den mig hele tiden ind. Når jeg includerer den kan jeg slet ikke logge ind.
Avatar billede prop46 Nybegynder
09. juli 2003 - 14:36 #99
Logger min ind uanset hvad jeg skriver (header til profil.php)

<?php

if ($_POST['submit']) {

$status=0;
$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
    $check = mysql_num_rows($result);

    luk_forbindelse();
   
        if ($check==0) { $fejl1="Der findes ingen bruger med det brugernavn<br>"; $status++;}
        elseif ($check>0) {
        session_start();
    $_SESSION['brugernavn'] == $brugernavn;
    $_SESSION['kodeord'] == $kodeord;
        header("Location: index.php?side=profil");
        } else {
        $fejl1 = "Brugernavn og/eller kodeord er forkert<br>"; $status++;
        }
}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.'</font>'; }

echo $fejlliste;

?>

<table width="164" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="24" class="gul">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" valign="bottom" align="left">
            <form action="<?php $_SERVER['index.php']; ?>?side=profil" method="post">
                <table height="140" width="138" cellpadding="10" cellspacing="0" border="0">
                    <tr>
                        <td align="left" valign="top">
                            <span class="p">
                            Brugernavn:<br>
                            <input type="text" name="brugernavn" size="15" class="input"><br>
                            Kodeord:<br>
                            <input type="password" name="kodeord" size="15" class="input"><br><br>
                            <input type="submit" value="LOGIN" class="submit"><br>
                            <a href="<?php $_SERVER['index.php']; ?>?side=bruger">OPRET NY BRUGER</a></span>
                        </td>
                    </tr>
                </table>
            </form>
        </td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
</table>
<table width="164" height="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="24" class="gul" align="center">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" align="left" valign="top" style="padding-left:10; padding-top:10"><span class="p">BRUGERE:</span></td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
    <tr>
        <td width="24" class="gul" align="center">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" align="left" style="padding-left:10; padding-top:10">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
</table>
Avatar billede ohmish Nybegynder
09. juli 2003 - 17:07 #100
check.inc skal være en fil med intet andet formål end at checke brugeren hver gang han/hun åbner en side. prøv med indholdet:

<?php

$brugernavn = $_SESSION['brugernavn'];
$kodeord = $_SESSION['kodeord'];

if ($brugernavn && $kodeord) {
aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
$check = mysql_num_rows($result);

    if ($check==0) { $adgang="nix"; }
    elseif ($check>0) { $adgang="ok"; }
}
luk_forbindelse();

} else { $adgang = "nix"; }

?>
Avatar billede ohmish Nybegynder
09. juli 2003 - 17:08 #101
på alle sider der skal checkes (selvfølgelig ikke selve loginsiden) skal du bruge dette:

<?php
$adgang="nix";
include ("check.inc");
if ($adgang!="ok") { echo "ikke logget ind"; exit; }
?>

prøv at gøre præcis som jeg har skrevet sidst. virker det så?
Avatar billede prop46 Nybegynder
11. juli 2003 - 11:31 #102
Hmm.... Jeg har gjort nøjagtigt som du siger, men jeg kan logge ind uanset hvad jeg skriver:

bruger.php:

<?php

if ($_POST['submit']) {

$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
    $check = mysql_num_rows($result);

    luk_forbindelse();
   
        if ($check==0) { $fejl1="Der findes ingen bruger med det brugernavn<br>"; $status++;}
        elseif ($check>0) {
        session_start();
    $_SESSION['brugernavn'] == $brugernavn;
    $_SESSION['kodeord'] == $kodeord;
        header("Location: index.php?side=profil");
        } else {
        $fejl1 = "Brugernavn og/eller kodeord er forkert<br>"; $status++;
        }
}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.'</font>'; }

echo $fejlliste;

?>

<table width="164" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="24" class="gul">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" valign="bottom" align="left">
            <form action="<?php $_SERVER['index.php']; ?>?side=profil" method="post">
                <table height="140" width="138" cellpadding="10" cellspacing="0" border="0">
                    <tr>
                        <td align="left" valign="top">
                            <span class="p">
                            Brugernavn:<br>
                            <input type="text" name="brugernavn" size="15" class="input"><br>
                            Kodeord:<br>
                            <input type="password" name="kodeord" size="15" class="input"><br><br>
                            <input type="submit" value="LOGIN" class="submit"><br>
                            <a href="<?php $_SERVER['index.php']; ?>?side=bruger">OPRET NY BRUGER</a></span>
                        </td>
                    </tr>
                </table>
            </form>
        </td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
</table>
<table width="164" height="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td width="24" class="gul" align="center">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" align="left" valign="top" style="padding-left:10; padding-top:10"><span class="p">BRUGERE:</span></td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
    <tr>
        <td width="24" class="gul" align="center">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
        <td width="138" class="gul" align="left" style="padding-left:10; padding-top:10">&nbsp;</td>
        <td width="2"><img src="image/baggrund.gif"></td>
    </tr>
</table>

check.inc:

<?php

$brugernavn = $_SESSION['brugernavn'];
$kodeord = $_SESSION['kodeord'];

if ($brugernavn && $kodeord) {
aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
$check = mysql_num_rows($result);

    if ($check==0) { $adgang="nix"; }
    elseif ($check>0) { $adgang="ok"; }
}
luk_forbindelse();

} else { $adgang = "nix"; }

?>

Mangler jeg ikke at sætte status til 0 på min bruger.php side? (men ligemeget hjælper det nu)
Avatar billede prop46 Nybegynder
11. juli 2003 - 11:36 #103
MEN!! når jeg includer check.inc på min profil.php, som er siden man sendes til hvis man logger ind, så kan jeg ikke logge ind selv med et brugernavn jeg HAR oprette.
Avatar billede prop46 Nybegynder
11. juli 2003 - 14:52 #104
ohmish-->

Jeg har haft store problemer med at komme på nettet de sidste par dage, derfor den manglende respons. Nu tar' jeg på ferie imorgen og er væk en 10 dage's tid. Håber du er klar på at hjælpe lidt mere derefter. Jeg sætter pointene op til 200.

Hey hoo
Avatar billede prop46 Nybegynder
21. juli 2003 - 13:13 #105
Home again...!

Jeg har prøvet med et andet check end check.inc.....

bruger.php:

<?php

if ($_POST['submit']) {

$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

    aabn_forbindelse_og_vaelgdb();

        $query = "SELECT brugernavn FROM bruger WHERE brugernavn = '$brugernavn' AND kodeord='$kodeord'";
        $result = mysql_query($query);
    $check = mysql_num_rows($result);

    luk_forbindelse();
   
        if ($check==0) { $fejl1="Der findes ingen bruger med det brugernavn<br>"; $status++;}
        elseif ($check>0) {

        session_start();
    $_SESSION['brugernavn'] == $brugernavn;
        header("Location: index.php?side=profil");
        } else {
        $fejl1 = "Brugernavn og/eller kodeord er forkert<br>"; $status++;
        }
}

if ($status!=0) { $fejlliste='<br><dt class="fejl"><font color="red">Fejl:<br>
'.$fejl1.$fejl2.'</font>'; }

echo $fejlliste;

?>


profil.php:

<?php
$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

session_start();
if(isset($_SESSION['brugernavn'])) {

?>

<table width="496" height="100%" cellpadding="0" cellspacing="0" border=0">
    <tr>
        <td height="100%" align="center" valign="middle">
            <span class="p4">Bruger <b><?php echo $_POST['brugernavn']; ?></b> er logget ind</span>
        </td>
    </tr>
</table>

<?php

}else{
    echo "Ikke logget ind";
}

?>

men ligemeget hjælper det. Den vil ikke logge ind og laver ingen fejlmeddelelser på loginet
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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