Portal > Foren > PHP > PHP-Programmierung > Login-Bereich erweitern
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 06.05.2007, 17:17 Nach oben    #1
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard Login-Bereich erweitern

Hallo ich bräuchte da mal eure hilfe, ich hab leider nicht wirklich viel ahnung von php.
die Datenbank sieht so aus:

Tabelle user
_vorname, _name, _username, _passwort (verschlüsselt), _email, _sprache, _anzahllogins, _user_active, _user_art, _user_gruppe


Ich hab ein Login-Bereich, da mächte ich jetzt noch folgende Sachen haben:

der User soll, wenn er sich eingeloggt hat folgende Sachen ändern können:
_vorname, _name, _username, _passwort, _email, _sprache (soll dropdown menü sein)


Eine Admin-Bereich ist schon vorhanden, da möchte ich noch folgendes haben:
Im admin-bereich bei bearbeiten (datei heisst bearbeiten.php

Ich will als erstes ein dropdown menü wo alle user drin stehen ich einen auswählen kann dann auf user anzeigen klick,

dann werden die daten vom user angezeigt:

_vorname, _name, _username, _passwort (verschlüsselt), _email, _sprache, _anzahllogins, _user_active, _user_art, _user_gruppe

Die daten möchte ich dann ändern können


Und zuletzt möchte ich noch im Admin-Bereich user Löschen können.


Könnt ihr mir da bitte helfen, ich bekomms einfach net hin.

Ich benutz das Login-System von Ben nur ein bischen erweitert:
[PHP] Ein sessionbasiertes Loginsystem

für den Änderungsbereich im Admin-Bereich hab ich bis jetzt folgenden code (aber er ändert mir die Daten nicht ab es kommt auch keine Fehlermeldung
Code:
 <html> 
<head> 

</head> 

<link rel="stylesheet" type="text/css" href="format.css" >

<center>
<h1>User bearbeiten</h1>
</center>

<form action="" method="post">
<?php   
$connect_id = mysql_connect("localhost", "user","pw") or die ("Keine Verbindung moeglich");   
mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht");

$abfrage = "SELECT * from user ";
$result = mysql_query($abfrage,$connect_id);
while ($row = mysql_fetch_array ($result)) 
{
$_vorname = $row["_vorname"];
$_name = $row["_name"];
$_username = $row["_username"];
$_email = $row["_email"];
$_sprache = $row["_sprache"];
$_email = $row["_email"];
$_anzahlLogins = $row["_anzahlLogins"];
$_user_art = $row["_user_art"];
$_user_gruppe = $row["_user_gruppe"];
$_user_active = $row["_user_active"];


echo <<<ABC

<table>

<tr>
    <td><input type="text" name="vorname" size="12" value="$_vorname"></td>
    <td><input type="text" name="name" size="12" value="$_name"></td>
    <td><input type="text" name="username" size="20" value="$_username"></td>
    <td><input type="text" name="email" size="20" value="$_email"></td>
    <td><input type="text" name="sprache" size="10" value="$_sprache"></td>
    <td><input type="text" name="anzahlLogins" size="2" value="$_anzahlLogins"></td>
    <td><input type="text" name="user_art" size="5" value="$_user_art"></td>
    <td><input type="text" name="user_gruppe" size="7" value="$_user_gruppe"></td>
    <td><input type="text" name="user_active" size="1" value="$_user_active"></td>
</tr>

ABC;
}
?>
</table>
<?php 
if( isset($_POST['submit']) )
{
    $aendern = "UPDATE user Set _vorname='$_vorname', _name='$_name', _username='$_username', _email='$_email', _sprache='$_sprache', _anzahlLogins='$_anzahlLogins', _user_art='$_user_art', _user_gruppe='$_user_gruppe', _user_active='$_user_active', ";  
    $update = mysql_query($aendern) or die(mysql_error()); 
} 
 
 ?>

<input type="submit" value="Daten ändern"></form>

<? 
mysql_close($connect_id);  
?>

<br><br><br><br>
<hr align="left" height="10" color="#FF0000" noshande>

<TABLE>
<TR>
 <TD>Menü: </TD>
 <TD><a href="http://compoundbow83.co.funpic.de/passwortschutz/admin/verwalten.html" target="rechts">User verwalten</a> </TD>
 <TD> </TD> <TD> </TD> <TD> </TD> <TD> </TD>
 <TD> </TD>
</TR>
</TABLE>
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.05.2007, 21:55 Nach oben    #2
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 150
Standard

Hallo compoundbow83,

an sich formulierst du deine Wünsche doch exakt im obigen Text. Jetzt musst du das Ganze nur noch in PHP-Code gießen. Da du bereits ein fertiges Skript verwendest und dazu Fragen stellst, nehme ich an, dass du mit PHP noch nicht so bewandert bist. Ich würde dir hier dringend empfehlen Grundlagen zu lernen, denn die obigen Wünsche sind mit ein paar Zeilen Code locker abzuhandeln.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> http://adventure-php-framework.org)!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 11:50 Nach oben    #3
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Es stand ganz oben, dass ich nicht wirklich viel ahnung von php habe.

Wenn es ja laut dir kein Problem ist, warum schaust du dir dann meine code, den ich ja noch gepostet habe nicht an und hilfst mir weiter?
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 12:09 Nach oben    #4
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Auch wenn anderen meckern: ich hatte grade etwas Zeit und Lust:

Da ich hoffe dein Adminbereich ist sicher, hab ich erstmal auf Sicherheitsfeatures verzichtet, aber damit sollte es definitiv noch übergearbeitet werden.

PHP-Code:
<?php
$connect_id 
mysql_connect("localhost""root","") or die ("Keine Verbindung moeglich");   
mysql_select_db("test") or die ("Die Datenbank existiert nicht");

$_vorname $_POST["vorname"];
$_name $_POST["name"];
$_username $_POST["username"];
$_email $_POST["email"];
$_sprache $_POST["sprache"];
$_anzahlLogins $_POST["anzahlLogins"];
$_user_art $_POST["user_art"];
$_user_gruppe $_POST["user_gruppe"];
$_user_active $_POST["user_active"];
$_id $_POST["id"];
if( isset(
$_POST['submit']) )
{
    echo 
"abgeschickt";
    foreach (
$_id as $key => $id){
        echo 
"id:".$id;
        
$aendern "UPDATE user Set _vorname='$_vorname[$id]', _name='$_name[$id]', _username='$_username[$id]', _email='$_email[$id]', _sprache='$_sprache[$id]', _anzahlLogins='$_anzahlLogins[$id]', _user_art='$_user_art[$id]', _user_gruppe='$_user_gruppe[$id]', _user_active='$_user_active[$id]' WHERE id = $id;";  
        
$update mysql_query($aendern) or die(mysql_error());
    }
}
?>

<html> 
<head> 

</head> 

<link rel="stylesheet" type="text/css" href="format.css" >

<center>
<h1>User bearbeiten</h1>
</center>

<form action="" method="post">
<?php   
$abfrage 
"SELECT * from user ";
$result mysql_query($abfrage,$connect_id);
echo 
"<table>";
while (
$row mysql_fetch_array ($result)) 
{
$_id $row["id"];
$_vorname $row["_vorname"];
$_name $row["_name"];
$_username $row["_username"];
$_email $row["_email"];
$_sprache $row["_sprache"];
$_email $row["_email"];
$_anzahlLogins $row["_anzahlLogins"];
$_user_art $row["_user_art"];
$_user_gruppe $row["_user_gruppe"];
$_user_active $row["_user_active"];

echo <<<ABC
<tr>
    <td><input type="text" name="vorname[$_id]" size="12" value="$_vorname"></td>
    <td><input type="text" name="name[$_id]" size="12" value="$_name"></td>
    <td><input type="text" name="username[$_id]" size="20" value="$_username"></td>
    <td><input type="text" name="email[$_id]" size="20" value="$_email"></td>
    <td><input type="text" name="sprache[$_id]" size="10" value="$_sprache"></td>
    <td><input type="text" name="anzahlLogins[$_id]" size="2" value="$_anzahlLogins"></td>
    <td><input type="text" name="user_art[$_id]" size="5" value="$_user_art"></td>
    <td><input type="text" name="user_gruppe[$_id]" size="7" value="$_user_gruppe"></td>
    <td><input type="text" name="user_active[$_id]" size="1" value="$_user_active">
    <input type="hidden" name="id[]" value="$_id"></td>
</tr>
ABC;
}
?>
</table>

<input type="submit" name="submit" value="Daten ändern"></form>

<? 
mysql_close($connect_id);  
?>

<br><br><br><br>
<hr align="left" height="10" color="#FF0000" noshande>

<TABLE>
<TR>
 <TD>Menü: </TD>
 <TD><a href="http://compoundbow83.co.funpic.de/passwortschutz/admin/verwalten.html" target="rechts">User verwalten</a> </TD>
 <TD> </TD> <TD> </TD> <TD> </TD> <TD> </TD>
 <TD> </TD>
</TR>
</TABLE>
Wichtig ist jetzt, dass du dir die Unterschiede anschaust und versuchst sie zu verstehen. Es bringt dir nichts wenn du das jetzt einfach nur kopierst und hoffst, dass ich oder ein anderer nochmals Zeit hat das mal für dich zu machen. Das ist ne Ausnahme.
Bei Fragen dazu einfach reinhauen, ich antworte. Versprochen
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 12:28 Nach oben    #5
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Vielen Dank für deine Hilfe, aber jetzt kommt der Fehlder hier:

abgeschicktid:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Und noch eine frage dieses [$id] bedeutet des, dass er den user genau identifizieren kann?

Geändert von compoundbow83 (07.05.2007 um 12:39 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 14:25 Nach oben    #6
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Jain. Jede Tabelle sollte einen Primary Key haben um jeden Datensatz eindeutig identifizieren zu können. Dazu musst du aber deine Tabelle um diese Spalte erweitern.

Diese Testausgabe "abgeschickt..." kannst du rausnehmen, sie diente nur dazu, sicher zu gehen das die schleife das macht was sie soll

Das die Namen der Input-Felder nun "bla[$id]" heißen ermöglich unteranderem, dass die Daten in einem Array gespeichert werden und anhand dieser $id auch direkt angesprochen werden können.

Mit deinem Skript oben hättest du z.B. mit jedem Eintrag alles in der Datenbank überschrieben, du hättest also x identische Einträge.

Durch die $id und die Erweiterung des SQL-Updates um die WHERE-Klausel sorgst du dafür, dass nur der Eintrag mit der $id auch bearbeiten und geupdated wird.
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 14:43 Nach oben    #7
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

ich habe schon eine spalte mit _id un die wird auch automatisch vergeben

jetzt kommt der fehlder:

Warning: Invalid argument supplied for foreach() in /usr/export/www/vhosts/funnetwork/hosting/compoundbow83/passwortschutz/admin/bearbeiten.php on line 29

und er ändert mich nichts in der Datenbank

Code:
<html> 
<head> 

</head> 

<link rel="stylesheet" type="text/css" href="format.css" >

<center>
<h1>User bearbeiten</h1>
</center>

<?php
$connect_id = mysql_connect("localhost", "user","pw") or die ("Keine Verbindung moeglich");   
mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht");

$_vorname = $_POST["vorname"];
$_name = $_POST["name"];
$_username = $_POST["username"];
$_email = $_POST["email"];
$_sprache = $_POST["sprache"];
$_anzahlLogins = $_POST["anzahlLogins"];
$_user_art = $_POST["user_art"];
$_user_gruppe = $_POST["user_gruppe"];
$_user_active = $_POST["user_active"];
$_id = $_POST["_id"];
if( isset($_POST['submit']) )
{
    echo "abgeschickt";
    foreach ($_id as $key => $id){
        echo "id:".$id;
        $aendern = "UPDATE user Set `_vorname`='$_vorname[$id]', `_name`='$_name[$id]', `_username`='$_username[$id]', `_email`='$_email[$id]', `_sprache`='$_sprache[$id]', `_anzahlLogins`='$_anzahlLogins[$id]', `_user_art`='$_user_art[$id]', `_user_gruppe`='$_user_gruppe[$id]', `_user_active`='$_user_active[$id]' WHERE `_id` = $id";  
        $update = mysql_query($aendern) or die(mysql_error());
    }
}
?>

Geändert von compoundbow83 (07.05.2007 um 14:53 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 17:06 Nach oben    #8
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

wie sieht denn deine Tabelle mit den inputs aus? Das sieht ja fast so aus, als wenn du das hiddenfeld, das ich eingefügt habe, nicht übernommen hast. Dann wäre $_POST["_id"] leer und würde die Fehlermeldung erklären.
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 18:07 Nach oben    #9
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

ne des hat schon gepasst hab aber den fehler gefunden

es hat einmal des _ vor dem id gefehlt.

Vielen danke für deine hilfe

Jetzt probier ich grad das für den admin-bereich zu schreiben wo ich user löschen kann, aber da weiss ich jetzt net wirklich, wie
ich des realisieren soll es muss ja dann hinter jeden user ein radiobutton sein den ich dann anklicken kann un dann auf den button
user löschen klicken. Aber wie sag ich dem ganzen, dass er den angeklickten user löschen soll?

Hier mal des was ich probiert habe, aber er löscht mir die user nicht:

Code:
<html> 
<head> 

</head> 

<link rel="stylesheet" type="text/css" href="format.css" >

<center>
<h1>User löschen</h1>
</center>

<?php   
$connect_id = mysql_connect("localhost", "user","pw") or die ("Keine Verbindung moeglich");   
mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht");   


  $abfrage = "SELECT _vorname, _name, _username FROM user ORDER BY _vorname ASC";  
  $ergebnis = mysql_query($abfrage, $connect_id); 
  if( mysql_error($connect_id) ) die(mysql_error($connect_id));   
  $felder = mysql_num_fields($ergebnis);  
  $daten = mysql_num_rows($ergebnis);   
  ?> 
   
<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 

  <table>  
<tr>  
<?PHP  
for ($i = 0;$i < $felder;$i++) {  
    $feldname = mysql_field_name($ergebnis, $i);  
    echo "<th><b>". preg_replace("#^_#", "", $feldname) ."</b></th>";  
    }  
?>  
</tr>  
<?PHP  


while ($row = mysql_fetch_assoc($ergebnis)) 
{  
  echo "<tr>";  
  foreach ($row as $key => $value) 
  {  
      echo "<td style='border: 1px solid black; padding: 5px'>$value</td>";  
  }  
  echo "<td><input type='radio' name='user' value='". $row['_username'] ."'></td> </tr>";  
}  
?>  

</table> 

<?php 
if( isset($_POST['submit']) )
{
    $loeschen = "DELETE FROM user WHERE _username = '". $_row['_username'] ."' LIMIT 1";  
    $update = mysql_query($loeschen) or die(mysql_error()); 
}  
 ?> 

<input type="submit" name="submit" value="User löschen" /> </form> 

<? 
mysql_close($connect_id);  
?>
hab ich natürlich nicht selber geschrieben

Geändert von compoundbow83 (07.05.2007 um 18:37 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 19:17 Nach oben    #10
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard

error_reporting
Du solltest zu Beginn des Skriptes folgendes stehen haben:
PHP-Code:
<?php
  error_reporting
(E_ALL);
?>
Dann werden dir Fehler im PHP-Code angezeigt. Dann weißt du, was du noch beseitigen musst.
http://de2.php.net/error_reporting
Ebenso kann man das auch in die config-Datei schreiben, wenn diese auf jeder Seite zu Beginn eingebunden wird.
Mögliche Fehler die dann auftreten und wie man sie beheben kann:
Notice: Use of undefined constant ...
Notice: Undefined variable ...
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 19:24 Nach oben    #11
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

ok jetzt weiss ich dass es diese Zeile ist

$loeschen = "DELETE FROM user WHERE _username = '". $_row['_username'] ."' LIMIT 1";

weil diese Fehlermeldung kommt:

Notice: Undefined variable: _row in /usr/export/www/vhosts/funnetwork/hosting/compoundbow83/passwortschutz/admin/loeschen.php on line 58

die Frage ist jetzt nur, wo da der Fehler ist!
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 19:52 Nach oben    #12
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Undefined Variable heisst ganz klar, das diese dort das erste mal auftaucht und nirgendwo vorher einen Wert bekommen hat.
Das dürfte dir erklären, warum er nichts löscht. Denn er würde nun wahrscheinlich den User löschen, der keinen Usernamen hat. Denn uninitialisierte Variablen haben bei PHP meistens einen leeren String als Wert (bin mir aber nicht ganz sicher).

Ansonsten solltest du versuchen das gelernte (bezogen auf ID und eineindeutige Identifizierung eines Users) in dein Skript umsetzen.

Als weitere wichtige Verbesserung solltest du versuchen, PHP-Code und HTML zu trennen, damit Fehlersuche vereinfacht wird und schneller geht.

Wie das aussehen könnte sieht man hier (womit zeitgleich dein Skript funktioniert
PHP-Code:
<?php
    error_reporting
(E_ALL);   
    
$connect_id mysql_connect("localhost""root""dp-media") or die ("Keine Verbindung moeglich");   
    
mysql_select_db("test") or die ("Die Datenbank existiert nicht");   
    
    if(isset(
$_POST['submit'])) {
        
$_id $_POST['user'];
        
$loeschen "DELETE FROM user WHERE id = '"$_id ."';";  
        
$update mysql_query($loeschen) or die(mysql_error()); 
    }  
    
    
    
$abfrage "SELECT id, _vorname, _name, _username FROM user ORDER BY id ASC";  
    
$ergebnis mysql_query($abfrage$connect_id); 
    if(
mysql_error($connect_id)) {
        die(
mysql_error($connect_id));
    }
    
$felder mysql_num_fields($ergebnis);  
    
$daten mysql_num_rows($ergebnis);   
?>
<html> 
<head> 

</head> 

<link rel="stylesheet" type="text/css" href="format.css" >

<center>
<h1>User löschen</h1>
</center>
 
<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
    <table>  
        <tr>  
            <?php
            
for ($i 0$i $felder$i++) {  
                
$feldname mysql_field_name($ergebnis$i);  
                echo 
"<th><b>"preg_replace("#^_#"""$feldname) ."</b></th>";  
            }  
            
?>  
        </tr>  
        <?php
            
while ($row mysql_fetch_assoc($ergebnis)) {  
                echo 
"<tr>";
                foreach (
$row as $key => $value
                {
                    echo 
"<td style='border: 1px solid black; padding: 5px'>$value</td>";
                }
                echo 
"<td><input type='radio' name='user' value='"$row['id'] ."'></td></tr>";
            }
        
?>
    </table>
    <input type="submit" name="submit" value="User löschen" />
</form> 

<?php 
    mysql_close
($connect_id);  
?>
Allerdings finde ich es schade, dass du das Skript nicht selbst geschrieben hast. So schwer ist das auch für einen Anfänger nicht und gerade bei solchen Kleinigkeiten lernt man gut die Grundlagen.

So ab hier helf ich nur noch auf die Sprünge und liefer keinen kompletten Code mehr. Irgendwie müssen wir dich ja zwingen, auch mal selbst was zu lernen
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 20:11 Nach oben    #13
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Vielen vielen Dank.

Jetzt bin ich grad am überlegen, wie ich den Code vom Userbearbeiten abändern muss, für die Profil-Änderung (also, dass jeder User seine eigenen Daten ändern kann)
Da muss ich ja erstmal sagen, dass er nur die Daten vom eingeloggten User zeigen soll.

Ich hab es jetzt mal damit versucht:

Code:
$abfrage = "SELECT * from user WHERE _id = '". mysql_real_escape_string($_SESSION['id']) ."' ";
aber leider bringt er mit da garkeinte Daten

Geändert von compoundbow83 (07.05.2007 um 20:20 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 20:19 Nach oben    #14
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Das ist richtig.
Aber so wie du erkennst, dass du als Admin eingeloggt bist, so kannst du auch erkennen, dass es der oder der user ist.
Da kommen also Sessions ins Spiel

Also als Ideenstütze:
In der Session speicherst du die ID des eingeloggten Users (oder in Cookies, das geht auch).
Dann kannst du jederzeit darauf zugreifen und deine SQL-Abfragen durch die schönen WHERE-Klauseln so schneidern, dass nur die für den User wichtigen Daten angezeigt werden.
Das wars dann auch schon.

Viel Spass damit.
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 20:24 Nach oben    #15
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Des hab ich ja versucht, aber er bringt mir ja die Daten nicht.

Die Session von der ID würd beim einloggen so gespeichert:

$_SESSION['id'] = $user->_id;

aber warum zeigt er mir die Daten vom User nicht an?

Geändert von compoundbow83 (07.05.2007 um 21:28 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 21:36 Nach oben    #16
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

ok, dann lass dir mit doch mal mit echo ausgeben, ob in der Session etwas gespeichert ist?!

PHP-Code:
<?php
echo "Id in Session: [".$_SESSION['id']."]";
?>
Oder du lässt dir gleich alles was in der Session steht ausgeben.
Das wäre:
PHP-Code:
<?php
print_r
($_SESSION);
?>
Dort müsste dann wenigstens die Session_id zurückkommen. Wenn das nichts anzeigt, dann wird nicht mal eine Session gestartet.

//edit: ich geh jetzt erstmal heim, bin noch auf arbeit. bis denne
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 21:39 Nach oben    #17
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Hm komisch es kommt des bei raus:

Id in Session: []
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 21:45 Nach oben    #18
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Dann klappt das mit deiner Session so ganz und gar nicht.
Kannst ja mal zeigen wo du deine Session startest.
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 21:48 Nach oben    #19
Benutzer
 
Registriert seit: 10.04.2007
Beiträge: 37
Standard

Guck mal, des is ja schon bei dem Login von hier drin:

[PHP] Ein sessionbasiertes Loginsystem

unter validateLogin.inc.php

halt mal, was bedeutet Session starten?

Edit: hab den Fehler jetzt gefunden.

Jetzt aber noch ne Frage, wie mach ich des jetzt, dass die User ihr eingegebene Passwort sehen?

Geändert von compoundbow83 (07.05.2007 um 21:51 Uhr)
compoundbow83 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.05.2007, 21:52 Nach oben    #20
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

du musst bei jeden skript das du aufrufst irgendwo vor der ersten Ausgabe ein session_start() haben. Denn nur dann wird die Session initialisiert und du kannst auf Werte zugreifen oder Werte zuweisen.
Zitat:
Zitat von WarrenFaith
Da kommen also Sessions ins Spiel
Dringend den Link durchlesen. Und den hier auch: [PHP] Daten per Session übergeben
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen