php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.09.2011, 14:07  
Neuer Benutzer
 
Registriert seit: 19.09.2011
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Nokii befindet sich auf einem aufstrebenden Ast
Standard Login Formular / etwas stimmt damit nicht :/

Also erstmal hallo liebe PHP gemeinde ,

ich habe ein login script erstellt, mit my sql etc,das klappt auch alles gut .
aber,nun wenn ein Benutzer sich einloggt soll er in einer Tabelle dargestellt alle Benutzer sehen,und die Daten(geburtstag etc.)
Und,wenn der Benutzer eingeloggt ist dann kann er seinen Namen anklicken und wird zu einem Formular weitergeleitet wo er sein pw,namen etc ändern kann,da komme ich nicht weiter.
Ich würde mich über jede Hilfe freuen
Hier mal der relevante Code:
geheim php:
PHP-Code:
<?php
error_reporting
(E_ALL);
session_start();
?>

<?php

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

mysql_connect("localhost""***","***") or die ("Keine Verbindung moeglich");
mysql_select_db("homepage") or die ("Die Datenbank existiert nicht.");
$abfrage "SELECT username, password FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);

if(
$row->password == $password) {
    echo 
"Login erfolgreich.";
    
$_SESSION['username'] = $username;
} else {
    echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
    if (isset(
$_SESSION['username'])) {
        unset(
$_SESSION['username']);
    }
}

if (isset(
$_SESSION['username'])) {
    
printuser($username);
}

function 
printuser($username) {

    

    
$abfrage "SELECT * FROM login";
    
$ergebnis mysql_query($abfrage);
echo 
"<h1>Users:</h1>";
    while(
$row mysql_fetch_object($ergebnis)) {

        echo 
'<table border="5px"><u><tr><td>';
        if (
$row->username == $username) {
            echo 
'<a href="datenaendern.html?username='.$row->username.'">'.$row->username.'</a>';
        } else {
            echo 
$row->username;    
}
            echo 
"</u></td></tr> <tr><td>123</td></tr></li><br />";
            echo 
"</table>";
    }
}

?>
datenaendern html:
Code:
<form method="post" action="update.php"> <pre>
 Neuer Name         : <input type="text" name="username" size="40" maxlength="80" />
  Neues Geburtsdatum    : <input type="text" name="birthday" size="40" maxlength="80" />
    Neuer Ort            : <input type="text" name="location" size="40" maxlength="80" />
 Neues  Passwort     : <input type="password" name="password" size="8" maxlength="8" />
 Neue Postleihzahl : <input type="text" name="postal_code" size="32" maxlengh="8" />
<input type="submit" value="Absenden">
</pre> </form>
update php:
PHP-Code:
<!-update.php->

<html>

<body>
<center>
<?PHP
session_start
();

$username $_GET["username"];

if (isset(
$_SESSION['username']) AND $_SESSION['username'] == $username) {
    echo 
$username;
} else {
    echo 
"falscher nutzer";
    die();
}
?>
<html>
 <head>
  <title>Update Formular</title>
 </head>
<body>


<form action="<?php echo $PHP_SELF?>" method="post">
<?php
$server 
localhost;
$benutzer = ***;
$passwort = ***;
$db homepage;


$verbinden =  mysql_connect$server$benutzer$passwort  ) or die( "Momentan leider keine Verbindung zum Server. Wir bitten um Ihr Verstaendnis!" );
mysql_select_db$db ) or die ( "Server Error. Wir bitten um Ihr Verstaendnis" );

if(isset(
$_POST["submitted"])) {
    
$_sql "UPDATE login";
    
$_sql .= " SET username='".$_POST["username"]."'";
    
$_sql .= " SET password='".$_POST["password"]."'";
    
$_sql .= " SET birthday='".$_POST["birthday"]."'";
    
$_sql .= " SET location='".$_POST["location"]."'";
    
$_sql .= " SET postal_code'".$_POST["postal_code"]."'";   
    
$_sql .= " WHERE user_id='".$_POST["user_id"]."'";
    
mysql_query($_sql);
} else {
    
$ergebnis mysql_query"SELECT * FROM login ORDER BY username" );

    while ( 
$datensatz mysql_fetch_array$ergebnis ) ) {
        
$id $datensatz["user_id"];
      
$username $datensatz["username"];
      
$password $datensatz["password"];
      
$birthday $datensatz["birthday"];
      
$location $datensatz["location"];
      
$postal_code $datensatz["postal_code;"];
?>
<table>
 <tr>
  <td valign="top"><input type="hidden" name="user_id" size="35" value="<?php echo $user_id?>"></td>
  <td valign="top"><input type="text" name="username" size="35" value="<?php echo $username?>"></td>
  <td valign="top"><input type="text" name="password" size="35" value="<?php echo $password?>"></td>
  <td valign="top"><input type="text" name="birthday" size="35" value="<?php echo $birthday?>"></td>
  <td valign="top"><input type="text" name="location" size="35" value="<?php echo $location?>"></td>
  <td valign="top"><input type="text" name="postal_code" size="35" value="<?php echo $postal_code?>"></td>
  <td><p></td>
 </tr>                   
</table>

<?php
    
}

mysql_close($link2);
     
?>
<input type="submit" name="submitted" value="&Uuml;bernehmen">
</form>
<?php

}

?>
</html>
Nokii ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.09.2011, 14:10  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Wo klemmt es denn genau ? Fehlermeldungen ?

Bisher seh ich da nur eine "Wie-Frage" - und die musst du selbst lösen!
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:14  
Neuer Benutzer
 
Registriert seit: 19.09.2011
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Nokii befindet sich auf einem aufstrebenden Ast
Standard

Fehlermeldungen nicht,nur werden die Daten in mysql nicht geändert.
und,wenn ich das Formular abschicke dann gibt PHP aus:Falscher Nutzer.
Nokii ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:18  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

joa .. das liegt wohl an deinem UPDATE-SQL-Kram ....

Code:
UPDATE tabelle SET
 spalte1=Wert1, 
 spalte2=Wert2
WHERE 
  Bedingung
vergleich dies mal mit deinem Update - und nebenher schaust du dir bitte noch SQL-Injection an und verwendest mysql_real_escape_string, um die Daten zu behandeln, die du DIREKT aus Eingabefeldern in die Datenbank schreibst

im übrigen bekommst du nur deshalb keine Fehlermeldung, weil du die Datenbank erst gar nicht danach fragst ...
PHP-Code:
mysql_query($_sql); 
ändere diese Zeile mal in
PHP-Code:
mysql_query($_sql) or die(mysql_error()); 
- und die Datenbank dürfte was zum meckern finden
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:22  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

PHP-Code:
<?PHP
session_start
();

$username $_GET["username"];

if (isset(
$_SESSION['username']) AND $_SESSION['username'] == $username) {
    echo 
$username;
} else {
    echo 
"falscher nutzer";
    die();
}
?>
Dann würde ich mal mit var_dump() vor der Abfrage prüfen was in den Variablen steht...

Außerdem ist das Murks. Die Session wird serverseitig gespeichert d.h. eine Manipulation von außen ist nur über dein Script oder einen Cookie Diebstahl möglich. Da brauchst du den Browser den Usernamen nicht nochmal via GET senden zu lassen...

PHP-Code:
<?php echo $PHP_SELF?>
Ganz schlimmer Fehler.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:29  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Dark - ich glaub bei dem Teil gehts darum, dass der User in der Tabelle zwar alle User sieht, aber nur seine eigenen Daten ändern können soll, weswegen der per get übergebene Username( = der gewählte User ausm Formular) gegen den Session-User geprüft wird....

aber das php-self ding ist tatsächlich Müll ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:41  
Neuer Benutzer
 
Registriert seit: 19.09.2011
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Nokii befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
if(isset($_POST["submitted"])) { 
    
$_sql "UPDATE login"
    
$_sql .= " SET username='".$_POST["username"]."'"
    
$_sql .= " SET password='".$_POST["password"]."'"
    
$_sql .= " SET birthday='".$_POST["birthday"]."'"
    
$_sql .= " SET location='".$_POST["location"]."'"
    
$_sql .= " SET postal_code'".$_POST["postal_code"]."'";    
    
$_sql .= " WHERE user_id='".$_POST["user_id"]."'"
    
mysql_query($_sql) or die(mysql_error());
} else { 
    
$ergebnis mysql_query"SELECT * FROM login ORDER BY username" ); 
Code:
UPDATE tabelle SET
 spalte1=Wert1, 
 spalte2=Wert2
WHERE 
  Bedingung
ist doch eigentlich so vorhanden, SET username(row in mysql) und dann eben das was von datenaendern.html kommt,also der neue user name.
Nokii ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:45  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

so ? dann gib doch bitte mal deine erzeugte Abfrage VOR dem Absenden aus und vergleiche sie WORT für WORT mit der VOrlage ... fällt dir da nix auf ? zum Beispiel die Häufigkeit des Wortes "SET" in deinem Update und in der Vorlage ?

*Wink mit dem Zaunfeld!
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:50  
Neuer Benutzer
 
Registriert seit: 19.09.2011
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Nokii befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
if(isset($_POST["submitted"])) {  
    
$_sql "UPDATE login" SET;  
    
$_sql .= " username='".$_POST["username"]."'";  
    
$_sql .= " password='".$_POST["password"]."'";  
    
$_sql .= " birthday='".$_POST["birthday"]."'";  
    
$_sql .= " location='".$_POST["location"]."'";  
    
$_sql .= " postal_code'".$_POST["postal_code"]."'";     
    
$_sql .= "WHERE user_id='".$_POST["user_id"]."'";  
    
mysql_query($_sql) or die(mysql_error()); 
} else {  
    
$ergebnis mysql_query"SELECT * FROM login ORDER BY username" ); 
Nokii ist offline   Mit Zitat antworten
Alt 19.09.2011, 14:52  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 298
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Nun sollte dir etwas an der Syntax auffallen, besonders bei den Farben!
KarlEgon ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Facebook Login und eigener Login Paralell blackcrow PHP-Fortgeschrittene 17 29.05.2011 21:03
Anfänger in OOP /Nach Login Formular ausgeben um Daten auf Server zu übertragen sumpfbarbe PHP Tipps 2010 6 16.07.2010 13:17
Formular im Formular mistermint JavaScript, Ajax und mehr 11 21.06.2010 22:29
Login script zeigt immer formular an auch wenn eingeloggt sein sollte salix PHP Tipps 2010 2 28.03.2010 22:21
Mehrseitiges verzweigtes Formular RobbyNaish PHP Tipps 2009 1 19.12.2009 01:51
[Erledigt] Bei Login ist die Prüfung fehlerhaft(ob Formular Feld leer) !sniper PHP Tipps 2009 3 17.10.2009 12:07
PHP Formular mit Login jochse PHP Tipps 2009 11 22.09.2009 10:10
Login ohne Formular Gibson PHP Tipps 2009 5 01.04.2009 15:33
sicheres Login Formular Philli Scriptbörse 10 23.03.2009 12:48
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
Login Formular Design HTML, Usability und Barrierefreiheit 4 12.09.2005 15:15
Im Formular user abfragen? Datenbanken 3 06.01.2005 10:51
Problem mit Login Formular PHP Tipps 2004 7 16.09.2004 16:48
fragen zu einem Login und Zeit blabla über MySQL PHP Tipps 2004 10 12.09.2004 15:21
php login formular für .htaccess datei PHP Tipps 2004 3 08.07.2004 12:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php login cookie diebstahl

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum