Avatar billede nickyc Nybegynder
04. marts 2005 - 08:55 Der er 18 kommentarer

indsæt ind i db, og gerne rigtigt ind!

Hey alle...

Har en login side, hvori man logger ind med sit brugernavn og password! Når du trykker på submit udfører den login-ok.php som ser således ud:

<?
include("config.php");
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
$query = "SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn' AND password = '$password'";

$resultat = mysql_query($query);

$numbers = mysql_num_rows($resultat);

if ($numbers > 0 ){
    echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=admin.php?brugernavn=$brugernavn&password=$password\">";
    }else {
    echo "Du må have skrevet et forkert brugernavn eller password, prøv igen";
    echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;url=index.php\">";
   
    }
?>
--------------------

Derefter springer den til admin.php som ser således ud:

              <?
include("config.php");
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
$result = mysql_query("select brugernavn from brugere where brugernavn = '$brugernavn' and password = '$password'") or die (mysql_error());
$number = mysql_num_rows($result);

if ($number > 0) {
setcookie ("cok_bruger", "$brugernavn",time()+99999);
setcookie ("cok_pass", "$password",time()+99999);
while($myrow = mysql_fetch_assoc($result)) {
?>

<? echo"<a href='opret.php?id=$myrow[brugernavn]'> Opret ny profil af dig selv </a>"; ?>

<?
echo "Du er nu logget ind";
echo "<br /><br />";

echo "Hej $brugernavn<br />";
echo "Dine muligheder er nu at du kan rette din profil ved at bruge menuen til venstre for dig";
echo "<br />";
}
?>
          <?
} else {
echo "Du er ikke logget ind!!";
echo "Du har muligvis indtastet et forkert brugernavn eller password";
}
?>
----------------------

Når har man muligheden for at trykke på opret ny profil! Hvis man gør det skal det jo selvfølgelig være ens egen profil man redigere i??

Når man så har trykket på opret ny profil kommer man til følgende script:
-------------------

<?
include("config.php");
$brugernavn = $cok_bruger;
$password = $cok_pass;
$result = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn' and password = '$password'") or die(mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {

?>
            <?
                include("config.php");
if ($_POST['submit'] !="") {

    if($_POST['cnt_tekst'] !="") {
    echo "Du skal skrive en profil tekst!!";
    exit();
    }

$id = $_REQUEST['id'];
$url = $_REQUEST['url'];
$email = $_REQUEST['email'];
$venstre_tekst = $_REQUEST['venstre_tekst'];
$cnt_tekst = $_REQUEST['cnt_tekst'];

$query = "INSERT INTO brugere(venstre_tekst, cnt_tekst, url, email) VALUES ('$_POST[venstre_tekst]', '$_POST[cnt_tekst]', '$_POST[url]', '$_POST[email]') WHERE ID=$id";

$url = htmlspecialchars($author["url"]);
$email = htmlspecialchars($author["email"]);
$venstre_tekst = htmlspecialchars($author["venstre_tekst"]);
$cnt_tekst = htmlspecialchars($author["cnt_tekst"]);

if(mysql_query($query)) {
    echo "<strong>Du har nu oprettet en ny profil tekst</strong>";
    echo "<br>";
    } else {
    echo ("<p>Der skete en fejl ved oprettelse af din profil: " . mysql_error() . "</p>");
}
}
//Her slutter if($numbers > 0  sætningen
}
?>

------------------------------------------

Håber du er med så langt :)

-------

1. Jeg ved ikke lige pt med sikkerhed om brugeren rent faktisk redigerer i sin egen profil ?

2. Efter han har indtastet data i opret.php og trykker på submit, så smider den ikke noget ind i databasen
Avatar billede jakobdo Ekspert
04. marts 2005 - 08:59 #1
Jeg synes for det første du burde prøve at kigge lidt på sessions:
http://dk.php.net/manual/en/function.session-start.php
Avatar billede nickyc Nybegynder
04. marts 2005 - 09:09 #2
ser stadig ikke hvad der er forkert... Kan kigge på det, men lær ik så meget af det hvis jeg ikke kan finde min fejl :(
Avatar billede nickyc Nybegynder
04. marts 2005 - 09:35 #3
slet ingen der kan hjælpe mig?
Avatar billede jakobdo Ekspert
04. marts 2005 - 09:42 #4
Jo, men jeg vil først anbefale dig at bruge sessions.
Hvis jeg har besøgt min side på et offentligt sted, f.eks. biblioteket, og har været logget ind, med: admin.php?brugernavn=user&password=pass
Så vil næste bruger kunne finde dette link og så aflæse brugernavn + password, og dermed er dit system ikke sikkert.
Derfor synes jeg du skal bruge SESSION!
Avatar billede nickyc Nybegynder
04. marts 2005 - 09:45 #5
Har kigget på de sessions, og hvordan får jeg dem til at registrere det man logger ind med osv...

session_start();

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


eller hvordan?
Avatar billede jakobdo Ekspert
04. marts 2005 - 09:45 #6
<?
session_start();
include("config.php");
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
$query = "SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn' AND password = '$password' LIMIT 1";

$resultat = mysql_query($query);

$numbers = mysql_num_rows($resultat);

if ($numbers > 0 )
{
    $row = mysql_fetch_assoc($resultat);
    $_SESSION['brugernavn'] = $row['brugernavn'];
    echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=admin.php\">";
}
else
{
    echo "Du må have skrevet et forkert brugernavn eller password, prøv igen";
    echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;url=index.php\">";
}
?>
Avatar billede nickyc Nybegynder
04. marts 2005 - 09:57 #7
hvaså når brugeren kommer til admin og opret.php, skal jeg så også bare skrive session_start(); inden resten af koden eller hvordan?
Avatar billede jakobdo Ekspert
04. marts 2005 - 10:00 #8
Ja, du skriver så session_start(), og så kan du hele tiden tjekke om $_SESSION['brugernavn'] er sat, og hvis du vil ændre den pågældende bruger, så laver du et udtræk via: SELECT * FROM brugere WHERE brugernavn LIKE '".$_SESSION['brugernavn']."'
Avatar billede nickyc Nybegynder
04. marts 2005 - 10:03 #9
og jeg checker så om det er sat ved at skrive:

session_start();
$_SESSION['brugernavn'];
$_SESSION['password'];

eller skal det laves med en if sætning?
Avatar billede nickyc Nybegynder
04. marts 2005 - 10:22 #10
altså nu ser min admin.php sådanne ud:

              <?
              session_start();
include("config.php");
$_SESSION['brugernavn'];
$_SESSION['password'];
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
#$result = mysql_query("select brugernavn from brugere where brugernavn = '$brugernavn' and password = '$password'") or die (mysql_error());
#$number = mysql_num_rows($result);

#if ($number > 0) {
#setcookie ("cok_bruger", "$brugernavn",time()+99999);
#setcookie ("cok_pass", "$password",time()+99999);
#while($myrow = mysql_fetch_assoc($result)) {
?>

<?
echo "Du er nu logget ind";
echo "<br /><br />";

echo "Hej $brugernavn<br />";
echo "Dine muligheder er nu at du kan rette din profil ved at bruge menuen til venstre for dig";
echo "<br />";
#}
?>
          <?
#} else {
#echo "Du er ikke logget ind!!";
#echo "Du har muligvis indtastet et forkert brugernavn eller password";
#}
?>


og min opret.php ser sådanne ud: <-- fil vises heller ikke helt korrekt nu:


<?
include("config.php");
session_start();
$_SESSION['brugernavn'];
$_SESSION['password'];
#$brugernavn = $cok_bruger;
#$password = $cok_pass;
$result = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn' and password = '$password'") or die(mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {

?>

<?
                include("config.php");
if ($_POST['submit'] !="") {

    if($_POST['cnt_tekst'] !="") {
    echo "Du skal skrive en profil tekst!!";
    exit();
    }

$id = $_REQUEST['id'];
$url = $_REQUEST['url'];
$email = $_REQUEST['email'];
$venstre_tekst = $_REQUEST['venstre_tekst'];
$cnt_tekst = $_REQUEST['cnt_tekst'];

$query = "INSERT INTO brugere(venstre_tekst, cnt_tekst, url, email) VALUES ('$_POST[venstre_tekst]', '$_POST[cnt_tekst]', '$_POST[url]', '$_POST[email]') WHERE ID=$id";

$url = htmlspecialchars($author["url"]);
$email = htmlspecialchars($author["email"]);
$venstre_tekst = htmlspecialchars($author["venstre_tekst"]);
$cnt_tekst = htmlspecialchars($author["cnt_tekst"]);

if(mysql_query($query)) {
    echo "<strong>Du har nu oprettet en ny profil tekst</strong>";
    echo "<br>";
    } else {
    echo ("<p>Der skete en fejl ved oprettelse af din profil: " . mysql_error() . "</p>");
}
}
//Her slutter if($numbers > 0  sætningen
}
?>
Avatar billede jakobdo Ekspert
04. marts 2005 - 10:24 #11
Du kan så tjekke om en bruger er logget ind ved at:

if(isset($_SESSION['brugernavn']))
echo "Du er logget ind...";
else
echo "Skrid...";
Avatar billede jakobdo Ekspert
04. marts 2005 - 10:30 #12
Prøv at kast et blik på denne side: http://www.udvikleren.dk/article.php?aid=103
Avatar billede nickyc Nybegynder
04. marts 2005 - 10:31 #13
ok, det ser ud til at virke...

2. problem er at den så ikke smider dataen fra opret.php ind i databasen??
Avatar billede jakobdo Ekspert
04. marts 2005 - 10:32 #14
Jeg synes du skal lave 2 forms...
En til at oprette.
Og en til at redigere.

Det er vel ikke alle som kan oprette nye brugere?
Avatar billede nickyc Nybegynder
04. marts 2005 - 10:38 #15
nej nej, det her er heller ikke til at oprettet ny bruger, dette er for en bruger til at oprette en ny tekst om sig selv, derudover har jeg også en anden fil som hedder rediger.php hvori de kan redigere deres nuværende tekst om sig selv osv...
Avatar billede jakobdo Ekspert
04. marts 2005 - 11:01 #16
Her er din config:

<?
    include("config.php");
    if ($_POST['submit'] !="")
    {
        if($_POST['cnt_tekst'] !="")
        {
            echo "Du skal skrive en profil tekst!!";
            exit();
        }

        $id = mysql_escape_string($_REQUEST['id']);
        $url = mysql_escape_string($_REQUEST['url']);
        $email = mysql_escape_string($_REQUEST['email']);
        $venstre_tekst = mysql_escape_string($_REQUEST['venstre_tekst']);
        $cnt_tekst = mysql_escape_string($_REQUEST['cnt_tekst']);

        $query = "INSERT INTO brugere(venstre_tekst, cnt_tekst, url, email) VALUES ('$_POST[venstre_tekst]', '$_POST[cnt_tekst]', '$_POST[url]', '$_POST[email]') WHERE brugernavn LIKE '" . $_SESSIOn['brugernavn'] . "' LIMIT 1";

        $url = htmlspecialchars($author["url"]);
        $email = htmlspecialchars($author["email"]);
        $venstre_tekst = htmlspecialchars($author["venstre_tekst"]);
        $cnt_tekst = htmlspecialchars($author["cnt_tekst"]);

        if(mysql_query($query))
        {
            echo "<strong>Du har nu oprettet en ny profil tekst</strong>";
            echo "<br>";
        }
        else
        {
            echo ("<p>Der skete en fejl ved oprettelse af din profil: " . mysql_error() . "</p>");
        }
    }
    //Her slutter if($numbers > 0  sætningen
?>
Avatar billede nickyc Nybegynder
04. marts 2005 - 11:16 #17
den ligger det stadig ikke ind i databasen, og den kommer ikke med nogle fejl!

Det er ligesom om den udfører scriptet, men den ved bare ikke hvor den skal smide de data hen som man indskriver!
Avatar billede jakobdo Ekspert
04. marts 2005 - 11:55 #18
Du har en form som poster til filen ovenover ikke?
Prøv evt noget debug...

Som feks.:

echo $_SESSION['brugernavn'];
echo $id;
echo $url;
osv..

og i stedet for: if(mysql_query($query))

Synes jeg du skal prøve:

if(mysql_affected_rows()>0)
echo "Opdateing gik godt";
else
{
echo "Opdatering gik skidt";
echo mysql_errno() . ": " . mysql_error() . "\n";
}
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