PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Login Script



-=Falke=-
21.09.2007, 13:15
Also hab mal so ein kleines Login-Script erstellt

http://burakshp.bu.ohost.de/formular.php
Name: test
P.W: 123

Ich will jetzt noch das man sich Registrieren kann..
Wie mache ich das ?

H4x0r007
21.09.2007, 13:33
du verbindest dich mit einer MySQL-Datenbank, schreibst Daten rein und liest die aus.

-=Falke=-
21.09.2007, 13:39
Aha :roll:
Und wie mache ich dat?
Hab diesen Login-Script mit TUT geschrieben..

H4x0r007
21.09.2007, 13:48
Auf jeden Fall solltest du MySQL und PHP richtig lernen.

Ich habe dazu das Buch "Web-Datenbanken" für 5 € im Pearl-Katalog gekauft gehabt und kann's jetzt relativ gut. Ob es das Buch jetzt noch gibt, weiß ich leider nicht.

-=Falke=-
21.09.2007, 17:05
Habs hingekriegt!
Aber jetzt will ich noch, dass wenn man nichts in die Felder eingibt eine Fehlermeldung kommt.

H4x0r007
21.09.2007, 17:08
PHP-Code:


<?php
if((!isset($[HIER DIE VARIABLE FÜR DEN USERNAME])) || (!isset($[HIER DIE VARIABLE FÜR DAS PW]))) {
die("Mindestens ein Feld wurde nicht ausgefüllt");
}
?>

DrWhiteLetter
21.09.2007, 17:15
!isset() == empty()

;)

H4x0r007
21.09.2007, 17:16
lol - ich benutze immer !isset

JambaRatte
21.09.2007, 20:14
OMG!
!isset() != empty()

z.b.:


$x = '';
isset($x); //TRUE
empty($x); //TRUE

$x = array();
isset($x); //TRUE
empty($x); //TRUE

$x = FALSE;
isset($x); //TRUE
empty($x); //TRUE

$x = 0;
isset($x); //TRUE
empty($x); //TRUE

$x = '0';
isset($x); //TRUE
empty($x); //TRUE

Dubbel
22.09.2007, 19:27
isset() guckt einfach nur, ob die Variable definiert ist...
empty() guckt aber auch, ob sie leer ist. :wink:

H4x0r007
22.09.2007, 19:34
warum schreiben wir nicht einfach


if($variable=="")

Dann ist jeder zufrieden!

@mods: ich glaube, das hier kann geclosed werden.

DrWhiteLetter
26.09.2007, 13:01
Jup! Mein Fehler! Ich meinte mit meinem Vergleich nur den Einsatz in obigem Beispiel, bei welchem empty() code bei der deklarierung sparen kann oder aber Fehler vermeidet (bei fehlender deklaration), wenn direkt über POST übergeben werden sollte.

Ind3X
30.11.2007, 12:08
Ich würde gerne auch so ein Login-Script erstellen, habe auch eine Anleitung gefunden, aber bei mir erscheint immer ein MySQL-Error.

Habe ich HIER (http://free-hack.com/viewtopic.php?t=43090) schonmal gepostet, kann mir da einer helfen? Oder mir einen Script sagen, mit dem es auf Funpic funktioniert? Ich bin relativ sicher dass es an Funpic liegt.

mfg Ind3X

echoslider
30.11.2007, 13:25
ähm. sollte das bei der page so sein das man sich ohne username und ohne pw einlogen kann? lol.


also hier mal ein login script mit sql und sessions:

login.php


<center>

<form action="./check.php" method="post">

<table border="0">

<tr>

<td>Username:</td>

<td><input type="text" name="username"></td>



</tr>

<tr>

<td>Passwort:</td>

<td><input type="password" name="password"></td>

</tr>



<tr>

<td></td>

<td><input type="submit" name="login" value="login"></td>

</tr>



</table>



</form>

</center>


check.php


<?php

session_start();





if($_POST['login'] && isset($_POST['password']) && $_POST['password']!="" && isset($_POST['username']) && $_POST['username']!="")

{



include'./config.php';





$pass=$_POST['password'];

$pass=md5($pass);

$user= $_POST['username'];





mysql_connect($dbhost,$dbuser,$dbpass);

mysql_select_db($db) OR die(mysql_error());

$sql = "SELECT ID,rechte,aktiv,user,pass FROM `users` WHERE `user`='$user'";

$result = mysql_query($sql) OR die(mysql_error());



if(mysql_num_rows($result)) {

while($row = mysql_fetch_assoc($result)) {



$id= $row['ID']."";

$username= $row['user']."";

$password= $row['pass']."";

$rechte= $row['rechte']."";

$aktiv= $row['aktiv']."";





if($pass== $password && $user==$username && $aktiv=="1" && $pass!="" && $user!="")

{





$time=time();



mysql_connect($dbhost,$dbuser,$dbpass);

mysql_select_db($db) OR die(mysql_error());

$query="UPDATE `users` SET lastlogin = '$time' WHERE `id`='$id'";

mysql_query($query);

mysql_close();







$remote=$_SERVER['REMOTE_ADDR'];

$ip=$remote;

$daten="$username|$password|$ip";

$sid=md5($daten);



$_SESSION['sidses']=$sid;

$_SESSION['uidses']=$id;

$_SESSION['authses']=$rechte;





header("Location: ./index.php?site=home&mode=1&sid=$sid&uid=$id&auth=$rechte");

exit;



}



}

}



}









sleep(2);

header("Location: ./index.php?site=home");

exit;



?>


index.php


<?php

if(isset($_GET['site']))

{

$site=$_GET['site'];

}

else

{

$site="home";

}

if(isset($_GET['auth']))

{

$auth=$_GET['auth'];

}

else

{

$auth="";

}



if(isset($_GET['uid']))

{

$uid=$_GET['uid'];

}

else

{

$uid="";

}

if($sid!="" && $auth!="" && $uid!="")

{



if(isset($_SESSION['sidses']))

{

$sidses=$_SESSION['sidses'];

}





if(isset($_SESSION['authses']))

{

$authses=$_SESSION['authses'];

}





if(isset($_SESSION['uidses']))

{

$uidses=$_SESSION['uidses'];

}





}


if(!isset($sidses))

{

$sidses="";

}





if(!isset($authses))

{

$authses="";

}





if(!isset($uidses))

{

$uidses="";

}



$code="sid=$sid&uid=$uid&auth=$auth";

if($sid== "" or $sid!=$sidses or $auth=="" or $auth!=$authses or $uid=="" or $uid!=$uidses)

{

session_destroy();


}



if($sid== "" or $sid!=$sidses or $auth=="" or $auth!=$authses or $uid=="" or $uid!=$uidses)

{

echo'<span style="color:#C0C0C0">login</span> (./index.php?site=login&mode='.$mode.')';

}

else

{


echo'logout (./index.php) | ';




if($auth=="1")

{


echo'Benutzerverwaltung (./index.php?'.$code.')';
}





}






?>



das alles funzt net so ganz... wegen demaufbau der seiten ... weil in der index.php die richtigen seiten net includiert werden. grad... aber das gundprinzip funzt.

Ind3X
30.11.2007, 14:49
Hm ok, ich habe den Fehler beseitigt, (als Server einfach localhost angegeben anstatt die URL) Aber jetzt kommt ein anderer Error:


Access denied for user 'skriptkiddie_01'@'%' to database 'users'
usernae und Passwort stimmen zu 100%, daran kann es nicht liegen.

jmd. ne Idee?

mfg Ind3X

Floo
30.11.2007, 16:35
Schau mal, dass du in der SQL-Verwaltung dem User auch die Rechte gibst, dass er die DB auslesen darf.