Antworten auf deine Fragen:
Neues Thema erstellen

Update Script

MasterT

Nicht mehr ganz neu hier

Hallo,
ich habe ein Problem mit meinem Script. Es läd das Script zum Passwort ändern, aber schreibt nichts in die Datenbank. Es werden mir keine Fehler angezeigt. Wisst ihr woran es liegt?

PHP:
<?php
include'mysql.php';
include'_php/variablen.php';

if(isset($_GET['start'])) {
echo'
<a href="index.php?seite=einstellungen&bearbeiten=profil">Profil bearbeiten</a><br>
<a href="index.php?seite=einstellungen&bearbeiten=passwort">Passwort ändern</a><br>
<a href="index.php?seite=einstellungen&bearbeiten=accounterstellen">Neuen Account anlegen</a>
';}

else {if($bearbeiten == 'profil'){
      $ergebniss = mysql_query("SELECT * FROM benutzer WHERE email = '".mysql_real_escape_string($_SESSION['user'])."'") or die(mysql_error());
      while($a = mysql_fetch_object($ergebniss)) {
      
      echo ' 
          <div style="float: left;">Künstlername:<br>
        <input value="'.$a->username.'"autocomplete="off" id="feld" type="text"  maxlength="50" name="username" onfocus="showhide(\'name\')" onblur="showhide(\'name\')">
        <div id="name" style="display: none"><div style="position: absolute; right: -25px; top: 60px; float: right; width: 120px; margin-left: 6px; margin-top: 0px; padding: 2px; font-size: 12px; background-color: #E7C30D;">Ihr Benutzername muss mindestens 4 Zeichen enthalten</div></div>
      </div>
            
                        
              Vorname:<br>
              <input value="'.$a->vorname.'" autocomplete="off" id="feld" type="text"  maxlength="50" name="vorname">
            
              Nachname:<br>
              <input value="'.$a->nachname.'" autocomplete="off" id="feld" type="text"  maxlength="50" name="nachname">
                      
              Geburtstag:<br>
              <input value="'.$a->gbd.'" autocomplete="off" id="gbd" type="text" maxlength="2" name="gbd"> .
              <input value="'.$a->gbm.'" autocomplete="off" id="gbm" type="text" maxlength="2" name="gbm"> .
              <input value="'.$a->gbj.'" autocomplete="off" id="gbj" type="text" maxlength="4" name="gbj">
                       
                PLZ:<br>
                <input  style="width: 70px;"autocomplete="off" id="feld" type="text"  maxlength="5" name="plz">

                Wohnort:<br>
                <input style="width: 190px;" autocomplete="off" id="feld" type="text"  maxlength="50" name="wohnort">
          <br><br><br>
          <a id="buttonr" href="javascript:void(0)" onclick="document.regestrieren.submit()">Speichern</a>';
            }
    }
    else {if($bearbeiten == 'passwort'){
      echo' 
      '.$fehler_passwort.'
      <form action="index.php?seite=einstellungen&bearbeiten=passwort&sichern" method="post">
      <input autocomplete="off" type="password" name="passwort"><br />
      <input autocomplete="off" type="password" name="passwort2">
      <input type="submit" value="Speichern">
      </form>';
        
              if(isset($_GET['sichern'])) {
                  
                if(($passwort == "") AND ($passwort2 =="")) {$fehler_passwort = "beide Passwortfelder wurden nicht angegeben";}else {  
                if(($passwort == "") OR ($passwort2 =="")) {$fehler_passwort = "ein Passwortfeld wurde nicht angegeben";}else {  
                if($passwort != $passwort2) {$fehler_passwort = "die eingegebenen Passw&ouml;rter stimmen nicht überein.";} else {
                if(strlen($passwort) < 6) {$fehler_passwort = "das Passwort muss mindestens 6 Zeichen enthalten";} else {
        
                    mysql_query("UPDATE benutzer SET
                    passwort = '".mysql_real_escape_string(md5($passwort))."', WHERE 
                    email = '".mysql_real_escape_string($_SESSION["user"])."' 
                    ");
                    
                    echo "Die Daten wurden Erfolgreich Bearbeitet!";}}}}
                                          }    
    }
  }
}
 

AW: Update Script

Ich habe mir das Script jetzt nicht genau angeguckt, aber setz die MySQL Query Funktionen am besten in eine Variable oder überprüfe die korrekte Ausführung direkt mittels IF Abfrage.

Fehler in MySQL kannst du dann mit der Funktion: mysql_error() ausgeben.

Vielleicht hilft dir das bei der Fehlersuche schon mal weiter.

Beste Grüße
Pascal
 

vincitore

Aktives Mitglied

AW: Update Script

Hallo,
ich habe ein Problem mit meinem Script. Es läd das Script zum Passwort ändern, aber schreibt nichts in die Datenbank. Es werden mir keine Fehler angezeigt. Wisst ihr woran es liegt?

PHP:
<?php
include'mysql.php';
include'_php/variablen.php';

if(isset($_GET['start'])) {
echo'
<a href="index.php?seite=einstellungen&bearbeiten=profil">Profil bearbeiten</a><br>
<a href="index.php?seite=einstellungen&bearbeiten=passwort">Passwort ändern</a><br>
<a href="index.php?seite=einstellungen&bearbeiten=accounterstellen">Neuen Account anlegen</a>
';}

else {if($bearbeiten == 'profil'){
      $ergebniss = mysql_query("SELECT * FROM benutzer WHERE email = '".mysql_real_escape_string($_SESSION['user'])."'") or die(mysql_error());
      while($a = mysql_fetch_object($ergebniss)) {
      
      echo ' 
          <div style="float: left;">Künstlername:<br>
        <input value="'.$a->username.'"autocomplete="off" id="feld" type="text"  maxlength="50" name="username" onfocus="showhide(\'name\')" onblur="showhide(\'name\')">
        <div id="name" style="display: none"><div style="position: absolute; right: -25px; top: 60px; float: right; width: 120px; margin-left: 6px; margin-top: 0px; padding: 2px; font-size: 12px; background-color: #E7C30D;">Ihr Benutzername muss mindestens 4 Zeichen enthalten</div></div>
      </div>
            
                        
              Vorname:<br>
              <input value="'.$a->vorname.'" autocomplete="off" id="feld" type="text"  maxlength="50" name="vorname">
            
              Nachname:<br>
              <input value="'.$a->nachname.'" autocomplete="off" id="feld" type="text"  maxlength="50" name="nachname">
                      
              Geburtstag:<br>
              <input value="'.$a->gbd.'" autocomplete="off" id="gbd" type="text" maxlength="2" name="gbd"> .
              <input value="'.$a->gbm.'" autocomplete="off" id="gbm" type="text" maxlength="2" name="gbm"> .
              <input value="'.$a->gbj.'" autocomplete="off" id="gbj" type="text" maxlength="4" name="gbj">
                       
                PLZ:<br>
                <input  style="width: 70px;"autocomplete="off" id="feld" type="text"  maxlength="5" name="plz">

                Wohnort:<br>
                <input style="width: 190px;" autocomplete="off" id="feld" type="text"  maxlength="50" name="wohnort">
          <br><br><br>
          <a id="buttonr" href="javascript:void(0)" onclick="document.regestrieren.submit()">Speichern</a>';
            }
    }
    else {if($bearbeiten == 'passwort'){
      echo' 
      '.$fehler_passwort.'
      <form action="index.php?seite=einstellungen&bearbeiten=passwort&sichern" method="post">
      <input autocomplete="off" type="password" name="passwort"><br />
      <input autocomplete="off" type="password" name="passwort2">
      <input type="submit" value="Speichern">
      </form>';
        
              if(isset($_GET['sichern'])) {
                  
                if(($passwort == "") AND ($passwort2 =="")) {$fehler_passwort = "beide Passwortfelder wurden nicht angegeben";}else {  
                if(($passwort == "") OR ($passwort2 =="")) {$fehler_passwort = "ein Passwortfeld wurde nicht angegeben";}else {  
                if($passwort != $passwort2) {$fehler_passwort = "die eingegebenen Passw&ouml;rter stimmen nicht überein.";} else {
                if(strlen($passwort) < 6) {$fehler_passwort = "das Passwort muss mindestens 6 Zeichen enthalten";} else {
        
                    mysql_query("UPDATE benutzer SET
                    passwort = '".mysql_real_escape_string(md5($passwort))."', WHERE 
                    email = '".mysql_real_escape_string($_SESSION["user"])."' 
                    ");
                    
                    echo "Die Daten wurden Erfolgreich Bearbeitet!";}}}}
                                          }    
    }
  }
}

1. verwende if {} elseif {} anstelle von
PHP:
if{
}else{
  if{
  }else{
    if{}
  }
}
2. du wirst auch so nie einen Fehler ausgeben bekommen, da das echo $fehler; vor dem definieren der einzelnen Fehlernachrichten kommt und die beim neuladen der Seite nicht übergeben werden.
3. woher weiß dein Skript was $passwort ist?
 

Duddle

Posting-Frequenz: 14µHz

AW: Update Script

Lass dir die SQL-Anweisungen vor dem Query ausgeben. Dann kopier diesen Befehl und führe ihn manuell in der DB aus. Alternativ hängst du, wie schon erwähnt, an jedes mysql_query(...) ein
Code:
or die(mysql_error());


Duddle
 

MasterT

Nicht mehr ganz neu hier

AW: Update Script

Hallo,
@ Das Script weiß was $passwort ist weil ich in variablen.php $passwort definiert haben und include.

@ Leider spuckt er keine Fehlermeldung aus. Die Verbindung zur Datenbank ist aktiv und die felder richtig bennant. Ich bin Ratlos
 

Duddle

Posting-Frequenz: 14µHz

AW: Update Script

Naja, dann hast du eben keinen Nutzer, der in der Datenbank im Feld 'email' den Wert hat, der sich aus
PHP:
mysql_real_escape_string($_SESSION["user"])
ergibt. Wenn es auf keine Zeile zutrifft, ändert sich nichts.

Mir fällt soeben auch auf, dass du im UPDATE vor dem WHERE ein Komma zuviel hast. Ich bezweifle, dass MySQL das einfach ignoriert, aber lt. deiner Aussage wirft er dort keinen Fehler.


Duddle
 

MasterT

Nicht mehr ganz neu hier

AW: Update Script

Das Komma war es! Ich habe es kurz bevor du geschrieben hattest den Fehler gefunden und die Session war schon richtig ;) . Trotzdem, vielen vielen dank. So ein doofes Komma :D
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben