• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

sql zugang über php-seite

didi111

Neues Mitglied
Halllöle, ich versuche seit einer guten Woche nen Login zu erstellen, leider bin ich bisher nur dran verzweifelt...

sagt mir nicht ich soll irgendwelche anleitubgen oder so lesen :razz:
denn ich habe schon so viele befolgt.. und jedesmal kein poitives Ergebnis gehabt...
bestimmt findet ihr sofort den fehler... ich abe nicht viel Ahnung in Verbindung von PHP mit SQL... mag es auch nicht lernen, da ich es nur einmalig hier brauche... Grundlegende dinge kann ich natürlich... aber genaue Befehle muss ich erst auf php.net nachschauen :)

ich werd jetzt hier auch gleich ma den sql Zugang preis geben, und später das pw ändern unter der hoffnung, dass nichts verunstalltet wird :D

Ich habe vor verschiedene Logins einzurichten wo später jeder seinen inhalt der datenbank ändern kann... verschiedene angaben...Wohnort etc. Diese angaben sollen dann öffentlich zu sehen sein, wie eine Art Profil...die Seite auf der die Daten geändert werden können soll ganz einfach sein...nicht wie eine comun. sondern einfach nur eine seite mit ein paar eingabefeldern und dropdownfeldern...natürlich dann nicht bei funpic :D

Login
testlogin ist user: admin pw: 1801

die sql datenbank: localhorst
http://phpmyadmin.stelldichvor.st.funpic.de/
user: stelldichvor
pw: abcdabcd
die tabelle: benutzerdaten

Die login.php
PHP:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "root", ""); 
if (!mysql_select_db ("stelldichvor", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "Id, Nickname, Nachname, Vorname ". 
  "FROM ". 
    "benutzerdaten". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 

  header ("Location: intern.php"); 
} 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>

formular.php
PHP:
<?php session_start (); ?>
<html> 
<head> 
  <title>Login</title> 
</head> 

<body> 
<?php 
if (isset ($_REQUEST["fehler"])) 
{ 
  echo "Die Zugangsdaten waren ungültig."; 
} 
?> 
<form action="login.php" method="post"> 
  Name: <input type="text" name="name" size="20"><br> 
  Kennwort: <input type="password" name="pwd" size="20"><br> 
  <input type="submit" value="Login"> 
</form> 
</body> 
</html>

würde mich sehr freuen wenn ich mit eurer hilfe zu einem Erfolg kommen würde :)
 
Werbung:
Hab vergessen zu sagen:
hänge jedes mal an der "selben" Stelle, wenn ich mich mit einem Testlogin einloggen will bekomme ich nur Fehlermeldungen.. probiert es bitte ma selbst aus, ich blick da nicht mehr durch, mir raucht der kopf... hab extra das Buch "besser PHP Programmieren" von Galileo Computing gekauft, welches mir mit 2kg auch zu keiner lösung verhilft :(
 
mag es auch nicht lernen, da ich es nur einmalig hier brauche...

Das motiviert nicht gerade zur Hilfe.

"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";

Hier bildest du den md5-Hash des Kennworts, das in der DB-Tabelle enthaltene Kennwort wurde aber in Reinschrift eingetragen und nicht als Hashwert. Der entsprechende Hashwert zu 1801 dürfte cd14821dab219ea06e2fd1a2df2e3582 sein. Ersetzt du 1801 in der Tabelle durch diesen Wert, sollte zumindest der Teil gehen.

Abgesehen davon ist dein Code anfällig für SQL Injections.
 
Werbung:
sorry, das war natürlich nicht ganz abweisend gg php gemeint ;-) :D

kann ich das nicht auch ganz anders machen...? Ich möchte ja später benutzer in die DB in reinschrift hizufügen können....
oder ist das ne einstellungssache, dass phpmyadmin die als diese automatisch abspeichern kann?

EDIT: habs grad geändert schaut ma selbst... läuft aber nicht :(

dankööö :)
 
Du musst in der mysql_connect-Funktion natürlich auch noch die korrekten Zugangsdaten für die DB eintragen.

Wenn du die Passwörter nicht als Hash in der DB speichern möchtest (was aus Datenschutzgründen nicht zu empfehlen ist), kannst du den Aufruf der md5-Funktion einfach aus dem PHP-Code entfernen.
 
PHP:
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
//also so:
"(Kennwort = '"($_REQUEST["pwd"])."')";

oder wie?^^

ach mist, ja das hab ich noch vergessen :D
 
Werbung:
Da fehlt ein Punkt.

PHP:
"(Kennwort = '" . $_REQUEST["pwd"] . "')";

Außerdem weise ich erneut auf die Anfälligkeit für SQL Injections hin.

Du solltest dringend die Grundlagen lernen, wenn du dich weiter damit beschäftigen willst. Sonst bekommst du kein sicheres Script auf die Reihe.
 
ok danke, ja das mag sein, aber bei meinem Vorhaben muss ich keinen Wert legen auf Sicherheit... jedenfals zu diesem Zeitpunkt... Ist nichts wichtiges was ich da schützen will... Später werd ich da ma nachhacken, aber im mom ist das unwichtig trotzdem danke für den hinweis, verstehe davon ja nichts!


aber ich habe noch ein Probelm (das selbe an demn ich die ganze woche verzweifle...)

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /usr/export/www/vhosts/funnetwork/hosting/stelldichvor/login.php on line 6

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /usr/export/www/vhosts/funnetwork/hosting/stelldichvor/login.php on line 7
Keine Verbindung zur Datenbank
ct.php


Jedes mal das selbe... ich bekomm es einfach ned hin...
wo verwechel ich hier blos was?
PHP:
$connectionid = mysql_connect ("localhorst", "stelldichvor", "abcdabcd"); 
if (!mysql_select_db ("stelldichvor", $connectionid))
Habe Probleme da das richtige jeweils einzutragen :(

hier nochmal das ganze (vielleicht kannst du/ihr mir ma auf die sprünge helfen wie ich richtig einsetzen muss)
PHP:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhorst", "stelldichvor", "abcdabcd"); 
if (!mysql_select_db ("stelldichvor", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "Id, Nickname, Nachname, Vorname ". 
  "FROM ". 
    "benutzerdaten". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "(Kennwort = '" . $_REQUEST["pwd"] . "')";  
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 

  header ("Location: intern.php"); 
} 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>
 
Werbung:
:D ich musste grad über mich selbst lachen... stimmt natürlich... hatte ich auch zu anfangs stehen
allerdings löst das nicht den Fehler ich verstehs nicht

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /usr/export/www/vhosts/funnetwork/hosting/stelldichvor/login.php on line 6

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /usr/export/www/vhosts/funnetwork/hosting/stelldichvor/login.php on line 7
Keine Verbindung zur Datenbank
ct.php
 
danke da währe ich echt nie drauf gekommen und ich dacht es läge an mir ._.

Keine Verbindung zur MySQL-Datenbank
Bei einigen User-Servern kommt es zu Problemen mit der Verbindung zur Datenbank. Teilweise kommt es auch wieder zu vollen Servern (errno 28).

nagut, also abwarten

danköö :)
 
Werbung:
Zurück
Oben