Mit Formular Mysql-DB auslesen und Werte ändern?

tetsuo666

Mitglied
Hallo liebe Tutorials-Gemeinde,

habe mich inzwischen etwas tiefer in die PHP/MySQL Materie einarbeiten können, aber an diesem Problem hänge ich seit Tagen fest (Suchen war bisher erfolglos, da mein "Problem" wohl eine Kombination mehrerer PHP/MySQL Anweisungen ist)

Zur Sache:

Ich habe eine Datenbank-Tabelle mit 11 Einträgen (inklusive id): Vorname, Nachname, Ort, usw...

Das Ganze stellt ein Profil dar, das der Benutzer nun, nachdem er sich eingeloggt hat, selbst ändern kann. Dabei sollen die "neuen" Werte gleich wieder in die DB übertragen werden. Leider scheitere ich schon ganz am Anfang. Ich denke ich muss folgendermassen vorgehen:
1) DB auslesen und in Formular bringen
2) Bei Änderung der Formularfelder neue Werte in DB schreiben mit UPDATE

So, ich hänge schon bei Punkt 1)

Was ich bisher geschafft habe ist lediglich die Ausgabe einer bestimmten id. (In diesem Fall die 1)
PHP:
<?php

$host = "xxx";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="komplett";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle WHERE location_id=1";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("$ausgabe[vorname]<br><br>$ausgabe[nachname]<br><hr>$ausgabe[strasse]<br><hr>$ausgabe[ort]<br><hr>$ausgabe[email]<br><hr>$ausgabe[lat]<br><hr>$ausgabe[lng]<br><hr>$ausgabe[sonstiges]<br><hr>$ausgabe[username]<br><br>$ausgabe[passwort]<br><br>");
 }
 

mysql_close ($dbverbindung)


?>


-Und leider weiss ich überhaupt nicht wie ich das Ganze in ein Formular bringen soll, dass ich nachher ändern kann!

-Ist es dann auch besser/einfacher die einzelnen Formularfelder zu editieren, oder kann man alle Eingaben auf einmal ändern und übergeben?

-Wie schaffe ich es das genau die id ausgegeben wird, mit der sich der User einloggt?


Dazu hier mein (stümperhaftes?) Login-Script:
PHP:
<?php
session_start();
?>

<?php
$verbindung = mysql_connect("xxx", "xxx" , "xxx")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("xxx") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM komplett WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
    {
    $_SESSION["username"] = $username;
	
	echo "Login zum Userprofil erfolgreich.";

    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch.<br> <a href=\"login_komplett.html\">Zurück</a>";
    }

?>

Seit Wochen arbeite ich jetzt an diesem Script, leider bin ich nun völlig überfordert, und weiss einfach nicht mehr was ich machen soll. Ich hoffe ich bekomme von Euch etwas Feedback,

Mit bestem Dank im Vorraus,

Tetsuo
 
Schau mal hier. Da hab ich vor Kurzem ein kurzes Script zum eintragen/loeschen und bearbeiten von Datenbankeintraegen hinterlassen. Vielleicht hilft Dir das ja weiter.
 
Hallo tetsuo666,

dies ist ein Script das ich mal für die
Bearbeitung von Gästebuch Einträgen
geschrieben habe. Alle Einträge werden
direkt in einem Formular ausgegeben und
können direkt bearbeitet und abgespeichert
werden.

Vielleicht hilft dir das ja weiter.

PHP:
// GAESTEBUCH EINTRAG BEARBEITEN //
if ($_REQUEST["cmd"]=="gaestebuch_bearbeiten") {

		//HIER DIE SERVERDATEN REIN
		
		mysql_select_db("datenbank", $verbindung);
		
		$sql="SELECT * FROM guest ORDER BY id DESC";
		$ergebnis=mysql_query($sql, $verbindung);
		
		while ($array = mysql_fetch_array($ergebnis)){
						
		
		echo "<form action='intern.php?cmd=gaestebuch_bearbeiten_do' method='post'>";
		echo "<table><tr><td width='166' align='right' valign='top'>Thema &rsaquo; &nbsp;&nbsp;</td>";
		echo "<td><input type='text' value='".$array["thema"]."' name='thema'><br><br></td>";
		echo "</tr><tr>";
		echo "<td align='right' valign='top'>Name &rsaquo; &nbsp;&nbsp;</td>";
		echo "<td><input type='text' value='".$array["name"]."' name='name'></td>";
		echo "</tr><tr>";
		echo "<td align='right' valign='top'>E-Mail &rsaquo; &nbsp;&nbsp;</td>";
		echo "<td><input type='text' value='".$array["mail"]."' name='mail'></td>";
		echo "</tr><tr>";
		echo "<td align='right' valign='top'>Text &rsaquo; &nbsp;&nbsp;</td>";
		echo "<td><textarea name='text' rows='5' cols='40'>".$array["text"]."</textarea><br>";
		echo "<input type='submit' value='Aendern &rsaquo;'><input type='hidden' name='id' value='".$array["id"]."'></td>";
		echo "</tr></table>";
		echo "</form>";
		}

}




// GAESTEBUCH EINTRAG BEARBEITEN AUSFUEHREN //
if ($_REQUEST["cmd"]=="gaestebuch_bearbeiten_do") {

		//HIER DIE SERVERDATEN REIN
		
		mysql_select_db("datenbank", $verbindung);
		
		$sql="UPDATE guest SET thema='".htmlentities($_REQUEST["thema"])."', name='".htmlentities($_REQUEST["name"])."', mail='".htmlentities($_REQUEST["mail"])."', text='".htmlentities($_REQUEST["text"])."' WHERE id=".$_REQUEST["id"]."";
		$ergebnis=mysql_query($sql, $verbindung);
		
	  if ($ergebnis){
			echo "&Auml;nderungen erfolgreich &uuml;bernommen.";
		}

}
 
@blount

Danke für deine Hilfe! :)



@Dennis Wronka

Wow, das hat mich jetzt mal ein ganzes Stück nach vorne gebracht...

Es werden tatsächlich die Werte ausgelesen, und ich kann sie bearbeiten und abspeichern.
Aber ein paar Unklarheiten bleiben noch:

1) Die INSERT Sache funktioniert nicht. Irgendwie kann ich keine neue Eingabe tätigen. Eigentlich bräuchte ich das eh nicht. Wie "kürzt" man des Skript zusammen damit nur die Editierfunktion bleibt, ohne dass ich ich wesentliche Funktionen mitentferne?
Habe die INSERT Funktion doch noch hinbekommen. Keine Ahnung woran es lag, habe einfach mal mit den Anführungsstrichen " bzw. ' rumgespielt, und voila, es geht.

2) Ich habe den Anfang deines Skriptes komplett entfernt, und die header('Location:'.$_SERVER['PHP_SELF']); etc
auskommentiert, da ich ansonsten nur Fehlermeldungen bekommen habe. (Header already sent in Line...)

Hier soweit mal mein (bzw. Dennis Wronkas) abgeänderter Code: Updatet!


Was ich immer noch nicht verstehe ist, wie ich jetzt nur demjenigen Benutzer die Möglichkeit zur Änderung gebe, der sich mit best. Benutzernamen und Passwort einloggt

PHP:
      <?php


 
      $db=mysql_connect('xxx','xxx','xxx');

      mysql_select_db('xxx',$db);

      if (isset($_POST['insert']))
 
          {


        mysql_query ("INSERT into `komplett` (vorname,nachname,strasse,ort,email,lat,lng,sonstiges,username,passwort) values ('".$_POST['vorname']."', '".$_POST['nachname']."', '".$_POST['strasse']."', '".$_POST['ort']."', '".$_POST['email']."', '".$_POST['lat']."', '".$_POST['lng']."', '".$_POST['sonstiges']."', '".$_POST['username']."', '".$_POST['passwort']."')",$db);      
 
          }

      elseif (isset($_POST['update']))

          {
  
              mysql_query("update `komplett` set `vorname`='".$_POST['vorname']."', `nachname`='".$_POST['nachname']."', `strasse`='".$_POST['strasse']."', `ort`='".$_POST['ort']."', `email`='".$_POST['email']."', `lat`='".$_POST['lat']."', `lng`='".$_POST['lng']."', `sonstiges`='".$_POST['sonstiges']."', `username`='".$_POST['username']."', `passwort`='".$_POST['passwort']."' where `location_id`='".$_POST['location_id']."'",$db);

            //  header('Location:'.$_SERVER['PHP_SELF']);
 
          }
  
      elseif (!empty($_GET['delete']))

          {
 
              mysql_query("delete from `komplett` where `location_id`='".$_GET['delete']."'",$db);
 
           //   header('Location:'.$_SERVER['PHP_SELF']);
  
          }
 
      elseif (!empty($_GET['edit']))

          {

              $results=mysql_query("select * from `komplett` where `location_id`='".$_GET['edit']."'",$db);

              $result=mysql_fetch_assoc($results);
  
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname" value="'.$result['vorname'].'"><br><br>';

              echo 'Nachname: <input type="text" name="nachname" value="'.$result['nachname'].'"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse" value="'.$result['strasse'].'"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort" value="'.$result['ort'].'"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email" value="'.$result['email'].'"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat" value="'.$result['lat'].'"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng" value="'.$result['lng'].'"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges" value="'.$result['sonstiges'].'"><br><br>';
			  
			  echo 'Username: <input type="text" name="username" value="'.$result['username'].'"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort" value="'.$result['passwort'].'"><br><br>';
  
              echo '<input type="hidden" name="location_id" value="'.$_GET['edit'].'"><br>';
 
              echo '<input type="submit" name="update" value="Update"><input type=button value="Zur&uuml;ck" onClick="history.back()">';

              echo '</form>';

          }
 
      else
  
          {
 
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname"><br><br>';

              echo 'Nachname: <input type="text" name="nachname"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges"><br><br>';
			  
			  echo 'Username: <input type="text" name="username"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort"><br><br>';
  
              echo '<input type="submit" name="insert" value="Insert">';
 
              echo '</form>';
 
              echo '<table border="1">';
 
              echo '<tr><th>Vorname</th><th>Nachname</th><th>Strasse</th><th>Ort</th><th>E-Mail</th><th>Latitude</th><th>Longitude</th><th>Sonstiges</th><th>Username</th><th>Passwort</th><th colspan="2">Aktion</th></tr>';
 
              $results=mysql_query("select * from `komplett`",$db);
  
              while ($result=mysql_fetch_assoc($results))

                  {
 
                      echo '<tr><td>'.$result['vorname'].'</td><td>'.$result['nachname'].'</td><td>'.$result['strasse'].'</td><td>'.$result['ort'].'</td><td>'.$result['email'].'</td><td>'.$result['lat'].'</td><td>'.$result['lng'].'</td><td>'.$result['sonstiges'].'</td><td>'.$result['username'].'</td><td>'.$result['passwort'].'</td><td><a href="'.$_SERVER['PHP_SELF'].'?edit='.$result['location_id'].'">Bearbeiten</a></td><td><a href="'.$_SERVER['PHP_SELF'].'?delete='.$result['location_id'].'">Loeschen</a></td></tr>';
 
                  }
  
              echo '</table>';

          }

      mysql_close($db);

      ?>
 
Zuletzt bearbeitet:
Mhmm... ich komme nur schwer voran. Ich habe jetzt versucht das oben gepostete Login-Script mit dem anderen zu verbinden, weil ich ja will dass der eingeloggte Benutzer nur SEINEN Datensatz ändern kann...

PHP:
<?php

session_start();

 
      $db=mysql_connect('xxx','xxx','xxx');

      mysql_select_db('xxx',$db);
	  
	  
	  
	  // ********************************* LoginSkript
	  
$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM komplett WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
    {
    $_SESSION["username"] = $username;
	
	echo "Login zum Userprofil erfolgreich.";

    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch.<br> <a href=\"profil3.html\">Zurück</a>";
    }
	  
	  
	  
	  
	  
	  //**************************************** LoginSkript
	  
	  
	  
	  
	  
	  

      if (isset($_POST['insert']))
 
          {


        mysql_query ("INSERT into `komplett` (vorname,nachname,strasse,ort,email,lat,lng,sonstiges,username,passwort) values ('".$_POST['vorname']."', '".$_POST['nachname']."', '".$_POST['strasse']."', '".$_POST['ort']."', '".$_POST['email']."', '".$_POST['lat']."', '".$_POST['lng']."', '".$_POST['sonstiges']."', '".$_POST['username']."', '".$_POST['passwort']."')",$db);      
 
          }

      elseif (isset($_POST['update']))

          {
  
              mysql_query("update `komplett` set `vorname`='".$_POST['vorname']."', `nachname`='".$_POST['nachname']."', `strasse`='".$_POST['strasse']."', `ort`='".$_POST['ort']."', `email`='".$_POST['email']."', `lat`='".$_POST['lat']."', `lng`='".$_POST['lng']."', `sonstiges`='".$_POST['sonstiges']."', `username`='".$_POST['username']."', `passwort`='".$_POST['passwort']."' where `location_id`='".$_POST['location_id']."'",$db);

            
 
          }
  
      elseif (!empty($_GET['delete']))

          {
 
              mysql_query("delete from `komplett` where `location_id`='".$_GET['delete']."'",$db);
 
           
  
          }
 
      elseif (!empty($_GET['edit']))

          {


// In der nächsten Zeile muss doch irgendwie noch ein AND rein und den Benutzer abfragen, oder ?

              $results=mysql_query("select * from `komplett` where `location_id`='".$_GET['edit']."'",$db); 

              $result=mysql_fetch_assoc($results);
  
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname" value="'.$result['vorname'].'"><br><br>';

              echo 'Nachname: <input type="text" name="nachname" value="'.$result['nachname'].'"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse" value="'.$result['strasse'].'"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort" value="'.$result['ort'].'"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email" value="'.$result['email'].'"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat" value="'.$result['lat'].'"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng" value="'.$result['lng'].'"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges" value="'.$result['sonstiges'].'"><br><br>';
			  
			  echo 'Username: <input type="text" name="username" value="'.$result['username'].'"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort" value="'.$result['passwort'].'"><br><br>';
  
              echo '<input type="hidden" name="location_id" value="'.$_GET['edit'].'"><br>';
 
              echo '<input type="submit" name="update" value="Update"><input type=button value="Zur&uuml;ck" onClick="history.back()">';

              echo '</form>';

          }
 
      else
  
          {
 
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname"><br><br>';

              echo 'Nachname: <input type="text" name="nachname"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges"><br><br>';
			  
			  echo 'Username: <input type="text" name="username"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort"><br><br>';
  
              echo '<input type="submit" name="insert" value="Insert">';
 
              echo '</form>';
 
              echo '<table border="1">';
 
              echo '<tr><th>Vorname</th><th>Nachname</th><th>Strasse</th><th>Ort</th><th>E-Mail</th><th>Latitude</th><th>Longitude</th><th>Sonstiges</th><th>Username</th><th>Passwort</th><th colspan="2">Aktion</th></tr>';
 
              $results=mysql_query("select * from `komplett`",$db);
  
              while ($result=mysql_fetch_assoc($results))

                  {
 
                      echo '<tr><td>'.$result['vorname'].'</td><td>'.$result['nachname'].'</td><td>'.$result['strasse'].'</td><td>'.$result['ort'].'</td><td>'.$result['email'].'</td><td>'.$result['lat'].'</td><td>'.$result['lng'].'</td><td>'.$result['sonstiges'].'</td><td>'.$result['username'].'</td><td>'.$result['passwort'].'</td><td><a href="'.$_SERVER['PHP_SELF'].'?edit='.$result['location_id'].'">Bearbeiten</a></td><td><a href="'.$_SERVER['PHP_SELF'].'?delete='.$result['location_id'].'">Loeschen</a></td></tr>';
 
                  }
  
              echo '</table>';

          }

      mysql_close($db);

      ?>

-Wie schaffe ich es dass nach einem fehlerhaften Login das restliche Skript (sprich die Datenausgabe) nicht angezeigt wird?

- Wie schaffe ich es dass der eingeloggte Benutzer nur seine Daten sieht (siehe Kommentar im Code: An dieser Stelle die SELECT Anweisung ändern?)

Bitte um Hilfe :confused:
 
Ich kann leider nicht überprüfen ob es funktioniert weil
mir deine Datenbank inklusive Daten nicht zu Verfügung
steht, aber ich denke vom Prinzip her müsste dir das
weiterhelfen.

PHP:
// Einträge werden nur angezeigt wenn User eingeloggt ist (!empty($_SESSION["username"]))
elseif (!empty($_GET['edit']) and !empty($_SESSION["username"]))

          {


// In der nächsten Zeile muss doch irgendwie noch ein AND rein und den Benutzer abfragen, oder ?
// Nur die Daten vom Benutzer werden angezeigt (username='".$_SESSION["username"])
              $results=mysql_query("select * from `komplett` where `location_id`='".$_GET['edit']."' AND username='".$_SESSION["username"]."'",$db);
 
Hallo blount,

Danke für Deine Antwort, leider stecke ich immer noch fest.Ich habe mal deine Veränderungen versucht einzubauen, aber es funktionert nicht.

PHP:
<?php

session_start();

 
      $db=mysql_connect('xxx','xxx','xxx');

      mysql_select_db('xxx',$db);
	  
	  
	  
	  // *********************************
	  
$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM komplett WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
    {
    $_SESSION["username"] = $username;
	
	echo "Login zum Userprofil erfolgreich. <br> <br><em>Leider noch nicht verfügbar</em>";

    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch.<br> <a href=\"profil3.html\">Zurück</a>";
    }
	  
	  
	  
	  
	  
	  //****************************************
	  
	  
	  
	  
	  
	  

      if (isset($_POST['insert']))
 
          {


        mysql_query ("INSERT into `komplett` (vorname,nachname,strasse,ort,email,lat,lng,sonstiges,username,passwort) values ('".$_POST['vorname']."', '".$_POST['nachname']."', '".$_POST['strasse']."', '".$_POST['ort']."', '".$_POST['email']."', '".$_POST['lat']."', '".$_POST['lng']."', '".$_POST['sonstiges']."', '".$_POST['username']."', '".$_POST['passwort']."')",$db);      
 
          }

      elseif (isset($_POST['update']))

          {
  
              mysql_query("update `komplett` set `vorname`='".$_POST['vorname']."', `nachname`='".$_POST['nachname']."', `strasse`='".$_POST['strasse']."', `ort`='".$_POST['ort']."', `email`='".$_POST['email']."', `lat`='".$_POST['lat']."', `lng`='".$_POST['lng']."', `sonstiges`='".$_POST['sonstiges']."', `username`='".$_POST['username']."', `passwort`='".$_POST['passwort']."' where `location_id`='".$_POST['location_id']."'",$db);

            
 
          }
  
      elseif (!empty($_GET['delete']))

          {
 
              mysql_query("delete from `komplett` where `location_id`='".$_GET['delete']."'",$db);
 
           
  
          }
 
     // elseif (!empty($_GET['edit']))
      elseif (!empty($_GET['edit']) and !empty($_SESSION["username"])) 
          {

            //  $results=mysql_query("select * from `komplett` where `location_id`='".$_GET['edit']."'",$db);
              $results=mysql_query("select * from `komplett` where `location_id`='".$_GET['edit']."' AND username='".$_SESSION["username"]."'",$db); 
              $result=mysql_fetch_assoc($results);
  
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname" value="'.$result['vorname'].'"><br><br>';

              echo 'Nachname: <input type="text" name="nachname" value="'.$result['nachname'].'"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse" value="'.$result['strasse'].'"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort" value="'.$result['ort'].'"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email" value="'.$result['email'].'"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat" value="'.$result['lat'].'"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng" value="'.$result['lng'].'"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges" value="'.$result['sonstiges'].'"><br><br>';
			  
			  echo 'Username: <input type="text" name="username" value="'.$result['username'].'"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort" value="'.$result['passwort'].'"><br><br>';
  
              echo '<input type="hidden" name="location_id" value="'.$_GET['edit'].'"><br>';
 
              echo '<input type="submit" name="update" value="Update"><input type=button value="Zur&uuml;ck" onClick="history.back()">';

              echo '</form>';

          }
 
      else
  
          {
 
              echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
 
              echo 'Vorname: <input type="text" name="vorname"><br><br>';

              echo 'Nachname: <input type="text" name="nachname"><br><br>';
			  
			  echo 'Strasse: <input type="text" name="strasse"><br><br>';
			  
			  echo 'Ort: <input type="text" name="ort"><br><br>';
			  
			  echo 'E-Mail: <input type="text" name="email"><br><br>';
			  
			  echo 'Latitude: <input type="text" name="lat"><br><br>';
			  
			  echo 'Longitude: <input type="text" name="lng"><br><br>';
			  
			  echo 'Sonstiges: <input type="text" name="sonstiges"><br><br>';
			  
			  echo 'Username: <input type="text" name="username"><br><br>';
			  
			  echo 'Passwort: <input type="text" name="passwort"><br><br>';
  
              echo '<input type="submit" name="insert" value="Insert">';
 
              echo '</form>';
 
              echo '<table border="1">';
 
              echo '<tr><th>Vorname</th><th>Nachname</th><th>Strasse</th><th>Ort</th><th>E-Mail</th><th>Latitude</th><th>Longitude</th><th>Sonstiges</th><th>Username</th><th>Passwort</th><th colspan="2">Aktion</th></tr>';
 
              $results=mysql_query("select * from `komplett`",$db);
  
              while ($result=mysql_fetch_assoc($results))

                  {
 
                      echo '<tr><td>'.$result['vorname'].'</td><td>'.$result['nachname'].'</td><td>'.$result['strasse'].'</td><td>'.$result['ort'].'</td><td>'.$result['email'].'</td><td>'.$result['lat'].'</td><td>'.$result['lng'].'</td><td>'.$result['sonstiges'].'</td><td>'.$result['username'].'</td><td>'.$result['passwort'].'</td><td><a href="'.$_SERVER['PHP_SELF'].'?edit='.$result['location_id'].'">Bearbeiten</a></td><td><a href="'.$_SERVER['PHP_SELF'].'?delete='.$result['location_id'].'">Loeschen</a></td></tr>';
 
                  }
  
              echo '</table>';

          }

      mysql_close($db);

      ?>

1) Wenn sich der User einloggt, sieht er trotzdem noch alle Datensätze, nicht nur seinen. Bearbeiten lässt sich zwar nur noch der eigene Datensatz, die anderen bleiebn leer, aber auch sehen sollte er die anderen ja nicht.
2)Jetzt habe ich wohl ein Session-Problem, denn wenn ich auf Bearbeiten klicke, und meinen "Zurück" Button benutze, zickt der Browser mit "Die Seite die Sie versuchen zu laden, wurde aus POST Daten erstellt, die im cache abgelaufen sind...."
3) Sollte ich nicht besser das Skript trennen? Also quasi eine Datei mit einloggen, wenn erfolgreich dann spring zu Datei "auslesen/verändern"? Ich schaffe es nämlich nicht es zu verhindern, dass bei fehlerhaftem Einloggen trotzdem alle Daten angezeigt werden...

:( Ich werd' verrückt...
 
Das ist ja auch ganz klar! Denn bei einer Fehlerhaften
Eingabe, also wenn $_SESSION["username"] nicht gesetzt
ist läßt du ja trotzdem alle daten ausgeben!

Du musst die Ausgabe am Ende des Scripts löschen.
Diesen Teil hier:

PHP:
$results=mysql_query("select * from `komplett`",$db);
  
              while ($result=mysql_fetch_assoc($results))

                  {
 
                      echo '<tr><td>'.$result['vorname'].'</td><td>'.$result['nachname'].'</td><td>'.$result['strasse'].'</td><td>'.$result['ort'].'</td><td>'.$result['email'].'</td><td>'.$result['lat'].'</td><td>'.$result['lng'].'</td><td>'.$result['sonstiges'].'</td><td>'.$result['username'].'</td><td>'.$result['passwort'].'</td><td><a href="'.$_SERVER['PHP_SELF'].'?edit='.$result['location_id'].'">Bearbeiten</a></td><td><a href="'.$_SERVER['PHP_SELF'].'?delete='.$result['location_id'].'">Loeschen</a></td></tr>';
 
                  }
  
              echo '</table>';


Am besten du Arbeitest mal das Tutorial von Karl Förster
über »[PHP/mySQL] Login-System mit Sessions« durch.
Das sollte dir ein wenig Klarheit verschaffen wie man dein
Problem umschichten kann.

LINK:
[PHP/mySQL] Login-System mit Sessions


mfg
 
Zuletzt bearbeitet:
Das Tutorial habe ich schon mal durchgemacht, nur deswegen bin ich ja überhaupt schon so weit gekommen :) Abe Du hast Recht, ich muss wohl noch tiefer in die Materie eindringen...

Update!

Jippieh, ich hab's geschafft...

Ich habe einfach nur das, was ich löschen sollte nochmal umgeschrieben:

Von
PHP:
$results=mysql_query("select * from `komplett`",$db);

Zu:
PHP:
$results=mysql_query("select * from `komplett` where username='".$_SESSION["username"]."'",$db);

Es funktioniert!
 
Zuletzt bearbeitet:
Sry,
mein Fehler, hatte nur flüchtig über dein Script
geschaut und fand es ein wenig verwirrend, weil
ich sonst eine andere Herangehensweise habe.

Also am Ende bitte wieder den Teil einfügen plus
der Modifizierung, nur die Daten für den eingeloggten
User auszugeben.

PHP:
//MODIFIZIERUNG
$results=mysql_query("select * from `komplett` WHERE username='".$_SESSION["username"]."'",$db);
  
              while ($result=mysql_fetch_assoc($results))

                  {
 
                      echo '<tr><td>'.$result['vorname'].'</td><td>'.$result['nachname'].'</td><td>'.$result['strasse'].'</td><td>'.$result['ort'].'</td><td>'.$result['email'].'</td><td>'.$result['lat'].'</td><td>'.$result['lng'].'</td><td>'.$result['sonstiges'].'</td><td>'.$result['username'].'</td><td>'.$result['passwort'].'</td><td><a href="'.$_SERVER['PHP_SELF'].'?edit='.$result['location_id'].'">Bearbeiten</a></td><td><a href="'.$_SERVER['PHP_SELF'].'?delete='.$result['location_id'].'">Loeschen</a></td></tr>';
 
                  }
  
              echo '</table>';

//edit
Alles klar. Ein Problem selber zu lösen macht eh mehr Spaß.;)
 
Zuletzt bearbeitet:
Zurück