Datensätze in DB eintragen und ändern

Benihipe

Grünschnabel
Hallo ich bin gerade dabei für den Unterricht in der Uni eine Website zu schreiben. Ich habe mir ein Login gebastelt und eine Registrieung. Jetzt habe ich das Problem, dass ich den Benutzern bisher nur einen Nickname und ein Passwort zugewiesen habe. Ich habe deswegen weitere Tabellen erstellt, die über eine userID verbunden werden sollen.Ich habe die Tabelle "Benutzer" erstellt, die userID (Primary Key), name(Nickname) und das Passwort enthält. Diese werden bei der Registrierung festgelegt und die userID automatisch zugewiesen. Jetzt möchte ich diese über die "userID" mit der Tabelle "Daten" verbinden, welche die userID (Primary Key) enthält, den Vornamen, den Nachnamen und den Geburtstag. Desweiteren habe ich noch die Tabelle "Kontaktdaten" erstellt in der wieder die userID als Primary key angegeben ist und dazu noch Straße, Hausnummer, Postleitzahl und Ort zugewiesen werden soll.
Mein Problem liegt jetzt darin, dass ich die daten gerne über ein Formular eintragen lassen würde. Danach soll die möglichkeit bestehen diese ausgeben zu lassen und auch wieder ändern zu können. Das ganze sollte ohne cookies geschehen.
Ich hoffe jemand kennt ein tolles tutorial oder könnte mir die wichtigsten schritte erklären =)

Danke schonmal im Vorraus und schöne Weihnachten:-)
 
soooooooo =) ich hab mich mal wieder weiter mit meinem PHP-Dokument beschäftigt .
Ich hab das hier geschrieben :


pw_kontrolle.php :
PHP:
<?php session_start();

/*
Prüfung Login-Daten
*/
#echo 'Nutzer: '.$_POST['benutzer'].'<br>';
#echo 'Passwort: '.$_POST['passwort'].'<br>';


include( 'db_connect.inc.php' );

$sql = 'SELECT * FROM benutzer';
$result = db_query( 'Web', $sql );

//Startwert Prüfvariable
$iO=0;

//Durchlauf $user[1...3]
while( $nutzer = mysql_fetch_array( $result ) ) {
  if( $_POST['benutzer'] == $nutzer['name']) {
    $iO=1; //Nutzer stimmt überein
    if ( md5( $_POST['passwort'] ) == $nutzer['passwort']) {
      $iO=2; //Nutzer und Passwort stimmt überein
    }
  }
}

$_SESSION['benutzer'] = $_POST['benutzer'];
if ( $iO == 0 ) { //Ausgabe für alle Prüffälle
  $_SESSION['mitteilung'] = 'Der Benutzer '.$_POST['benutzer'].' ist nicht bekannt.';
  header( 'Location: z-indexlogin.php' );
  //Verkettung und Ausgabe einer Zeichenkette
} elseif( $iO == 1 ) {
  $_SESSION['mitteilung'] = 'Das Passwort '.$_POST['passwort'].' ist falsch.';
  header( 'Location: z-indexlogin.php' );
} else  {
	$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("Web", $connectionid))
{ 
	die ("Keine Verbindung zur Datenbank");
}

$sql = "SELECT ".
	"*".
	"FROM ".
	"benutzer ".
	"WHERE ".
	"(name like '". $_REQUEST["name"]."') AND ".
	"(passwort = '".md5 ($_REQUEST["passwort"] )."')";
	
	$result = mysql_query ($sql);
	$data = mysql_fetch_array ($result);
	$_SESSION["user_id"] = $data["userID"];
	$_SESSION["user_nickname"] = $data["name"];


	
	 $_SESSION["sessionID"]=session_id();
	 header( 'Location: intern.php' );

}
?>

und


intern.php
PHP:
<?php  session_start ();
include 'checkuser.php' ;
?>
<html>
<head>
  <title>Interne Seite</title>
</head>
<body>
  BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br> 

  <hr>
  <a href="logout.php">Ausloggen</a>
</body>
</html>

mein Problem liegt jetzt darin, dass Ich ja im letzten Teil der pw_kontrolle die Datensätze aus meiner DB holen will und diese als session variablen eintragen lassen will. Jedoch wird auf der intern Seite nichts ausgegeben.Ich wollte dem jeweiligem Benutzer seine UserID anzeigen lassen (welche automatisch zugeteilt wurde und seinen Benutzernamen. Weiß jemand wo mein Fehler liegt ?

MFG Ben
 
Hallo ich hab die überleitung zur anderen seite aus dem php dokument genommen und mit dem befehl var_dump($data); hat er auf der seite bool(false) ausgegeben mehr nicht
 
Ich hab grad nochmal probiert mir die daten aus der SQL abfrage anzeigen zu lassen, indem ich das ende so umgeschrieben hab:

PHP:
$sql = "SELECT ".
	"* ".
	"FROM ".
	"benutzer ".
	"WHERE ".
	"(name = '". $_REQUEST["name"]."') AND ".
	"(passwort = '".md5 ($_REQUEST["passwort"] )."')";

echo '$sql=#'.$sql.'#';exit();

er zeigte mir dann

$sql=#SELECT * FROM benutzer WHERE (name = '') AND (passwort = '861a744bccc0da5432f097d5838e4b83')#

an da hab ich doch irwo nen fehler bei dem namen nur wo ?

MFG Ben
 
Im Script hast du $_REQUEST["name"]. Im Kommentar zum Script schreibst du aber $_POST['benutzer']. Wie heisst den das Feld im Formular?
 
du hast den fehler gefunden :) ich hatte es benutzer genannt . Jetzt funktioniert der ganze spaß.
Ich hoffe mir passieren nich mehr solche fehler.
 
Zurück