php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.01.2010, 22:26  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard Daten in Mysql über php ändern funzt nicht ganz

Ich habe eine wahrscheinlich sehr umfangreiche und mit sicherheit umstädnliche art und weise gewählt wie der user im Loginbereich seine daten einsehen und ändern kann.

hier habe ich drei herausforderungen an denen ich scheitere:
1. Ich will das beim Passwortwechsel zuerst das alte passwort einegeben und überprüft wird und wenn das korrekt ist und das neue pw 2 mal korrekt eingegen ist soll es geändert werden
2. das selbe beim "psw_table"
3. der user_hz soll bei änderung einer prüfung mit der db unterliegen und nur wenn so ein user nicht bereits vorliegt (groß- und kleinschreibung egal) wird der neue user angelegt.

hier der code:

PHP-Code:
<?
include("../xxx/php_dateien/auth.php");
session_start();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<! - - Kommentar zum Inhalt des Dokuments - ->
<html>
    <head>

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

        <title>
      Anmelden
        </title>
    </head>
    <body>

        <table align="center" border="1" width="1000" height="700" >

            <tr>
                <td colspan="3" width="1000" height="30" align="right" valign="middle">
                    <a href="agb.htm">AGB</a>
                     | <a href="impressum.htm">Impressum</a>
                     | <a href="kontakt.htm">Kontakt</a>
                </td>
            </tr>

            <tr>

                <td width="150" height="150" align="middle" valign="top">
                    Logo
                </td>

                <td width="650" height="150" align="middle" valign="top">

                    TRAILER
                                        
                </td>



           <td width="200" height="150" align="left" valign="middle">

         <?


          
include($_SERVER['DOCUMENT_ROOT']. '/xxx/inc/mysql.inc.php');
            
mysql_connect($sql['host'],$sql['uid'],$sql['psw']);
            
mysql_select_db($sql['db']);


         
$SID session_id ();

         
/* SQL-Abfrage senden */
         
$sql "SELECT user FROM kundenliste WHERE session = '$SID'";
         
mysql_query($sql);

         
$result mysql_query($sql);

         
/* Abfrageergebnisse in HTML ausgeben*/

         
$row mysql_fetch_array($result);

         echo 
"<p align='center'>
         Sie sind unter<br>
         <b>"
.$row['user']."</b><br>
         eingeloggt</p>"
;


         
?>
         
         <form name="logout" action="../../xxx/php_dateien/ausloggen.php"  method="POST">
         <p align='center'>
         <input type="submit" name ="ausloggen" value="Ausloggen">
         </p>
         </form>


        </td>

            </tr>

            <tr>
                <td  colspan="3" width="1000" height="30" align="left" valign="middle">

                        <a href="index_mb.php">Hauptmenü</a> |

                        <a href="einstellungen_mb.php">Ihre Daten</a> |

                        <a href="zum_tisch_mb.php">Zum Tisch</a> |

                        <a href="index_mb.php">Artikelauswahl</a> |

                        <a href="index_mb.php">Kontakt</a>


                </td>
       </tr>
       <tr>
           <td width="150" height="150" align="bottom" valign="top">

          Auswahl


                </td>

                <td width="600" height="520" align="left" valign="top">
        <center>Hier können sie ihre persönlichen Daten einsehen und ggf. ändern.</center><br>

        <?
            $anrede 
$_POST['anrede'];
            
$vorname $_POST['vorname'];
            
$nachname $_POST['nachname'];
            
$strasse $_POST['strasse'];
            
$hausnummer $_POST['hausnummer'];
            
$plz $_POST['plz'];
            
$ort $_POST['ort'];
            
$vorwahl $_POST['vorwahl'];
            
$rufnummer $_POST['rufnummer'];
            
$geb $_POST['geb'];
            
$email $_POST['email'];
            
$email2 $_POST['email2'];
            
$psw md5($_POST['psw']);
            
$psw2 md5($_POST['psw2']);
            
$psw3 md5($_POST['psw3']);
            
$user_hz $_POST['user_hz'];
            
$datum_hz $_POST['datum_hz'];
            
$gaeste_hz $_POST['gaeste_hz'];
            
$name_hz $_POST['name_hz'];
            
$strasse_hz $_POST['strasse_hz'];
            
$hausnummer_hz $_POST['hausnummer_hz'];
            
$plz_hz $_POST['plz_hz'];
            
$ort_hz $_POST['ort_hz'];
            
$psw_table md5($_POST['psw_table']);
            
$psw_table2 md5($_POST['psw_table']);
            
$psw_table3 md5($_POST['psw_table']);
            
        
$userabgleich "SELECT user FROM kundenliste WHERE user LIKE '$user'";
        
$ergebnis_userabgleich mysql_query($userabgleich);
        
$row_userabgleich mysql_fetch_object($ergebnis_userabgleich);
        
        if (!empty(
$_POST))
          {
        
$fehler = array();
          }
        if (empty(
$anrede))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET anrede = '$anrede'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Anrede wurde geändert<br>";
         }
        if (empty(
$vorname))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET vorname = '$vorname'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Vorname wurde geändert<br>";
         }
        if (empty(
$nachname))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET nachname = '$nachname'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Nachname wurde geändert<br>";
         }
        if (empty(
$strasse))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET strasse = '$strasse'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Strasse wurde geändert<br>";
         }
        if (empty(
$hausnummer))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET hausnummer = '$hausnummer'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Hausnummer wurde geändert<br>";
         }
        if (empty(
$plz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET plz = '$plz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"PLZ wurde geändert<br>";
         }
        if (empty(
$ort))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET ort = '$ort'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Ort wurde geändert<br>";
         }
        if (empty(
$vorwahl))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET vorwahl = '$vorwahl'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Vorwahl wurde geändert<br>";
         }
        if (empty(
$rufnummer))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET rufnummer = '$rufnummer'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Rufnummer wurde geändert<br>";
         }
        if (empty(
$geb))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET geb = '$geb'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Geburtsdatum wurde geändert<br>";
         }
        if (empty(
$email))
         {}
         elseif (
$email != $email2)
         {
            echo 
"Email Adresse wurde <b>NICHT</b> geändert. Nicht zwei Mal identisch eingegeben.<br>";
         }
        else
         {
            
$sql ="UPDATE kundenliste
            SET email = '$email'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Email Adresse wurde geändert<br>";
         }
        if (empty(
$psw))
         {}
        elseif (
$row['psw'] == $psw)
         {
            echo 
"Passwort wurde <b>NICHT</b> geändert. Altes Passwort nicht korrekt.<br>";
         }
        elseif (
$psw2 != $psw3)
         {
            echo 
"Passwort wurde <b>NICHT</b> geändert. Neues Passwort nicht zwei Mal identisch eingegeben.<br>";
         }
        else
         {
            
$sql ="UPDATE kundenliste
            SET psw = '$psw'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Passwort wurde geändert<br>";
         }
        if (empty(
$user_hz))
         {}
         elseif (
strtolower($row_userabgleich->user_hz) == strtolower($user_hz))
         {
            echo 
"Benutzername für Gäste wurde <b>NICHT</b> geändert. Ihr angegebener Benutzername existiert bereits.<br>";
         }
        else
         {
            
$sql ="UPDATE kundenliste
            SET user_hz = '$user_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Benutzername für Gäste wurde geändert<br>";
         }
        if (empty(
$datum_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET datum_hz = '$datum_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Hochzeitsdatum wurde geändert<br>";
         }
        if (empty(
$gaeste_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET gaeste_hz = '$gaeste_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Anzahl der Gäste wurde geändert<br>";
         }
        if (empty(
$name_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET name_hz = '$name_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Hochzeitslocation wurde geändert<br>";
         }
        if (empty(
$strasse_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET strasse_hz = '$strasse_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Strasse der Location wurde geändert<br>";
         }
        if (empty(
$hausnummer_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET hausnummer_hz = '$hausnummer_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Hausnummer der Location wurde geändert<br>";
         }
        if (empty(
$plz_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET plz_hz = '$plz_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"PLZ der Location wurde geändert<br>";
         }
        if (empty(
$ort_hz))
         {}
        else
         {
            
$sql ="UPDATE kundenliste
            SET ort_hz = '$ort_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Ort der Location wurde geändert<br>";
         }
/*PASSWORT GÄSTE*/
        
        
$query "SELECT * FROM kundenliste WHERE user ='{$row['user']}'";

        
$result mysql_query($query);
        while (
$row mysql_fetch_array($result))
        {
        
?>
        <form name="daten" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <?
        ?>
<b><center>PERSÖNLICHE DATEN:</center></b><br><?
        ?>
<b>Anrede: </b><?echo "$row[anrede]";?> Herr <input type="radio" name="anrede" value="Herr">Frau <input type="radio" name="anrede" value="Frau"><br><?
        ?>
<b>Vorname: </b><?echo "$row[vorname]";?> <input type="text" name="vorname"><br><?
        ?>
<b>Nachname: </b><?echo "$row[nachname]";?> <input type="text" name="nachname"><br><?
        ?>
<b>Strasse: </b><?echo "$row[strasse]";?> <input type="text" name="strasse"> <b>Hausnummer: </b><?echo "$row[hausnummer]";?> <input type="text" name="hausnummer"><br><?
        ?>
<b>PLZ: </b><?echo "$row[plz]";?> <input type="text" name="plz"> <b>Ort: </b><?echo "$row[ort]";?> <input type="text" name="ort"><br><?
        ?>
<b>Vorwahl: </b><?echo "$row[vorwahl]";?> <input type="text" name="vorwahl"> <b>Rufnummer: </b><?echo "$row[rufnummer]";?> <input type="text" name="rufnummer"><br><?
        ?>
<b>Geburtsdatum: </b><?echo "$row[geb]";?> <input type="text" name="geb"><br><?
        ?>
        <?
        ?>
<br><b><center>EMAIL ADRESSE:</center></b><br><?
        ?>
<b>Email: </b><?echo "$row[email]";?> <input type="text" name="email"><br><?
        ?>
<b>Email erneut eingeben: </b><?echo "$row[email2]";?> <input type="text" name="email2"><br><?
        ?>
        <?
        ?>
<br><b><center>PERSÖNLICHES PASSWORT:</center></b><br><?
        ?>
<b>Ihr altes Passwort eingeben: </b> <input type="text" name="psw"><br><?
        ?>
<b>Ihr neues Passwort eingeben: </b> <input type="text" name="psw2"><br><?
        ?>
<b>Neues Passwort erneut eingeben: </b> <input type="text" name="psw3"><br><?
        ?>
        <?
        ?>
<br><b><center>HOCHZEITSDATEN:</center></b><br><?
        ?>
<b>Benutzername Gäste: </b><?echo "$row[user_hz]";?> <input type="text" name="user_hz"><br><?
        ?>
<b>Datum Hochzeit: </b><?echo "$row[datum_hz]";?> <input type="text" name="datum_hz"><br><?
        ?>
<b>Anzahl der Gäste: </b><?echo "$row[gaeste_hz]";?> <input type="text" name="gaeste_hz"><br><?
        ?>
<b>Name Location Hochzeit: </b><?echo "$row[name_hz]";?> <input type="text" name="name_hz"><br><?
        ?>
<b>Strasse: </b><?echo "$row[strasse_hz]";?> <input type="text" name="strasse_hz"> <b>Hausnummer: </b><?echo "$row[hausnummer_hz]";?> <input type="text" name="hausnummer_hz"><br><?
        ?>
<b>PLZ: </b><?echo "$row[plz_hz]";?> <input type="text" name="plz_hz"> <b>Ort: </b><?echo "$row[ort_hz]";?> <input type="text" name="ort_hz"><br><?
        ?>
        <?
        ?>
<br><b><center>HOCHZEITSTISCH PASSWORT:</center></b><br><?
        ?>
<b>Ihr altes Tisch-Passwort eingeben: </b> <input type="text" name="psw_table"><br><?
        ?>
<b>Ihr neues Tisch-Passwort eingeben: </b> <input type="text" name="psw_table2"><br><?
        ?>
<b>Neues Tisch-Passwort erneut eingeben: </b> <input type="text" name="psw_table3"><br><?
        ?>
        <center> <br>
        <input type="submit" name="aendern" value="Ändern">
        </center>
        </form>
        <?
        
}?>


                </td>

                <td rowspan="6" width="200" height="520" align="right" valign="middle">
                    show


                </td>
            </tr>

        </table>

    </body>
</html>
Rutor ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.01.2010, 23:15  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 682
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

1. mir erscheint dies ein wenig sinnfrei, wenn du passwörter mehrmals abfragst, als input aber ein textfeld ausgibst, sollte da nicht type=password stehen?
Dann scheinst du zweimal den gleichen User aus der db abrufen zu wollen, aber der 2. dürfte nichts ergeben. Warum ist das so?
2+3.?
versteh ich irgendwie überhaupt nicht, ich denk der user ist eingeloggt und soll seine Daten ändern können, wieso ist plötzlich von einem neuen Datensatz die Rede?
Harry_X ist offline  
Alt 09.01.2010, 00:20  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Der Code ist ... grausam, tu doch mal allen deinen potentiellen helfern ein paar kleine gefallen:

1)
PHP-Code:
        if (empty($anrede))
         {}
        else
         {
// some code
         

Warum machst du überall ein leeres if um dann im else deinen code auszuführen ?
also so:
PHP-Code:
if (!empty($anrede)) {
// dein code

2)
Was bitte soll sowas:

PHP-Code:
<?
        ?>
<b>Benutzername Gäste: </b><?echo "$row[user_hz]";?> <input type="text" name="user_hz"><br><?
        ?>
<b>Datum Hochzeit: </b><?echo "$row[datum_hz]";?> <input type="text" name="datum_hz"><br><?
Warum machst du nach JEDER ZEILE php auf <?
und in der nächsten am anfang wieder zu ?> ????
Das ist total unnötig und zwingt den Interpreter jedes mal zwischen Interpretieren und ausgeben total unnötig rumzuspringen (soweit kein optimizer das wegoptimiert)

3) ich seh kein einziges mysql_real_escape string. Jeder der in deine Daten ein ' hat (z.b. weil er O'Brian heißt, lässt dein Script abkacken und unter umständen lässt sich das sogar dazu ausnutzen daten auszulesen ODER daten anderer user zu verändern.

4) Warum bitte führst du für JEDES feld wenn es nicht leer ist 1 query aus ? das ist totaler overhead, sammel die daten und mach 1 update daraus

5) empty() ist nicht das gleiche wie isset(). Wenn jetzt jemand z.b. ein feld ändern möchte und den wert rauslöschen will, ist das nicht möglich
-> les nach was die beiden machen

6) Bau folgendes ganz oben in dein script ein:
Fehlerausgabe in PHP-Scripten - Codeschnipsel
dann bekommst du einige fehler oder dinge die du nicht ordentlich machst gleich gezeit

7)
PHP-Code:
echo "$row[hausnummer_hz]"
die " um jede variable zu schreiben ist total unnötig, bei array einfach die indizes überall in hochkomma und normale variablen mittels

PHP-Code:
echo $var
ausgeben


PHP-Code:
?><b>Email: </b><?echo "$row[email]";?> <input type="text" name="email"><br><?
warum bitte speicherst du die ALTEN werte nicht einfach ins value der inputs ? von der usability her ist das besser und es ist total ungewohnt wenn überall die alten werte NEBEM dem feld stehen

Beschäftige dich bisher früh als spät mit dem Thema Trennung von Code und Design
Stichwort Template-Engines, etc
robo47 ist offline  
Alt 09.01.2010, 10:39  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab ja von anfang an gesagt, dass es wahrscheinlich nicht die beste Lösung ist.

Habe es mal wie folgt abgeändert.

folgende Probleme:

1. Das script wird immer ausgeführt und da es beim Audruf der Seite geschiet werden alle Daten in "" geändert.
2. will für email und beide passwörter verschiedene formulare verwenden

PHP-Code:
<?
        
            $anrede 
$_POST['anrede'];
            
$vorname $_POST['vorname'];
            
$nachname $_POST['nachname'];
            
$strasse $_POST['strasse'];
            
$hausnummer $_POST['hausnummer'];
            
$plz $_POST['plz'];
            
$ort $_POST['ort'];
            
$vorwahl $_POST['vorwahl'];
            
$rufnummer $_POST['rufnummer'];
            
$geb $_POST['geb'];
            
$email $_POST['email'];
            
$email2 $_POST['email2'];
            
$datum_hz $_POST['datum_hz'];
            
$gaeste_hz $_POST['gaeste_hz'];
            
$name_hz $_POST['name_hz'];
            
$strasse_hz $_POST['strasse_hz'];
            
$hausnummer_hz $_POST['hausnummer_hz'];
            
$plz_hz $_POST['plz_hz'];
            
$ort_hz $_POST['ort_hz'];

            
$sql ="UPDATE kundenliste
            SET anrede = '$anrede', vorname = '$vorname',nachname = '$nachname',
                strasse = '$strasse', hausnummer = '$hausnummer', plz = '$plz',
                ort = '$ort', vorwahl = '$vorwahl', rufnummer = '$rufnummer', geb = '$geb',
                datum_hz = '$datum_hz', gaeste_hz = '$gaeste_hz', name_hz = '$name_hz',
                strasse_hz = '$strasse_hz', hausnummer_hz = '$hausnummer_hz', plz_hz = '$plz_hz',
                ort_hz = '$ort_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Daten wurden geändert<br>";


        
$query "SELECT * FROM kundenliste WHERE user ='{$row['user']}'";

        
$result mysql_query($query);
        while (
$row mysql_fetch_array($result))
        {
        
?>
        <form name="daten" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <b>PERSÖNLICHE DATEN:</b><br>
        <br>
        <b>Anrede: <input type="text" name="anrede" value="<?echo $row[anrede]?>"><br>
        <b>Vorname: <input type="text" name="vorname" value="<?echo $row[vorname]?>"><br>
        <b>Nachname: <input type="text" name="nachname" value="<?echo $row[nachname]?>"><br>
        <b>Strasse: <input type="text" name="strasse" value="<?echo $row[strasse]?>"> <b>Hausnummer: <input type="text" name="hausnummer" value="<?echo $row[hausnummer]?>"><br>
        <b>PLZ: <input type="text" name="plz" value="<?echo $row[plz]?>"> <b>Ort: </b> <input type="text" name="ort" value="<?echo $row[ort]?>"><br>
        <b>Vorwahl: <input type="text" name="vorwahl" value="<?echo $row[vorwahl]?>"> <b>Rufnummer: </b> <input type="text" name="rufnummer" value="<?echo $row[rufnummer]?>"><br>
        <b>Geburtsdatum: <input type="text" name="geb" value="<?echo $row[geb]?>"><br>
        <br><b>HOCHZEITSDATEN:</b><br>
        <br>
        <b>Benutzername Gäste: </b><input type="text" name="user_hz" value="<?echo $row[user_hz]?>"><br>
        <b>Datum Hochzeit: </b><input type="text" name="datum_hz" value="<?echo $row[datum_hz]?>"><br>
        <b>Anzahl der Gäste: </b><input type="text" name="gaeste_hz" value="<?echo $row[gaeste_hz]?>"><br>
        <b>Name Location Hochzeit: </b><input type="text" name="name_hz" value="<?echo $row[name_hz]?>"><br>
        <b>Strasse: </b><input type="text" name="strasse_hz" value="<?echo $row[strasse_hz]?>"> <b>Hausnummer: </b><input type="text" name="hausnummer_hz" value="<?echo $row[hausnummer_hz]?>"><br>
        <b>PLZ: </b><input type="text" name="plz_hz" value="<?echo $row[plz_hz]?>"> <b>Ort: </b><input type="text" name="ort_hz" value="<?echo $row[ort_hz]?>"><br>
        <center> <br>
        <input type="submit" name="aendern_daten" value="Ändern">
        </center>
        </form>


<?
/*EMAIL*/
?>


        <form name="email" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <b>EMAIL ADRESSE:</b><br>
        <br>
        <b>Email: </b><input type="text" name="email" value="<?echo $row[email]?>"><br>
        <b>Email erneut eingeben: </b><?echo "$row[email2]";?> <input type="text" name="email2"><br>
        <center> <br>
        <input type="submit" name="aendern_email" value="Ändern">
        </center>
        </form>
        <?
        
}
        
?>

<?
/*PERSÖNLICHES PSW*/
?>

        <form name="per_psw" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <b>PERSÖNLICHES PASSWORT:</b><br>
        <br>
        <b>Ihr altes Passwort eingeben: </b> <input type="text" name="psw"><br>
        <b>Ihr neues Passwort eingeben: </b> <input type="text" name="psw2"><br>
        <b>Neues Passwort erneut eingeben: </b> <input type="text" name="psw3"><br>
        <center> <br>
        <input type="submit" name="aendern_psw" value="Ändern">
        </center>
        </form>


<?
/*HZ_PSW*/
?>

        <form name="hz_psw" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <b>HOCHZEITSTISCH PASSWORT:</b><br>
        <br>
        <b>Ihr altes Tisch-Passwort eingeben: </b> <input type="text" name="psw_table"><br>
        <b>Ihr neues Tisch-Passwort eingeben: </b> <input type="text" name="psw_table2"><br>
        <b>Neues Tisch-Passwort erneut eingeben: </b> <input type="text" name="psw_table3"><br>

        <center> <br>
        <input type="submit" name="aendern_hz_psw" value="Ändern">
        </center>
        </form>
Rutor ist offline  
Alt 09.01.2010, 10:56  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Ist das aktuell jetzt dein komplettes Script ?
robo47 ist offline  
Alt 09.01.2010, 11:11  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nein ich weiß nur nicht - da ich nun mehrere Formulare auf einer Seite habe nur ein bestimmtes ansprechen kann - habe es schon mit:

PHP-Code:
if($_POST['aendern_Daten']!="true")
            {
            
$sql ="UPDATE kundenliste
            SET anrede = '$anrede', vorname = '$vorname',nachname = '$nachname',
                strasse = '$strasse', hausnummer = '$hausnummer', plz = '$plz',
                ort = '$ort', vorwahl = '$vorwahl', rufnummer = '$rufnummer', geb = '$geb',
                datum_hz = '$datum_hz', gaeste_hz = '$gaeste_hz', name_hz = '$name_hz',
                strasse_hz = '$strasse_hz', hausnummer_hz = '$hausnummer_hz', plz_hz = '$plz_hz',
                ort_hz = '$ort_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Daten wurden geändert<br>";
            } 
versucht - aber es funzt nicht.
Rutor ist offline  
Alt 09.01.2010, 11:19  
Neuer Benutzer
 
Registriert seit: 09.01.2010
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
bghosting befindet sich auf einem aufstrebenden Ast
Standard

Wenn ja, ist dort wohl nun einiges rausgenommen worden. Der Rest war grausam, Ja.

Bau deine Webseite vielleicht mal auf folgende Grundlogik bzw. Grundstruktur um (Prosa)
Code:
Fehler = Keine Fehler (Vorinitialisierung);
Wenn (Formular abgeschickt) {
    Ermittle Fehler;
    Wenn (keine Fehler) {
        Mache Änderungen in der Datenbank;
    }
}

Wenn (Fehler) {
    Gebe Fehler aus;
}
Gebe Formular aus;
Und als Anfänger auch intensiv alles kommentieren, was du machst. Dann finden sich andere und auch du selbst besser zurecht. Das könnte dann so aussehen:
PHP-Code:
<?php
// Vorinitialisierung der Fehler
$fehler_array = array();

// Ist das Formular abgeschickt worden?
if (isset($_POST['aendern_daten'])) {
    
// Ja, das Formular wurde abgeschickt.
    // aendern_daten ist der Name des Submit-Buttons

    // Datenprüfung
    
... siehe code von dir oben

    
// Gab es Fehler ?
    
if (count($fehler_array) == 0) {
        
// Keine Fehler, also Datenänderung
        
... Datenänderungsiehe dein Code
    
}
}

// Fehler ausgeben, so es welche gibt
foreach ($fehler_array as $fehler) {
    echo 
$fehler.'<br />';
}

// Formular ausgeben
.. siehe dein HTML von oben
?>
bghosting ist offline  
Alt 09.01.2010, 11:35  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Ein aktiviertes error_reporting wie ich es mir gewünscht habe fehlt, dann dürftest du wohl einige Notices bekommen ....

1 Query für alle Felder aber verschiedene Formulare mit verschiedenen Werten ... ?
Das klappt so nicht, dann musst du entweder deine variablen alle mit den alten werten vor-fülllen, oder abfragen welches formular denn eigentlich abgeschickt wurde und für jedes passenden Code erzeugen.

PHP-Code:
        $query "SELECT * FROM kundenliste WHERE user ='{$row['user']}'";

        
$result mysql_query($query); 
woher soll denn bitte das {$row['user']} kommen ? mysql_error() fehlt hier auch wieder, escapt wird auch nichts ...
Auch mal noch ein Verweis auf: Datenbank-Fehlerbehandlung in PHP - verschiedene Wege und Möglichkeiten

Wenn du es wirklich dem User so umständlich machen willst, musst du wieder Teile deiner alten implementierung nehmen wo du für jedes Feld ein query machst, wovon ich dir abraten würde.

Allgemein überprüfen ob ein POST-Request vorliegt kannst du mit

PHP-Code:
if ($_SERVER['REQUEST_METHOD'] == 'POST'
Ob dein aendern_Daten-Feld gesetzt ist, weil ein vergleich mit der ZEICHENKETTE "true" macht absolut keinen Sinn geht z.b. so:
PHP-Code:
if (isset($_POST['aendern_Daten']) 
PHP-Code:
            $anrede $_POST['anrede'];
            
$vorname $_POST['vorname'];
            
$nachname $_POST['nachname'];
            
$strasse $_POST['strasse'];
            
$hausnummer $_POST['hausnummer'];
            
$plz $_POST['plz'];
            
$ort $_POST['ort'];
            
$vorwahl $_POST['vorwahl'];
            
$rufnummer $_POST['rufnummer'];
            
$geb $_POST['geb'];
            
$email $_POST['email'];
            
$email2 $_POST['email2'];
            
$datum_hz $_POST['datum_hz'];
            
$gaeste_hz $_POST['gaeste_hz'];
            
$name_hz $_POST['name_hz'];
            
$strasse_hz $_POST['strasse_hz'];
            
$hausnummer_hz $_POST['hausnummer_hz'];
            
$plz_hz $_POST['plz_hz'];
            
$ort_hz $_POST['ort_hz']; 
der Code enthält keine überprüfung ob der Wert vorhanden ist, ( if(isset($_POST['feldname'])) und die werte werden immernoch nicht escapt mit mysql_real_escape_string

Also bei mir ist die Lust hier noch weiter was zu machen jetzt vorbei. Von ersten zum letzten post schmeißt du das konzept um, beherzigt nur die hälfte der tips und man hat das Gefühl du weist überhaupt nicht was du tust.
Das was du vorhast ist um es halbwegs ordentlich zu machen und keinen bescheidenen unsicheren, fehlerhaften Code zu erzeugen einfach weit ab deines aktuellen Wissens.
Ich hab keine Lust dir hier wieder und wieder Grundlagen beizubringen und dir zu sagen was in den Code gehört. Sowas sind Grundlagen die du erstmal lernen musst, daher macht hier keinen Sinn weiterzumachen bevor du dich nicht ordentlich damit beschäftigt hast.

=> http://www.php.de/php-einsteiger/489...rundlagen.html

Ich für meinen Teil bin hier raus
robo47 ist offline  
Alt 09.01.2010, 11:45  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe es nun geändert und es tut danke

aber nun das nächste - verdammt.

Will den Benutzernamen (user_hz) in der DB nur einmal vergeben - egal ob groß- oder kleinschreibung.

habe es wie folgt versucht einzubinden?!

PHP-Code:
 <?

            $anrede 
$_POST['anrede'];
            
$vorname $_POST['vorname'];
            
$nachname $_POST['nachname'];
            
$strasse $_POST['strasse'];
            
$hausnummer $_POST['hausnummer'];
            
$plz $_POST['plz'];
            
$ort $_POST['ort'];
            
$vorwahl $_POST['vorwahl'];
            
$rufnummer $_POST['rufnummer'];
            
$geb $_POST['geb'];
            
$datum_hz $_POST['datum_hz'];
            
$gaeste_hz $_POST['gaeste_hz'];
            
$name_hz $_POST['name_hz'];
            
$strasse_hz $_POST['strasse_hz'];
            
$hausnummer_hz $_POST['hausnummer_hz'];
            
$plz_hz $_POST['plz_hz'];
            
$ort_hz $_POST['ort_hz'];
            
$user_hz $_POST['user_hz'];
            
        
$fehler_array = array();


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

        if (
count($fehler_array) == 0) {

        if (
strtolower($row[user_hz]) == strtolower($user_hz))
            {
              echo 
"Benutzername für Gäste bereits vergeben - bitte wählen sie einen anderen.";
            }
        else
           {
        
$sql ="UPDATE kundenliste
            SET anrede = '$anrede', vorname = '$vorname',nachname = '$nachname',
                strasse = '$strasse', hausnummer = '$hausnummer', plz = '$plz',
                ort = '$ort', vorwahl = '$vorwahl', rufnummer = '$rufnummer', geb = '$geb',
                datum_hz = '$datum_hz', gaeste_hz = '$gaeste_hz', name_hz = '$name_hz',
                strasse_hz = '$strasse_hz', hausnummer_hz = '$hausnummer_hz', plz_hz = '$plz_hz',
                ort_hz = '$ort_hz', user_hz = '$user_hz'
            WHERE user = '{$row['user']}'"
;
            
$sql mysql_query($sql) or die (mysql_error());
            echo 
"Daten wurden geändert<br>";
        }
      }
      }

        foreach (
$fehler_array as $fehler) {
        echo 
$fehler.'<br />';
        }

        
$query "SELECT * FROM kundenliste WHERE user ='{$row['user']}'";

        
$result mysql_query($query);
        while (
$row mysql_fetch_array($result))
        {
        
?>
        <form name="daten" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" >
        <b>PERSÖNLICHE DATEN:</b><br>
        <br>
        <b>Anrede: <input type="text" name="anrede" value="<?echo $row[anrede]?>"><br>
        <b>Vorname: <input type="text" name="vorname" value="<?echo $row[vorname]?>"><br>
        <b>Nachname: <input type="text" name="nachname" value="<?echo $row[nachname]?>"><br>
        <b>Strasse: <input type="text" name="strasse" value="<?echo $row[strasse]?>"> <b>Hausnummer: <input type="text" name="hausnummer" value="<?echo $row[hausnummer]?>"><br>
        <b>PLZ: <input type="text" name="plz" value="<?echo $row[plz]?>"> <b>Ort: </b> <input type="text" name="ort" value="<?echo $row[ort]?>"><br>
        <b>Vorwahl: <input type="text" name="vorwahl" value="<?echo $row[vorwahl]?>"> <b>Rufnummer: </b> <input type="text" name="rufnummer" value="<?echo $row[rufnummer]?>"><br>
        <b>Geburtsdatum: <input type="text" name="geb" value="<?echo $row[geb]?>"><br>
        <br><b>HOCHZEITSDATEN:</b><br>
        <br>
        <b>Benutzername Gäste: </b><input type="text" name="user_hz" value="<?echo $row[user_hz]?>"><br>
        <b>Datum Hochzeit: </b><input type="text" name="datum_hz" value="<?echo $row[datum_hz]?>"><br>
        <b>Anzahl der Gäste: </b><input type="text" name="gaeste_hz" value="<?echo $row[gaeste_hz]?>"><br>
        <b>Name Location Hochzeit: </b><input type="text" name="name_hz" value="<?echo $row[name_hz]?>"><br>
        <b>Strasse: </b><input type="text" name="strasse_hz" value="<?echo $row[strasse_hz]?>"> <b>Hausnummer: </b><input type="text" name="hausnummer_hz" value="<?echo $row[hausnummer_hz]?>"><br>
        <b>PLZ: </b><input type="text" name="plz_hz" value="<?echo $row[plz_hz]?>"> <b>Ort: </b><input type="text" name="ort_hz" value="<?echo $row[ort_hz]?>"><br>
        <center> <br>
        <input type="submit" name="aendern_daten" value="Ändern">
        </center>
        </form>


        <?
        
}
        
?>
Rutor ist offline  
Alt 09.01.2010, 11:51  
Neuer Benutzer
 
Registriert seit: 09.01.2010
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
bghosting befindet sich auf einem aufstrebenden Ast
Standard

Einige Sachen, die Robo und ich angemerkt haben, hast du noch nicht umgesetzt. Mache das vorher. Zudem ist dein Script unvollständig um dein neues Problem zu beantworten.
Schritt 1: Script aufräumen und mit vernünftigen Kommentaren versehen.
Schritt 2: Script nochmal komplett hier posten inkl. aller angemerkten Änderungen und Beseitigung der Notices.

Der Fehler selbst bzw. dein If dürfte logischer Quatsch sein, denn in $row['user_hz'] stehen nicht automatisch alle Werte aus der DB drin, sondern nur einer.
bghosting ist offline  
 


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
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
[Erledigt] Daten per Formular ändern Garry PHP Tipps 2008 20 19.12.2008 19:01
Daten per Formular ändern AJ79 PHP Tipps 2008 1 20.10.2008 21:44
[Erledigt] MySQL, Daten in Tabelle einlesen, Struktur funktioniert nicht ganz MasterChief PHP Tipps 2008 3 13.10.2008 11:39
Daten aus Mysql Tabelle über Arrays in Variabeln schreiben Toby PHP Tipps 2008 8 22.08.2008 10:01
Über Formular mysql daten ändern? incubo PHP Tipps 2008 6 18.03.2008 04:11
Daten selber per Browser ändern (MYSQL) Minimi PHP Tipps 2008 9 31.12.2007 13:21
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql Eintrag über mehrere Zeielne Eintrag funzt nicht PHP Tipps 2006 3 14.03.2006 19:38
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
nur bestimmte anzahl an daten per mysql auslesen PHP Tipps 2005 4 13.05.2005 15:45
Daten aus DB auslesen, ändern, und wieder aktualisieren Calli PHP Tipps 2005 5 15.02.2005 10:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
daten in mysql per form ändern, daten in msql per form ändern, datensatz aktualisieren mysql a href, sql daten per php ändern, mysql php a href datensatz updaten, sql abfrage die anrede, vorname, nachname, strasse, hausnummer, plz, ort und den namen des artikels enthält, sql php passwort ändern, mysql datensatz können nicht geändert werden, sql daten ändern in php, php ändern daten, daten aus mysql ändern, php /sql script das der benutzer seine daten selber ändern kann, mysql user soll nur seinen datensatz ändern, mysql daten ändern über formular php, mysql php benutzer ändern, php mysql lässt sich nicht ändern, php href mysql ändern, hochzeitstisch mysql php, \einzelnen datensatz\ aus array ändern submit, texte in mysql bearbeiten

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 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