Avatar billede futurefreak Nybegynder
02. marts 2007 - 11:50 Der er 12 kommentarer og
1 løsning

Lave et loginscript til en php side.

Hej E.

Jeg vil høre om i kan hjælpe mig med at lave et loginscript med password - kun password og kun på denne side.
Dvs. at passwordet skal der spørges om først, før resten af koden vises - kan det lade sig gøre på en nem måde?
Det skal lige siges at jeg intet kender til php kodning, så det er en færdig og brugbar cut&paste kode/script jeg leder efter. Og den skal kunne implemnteres i denne side, da den bla "snakker" med connect.php.

<html>
<head>
<head>
<body>
<?
include("connect.php");
$foresp = mysql_query("SELECT id, dato, overskrift,
tekst FROM nyheder ORDER BY dato DESC");
while($data = mysql_fetch_array($foresp)){

echo "<b>$data[dato]</b><br>";
echo"<b>$data[overskrift]</b><br>";
echo "$data[tekst]<br>";
echo "<a href='slet.php?id=$data[id]'>Slet</a><br><br>";

}
?>
</body>
</html>

Håber I vil hjælpe.
Avatar billede jakobdo Ekspert
02. marts 2007 - 12:01 #1
Hvordan har du tænkt det det skal være?
Skal det være brugernavn og kodeord?
Skal du gemme flere brugere i mysql?
Avatar billede futurefreak Nybegynder
02. marts 2007 - 13:25 #2
Jakobdo >>
Ved ikke lige hvad muligheder der er.
Det skal kun være med et kodeord, ikke brugernavn og gerne inde i selve scriptet til overstående kode.

På en anden php side har jeg set følgende kode:
if($_POST[kodeord]=="mit_password"){

Jeg ved så ikke om man kan gøre dette:

<html>
<head>
<head>
<body>
<?
include("connect.php");
$foresp = mysql_query("SELECT id, dato, overskrift,
tekst FROM nyheder ORDER BY dato DESC");
while($data = mysql_fetch_array($foresp)){

if($_POST[kodeord]=="mit_password"){

echo "<b>$data[dato]</b><br>";
echo"<b>$data[overskrift]</b><br>";
echo "$data[tekst]<br>";
echo "<a href='slet.php?id=$data[id]'>Slet</a><br><br>";

}
?>
</body>
</html>



Det er et rent gæt ... men meningen er vel god nok? :-)
Den forbinder til connect.php og såfremt kodeordet "mit_password" er korrekt, så skal den vise resten af koden på siden.

Dvs.:
echo "<b>$data[dato]</b><br>";
echo"<b>$data[overskrift]</b><br>";
echo "$data[tekst]<br>";
echo "<a href='slet.php?id=$data[id]'>Slet</a><br><br>";


Men jeg kan se der kommer til at mangle et passwordfelt, så hvordan det kommer ind hmmm... der må jeg tænke ... eller spørger Jer om svar :-)

Vh
Avatar billede futurefreak Nybegynder
02. marts 2007 - 13:26 #3
Nå ja, det skal kunne virker på en php5 med safe_mode=on osv osv .. :-)
Avatar billede futurefreak Nybegynder
02. marts 2007 - 13:29 #4
Kan sådan noget bruges i starten?



function login($brugernavn, $kodeord) {
if ($kodeord == "mit_password") {
return true;
} else {
header("location: http://www.domæne.dk/");
exit;
}
}


og så med
<?php if (!$kodeord) { ?>


Jeg aner det ikke, men har kun set disse koder på andre php sider og ved ikke lige hvordan jeg sætter det ind.
Avatar billede futurefreak Nybegynder
02. marts 2007 - 13:30 #5
Sorry ... se bort fra 13:29:47

Kan sådan noget bruges i starten?



function login($kodeord) {
if ($kodeord == "mit_password") {
return true;
} else {
header("location: http://www.domæne.dk/");
exit;
}
}


og så med
<?php if (!$kodeord) { ?>


Jeg aner det ikke, men har kun set disse koder på andre php sider og ved ikke lige hvordan jeg sætter det ind.
Avatar billede showsource Seniormester
02. marts 2007 - 13:43 #6
Lige en hurtig

<?php
session_start();
$password = "juhu";

if(isset($_POST["pass"])) {
    if($_POST["pass"] == $password) {
    $_SESSION["ok"] = 1;
    }

header("Location:".$_SERVER["PHP_SELF"]);
exit;
}
?><html>
<head>
<head>
<body>
<?php

if(!isset($_SESSION["ok"])) {
?>


<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="password" name="pass"> <input type="submit" value="Send">
</form>


<?php

}else{

include("connect.php");
$foresp = mysql_query("SELECT id, dato, overskrift,
tekst FROM nyheder ORDER BY dato DESC");
    while($data = mysql_fetch_array($foresp)){

    echo "<b>$data[dato]</b><br>";
    echo"<b>$data[overskrift]</b><br>";
    echo "$data[tekst]<br>";
    echo "<a href='slet.php?id=$data[id]'>Slet</a><br><br>";

    }


}

?>
</body>
</html>
Avatar billede futurefreak Nybegynder
02. marts 2007 - 14:10 #7
showsource >>

Tak, men der er noget galt med disse linier.

session_start();
$password = "juhu";

if(isset($_POST["pass"])) {
    if($_POST["pass"] == $password) {
    $_SESSION["ok"] = 1;
    }


For følgende fejlmedd.:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/home/web/web166992/adminstar.php:4) in /usr/home/web/web166992/adminstar.php on line 5

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/home/web/web166992/adminstar.php:4) in /usr/home/web/web166992/adminstar.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web166992/adminstar.php:4) in /usr/home/web/web166992/adminstar.php on line 13
Avatar billede showsource Seniormester
02. marts 2007 - 14:29 #8
koden alene burde ikke lave fejl.
Men bruger du et program til at kode i, kan der evt. være sat mellemrum, linieskift FØR det startende <?php tag.
Gemmer du ex. ovenover i f.eks. notepad burde der ikke være nogen problemer.

Altså, der må INTET output være til browser før session_start()
Avatar billede futurefreak Nybegynder
02. marts 2007 - 14:41 #9
Showsource >>

Perfect. Har fået det til at virke, det var mig der lavede fejl i det.
Mange tak for hjælpen.
Vil du besvare så vi kan lukke?
Avatar billede showsource Seniormester
03. marts 2007 - 07:25 #10
jeg samler ikke på point mere, ellers tak.
Avatar billede futurefreak Nybegynder
03. marts 2007 - 10:58 #11
Ok, skal jeg så selv lukke det eller hvordan?
Avatar billede jakobdo Ekspert
03. marts 2007 - 13:35 #12
Det ville nok være mest korrekt ja! :o)
Avatar billede futurefreak Nybegynder
04. marts 2007 - 11:33 #13
lukker
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