myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   PHP datenbank abfrage einbauen? (https://mygully.com/showthread.php?t=2407753)

tommy99 30.08.11 16:11

PHP datenbank abfrage einbauen?
 
Hallo Leute.

Ich möchte gerne einen Geschützten bereich auf meiner homepage erstellen.Dazu habe ich folgendes gefunden : [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Dort steht das man neben einer Festlegung der Login-Daten im Skript diese auch über eine datenbank anlegen kann und auslesen kann damit man mehrere benutzer hat.

Wie kann ich das jetzt in diese Skript integrieren?Von Datenbank abfragen habe ich fast keine ahnung.Habe lediglich vor geraumer zeit mal einwenig damit rumexpereimentiert.


login.php

PHP-Code:

<?php
     
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      
session_start();

      
$username $_POST['username'];
      
$passwort $_POST['passwort'];

      
$hostname $_SERVER['HTTP_HOST'];
      
$path dirname($_SERVER['PHP_SELF']);

      
// Benutzername und Passwort werden überprüft
      
if ($username == 'benjamin' && $passwort == 'geheim') {
       
$_SESSION['angemeldet'] = true;

       
// Weiterleitung zur geschützten Startseite
       
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (
php_sapi_name() == 'cgi') {
         
header('Status: 303 See Other');
         }
        else {
         
header('HTTP/1.1 303 See Other');
         }
        }

       
header('Location: http://'.$hostname.($path == '/' '' $path).'/index.php');
       exit;
       }
      }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
 <head>
  <title>Geschützter Bereich</title>
 </head>
 <body>
  <form action="login.php" method="post">
   Username: <input type="text" name="username" /><br />
   Passwort: <input type="password" name="passwort" /><br />
   <input type="submit" value="Anmelden" />
  </form>
 </body>
</html>


sirleo 30.08.11 16:56

Du bist:
a) unbelehrbar.
sagst zwar das du erstmal eine sache gut lernen willst,machst es aber nicht
b) lernresistent.
denn fragen dieser Art hast du hier schon zu hauf gestellt.
c) faul weil kein Fortschritt deinerseits zu erkennen ist

Und ich könnte noch einiges aufzählen.
Also ich helfe dir Nuss nicht mehr, und ich bin mit sicherheit nicht der Einzige dem es so geht.

Sirleo

djjayt 31.08.11 21:23

Hallo,
damit andere Nutzer etwas davon haben versuche ich mich an einer Antwort.

Zuerst die Verbindung mit der Datenbank aufbauen und die Tabelle anwählen, in der die Nutzernamen und Passwörter stehen:

PHP-Code:

<?php
$verbindung 
mysql_connect ("Servername",
"Nutzername""Passwort")
or die (
"keine Verbindung möglich.
 Benutzername oder Passwort ist falsch"
);[PHP]

mysql_select_db("Datenbankname_in_der_die_Nutzer_s tehen")
or die ("Die Datenbank existiert nicht.");
?>[/PHP]

Anschließend musst Du die Nutzernamen bzw Mailadressen mit dem dazugehörigen Passwort vergleichen.


PHP-Code:

<?php
$abfrage    
"SELECT * FROM tabellenname";
$ergebnis   mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
   {
      
$nutzername $row->name;
      
$passwort     $row->passwort;
   }
?>

Nun musst Du lediglich die Formulardaten mit denen aus der Datenbank vergleichen und Du kannst einen Cookie oder eine Session setzen, damit der User eingeloggt bleibt.

Die passenden Tutorials findest Du hier:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Lies Dir mal dieses Tutorial über MySQL durch, dann wird einiges klarer:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Viel Erfolg!

xTaifunx 31.08.11 23:23

?? Warum nicht gleich eine WHERE option am ende von Select einbauen und direkt nach dem entsprechenden datensatz Username und Passwort suchen lassen. Ist es mit while nicht etwas zu übertrieben alle datensätze zu durchsuchen, bis man die userdaten findet??

SELECT bla,bla,bla FROM blatabellle WHERE username="$username" AND passwort="$passwort"

Oder übersehe ich etwas.

Epeos 01.09.11 06:33

Und bitte dran denken vor der SQL-Abfrage die eingegebenen Daten zu prüfen, sonst passiert sowas: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

siegener89 12.09.11 00:38

Ist eine registrier-Funktion geplant?
Wenn nicht, guck dir mal htaccess und htpasswd an...
Das reicht dann meistens aus...

manta656 16.09.11 21:09

kann meinem Vorposter zustimmen. mit den HTACCESS/HTPASSWD Dateien kann man auch mehrere User festlegen.

lordanum 23.09.11 20:44

Zitat:

SELECT bla,bla,bla FROM blatabellle WHERE username="$username" AND passwort="$passwort"
Hier vielleicht lieber mit anonymen ?-Platzhaltern arbeiten um SQL Injections zu vermeiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.