Password generien/Datenbank speichern

Kannst du nocheinmal bitte kurz zusammenfsse was genau dein Problem ist? Das Password wird jetzt nur beim Absenden generiert richtig (damit bist du also fertig)?
 
Nein leider nicht. Vll ist es besser, dass abschicken an die Datenbank erstmal zu ignorieren. Ich will erstmal, dass das generier des Passwortes nur durch das klicken des Buttons passiert. Das weiterleiten ist dann der zweite Schritt.
 
Versuch mal folgendes

PHP ueberprueft ob der submit Button betaetigt wurde und ruft die Funktion nur auf falls dies der Fall ist.

Ich habe den Code jetzt nicht ausprobiert, aber die Logik sollte stimmen. Google mal nach self submitting form

PHP:
<?php 
    function generate_password($len=10){

        $i = 0;
        $pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $pool .= "abcdefghijklmnopqrstuvwxyz";
        $pool .= "1234567890";
 
        $password="";
            for ($i = 0; $i < $len; $i++){
                $password .= $pool{rand(0, strlen($pool)-1)};
                }
                return $password;
                
        }
		
		if(isset($_POST['submit']))
		{	
        $pass = generate_password();
		}

?>


<form method='post' action="namederDatei.php">
    <input type="text" value= <? if(isset($pass))echo $pass;?> /> <br>
    <input type="submit"  value="Speichern" name='submit' />
    
</form>
 
Zuletzt bearbeitet:
Nein leider nicht. Vll ist es besser, dass abschicken an die Datenbank erstmal zu ignorieren. Ich will erstmal, dass das generier des Passwortes nur durch das klicken des Buttons passiert. Das weiterleiten ist dann der zweite Schritt.

das geht mit PHP nicht
PHP wird vorm Aufruf der Seite ausgeführt - mit andren Worten du must mit Javascript dafür sorgen das beim Button "Passwort erstellen" die Webseite neu aufgerufen wird, dabei gibt man dem Aufruf den Wert mit das ein neues password gebraucht wird
 
mit andren Worten du must mit Javascript dafür sorgen das beim Button "Passwort erstellen" die Webseite neu aufgerufen wird

Genau das geschieht doch wenn man ein Form hat welches die eigene Datei als Ziel hat. Die Seite wird neu geladen. Ich sehe dort keinen nutzen Javascsript zu benutzen, ausser wenn er alles ohne das Neuladen der Seite machen moechte (dann muesste er aber mit Ajax arbeiten)
 
OffTopic:
Statt die funktion generate_password() könntest du auch
PHP:
$password = substr(md5(time()+rand(0,99)),0,10);

sollte ebenfalls das gewünschte ergebnis liefern.
 
Danke für den Hinweis. Aber hier wird ja das Passwort gleich maskiert und ich muss später das Passwort unterschiedlich verschlüsseln.

Der Code läuft jetzt sauber durch, allerdings will er sowohl beim passwort generieren als auch beim speichern auf die Datenbank zugreifen.

PHP:
case "passwort_generieren":
					
					if($_SESSION[admin]==1 || $_SESSION[passwort_generieren]>0) {
						echo "<h1>$l[passwort_generieren]</h1>";
						echo "<form method=\"post\" action=\"\>";	
						echo "<select name=\"kunde\" size=\"1\">";
						
		
						
			function generate_password($len=10){

				$i = 0;
				$pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
				$pool .= "abcdefghijklmnopqrstuvwxyz";
				$pool .= "1234567890";

				$password="";
					for ($i = 0; $i < $len; $i++){
						$password .= $pool{rand(0, strlen($pool)-1)};
					}
					 return $password;
			}
			
			if(isset($_POST['submit'])){    
				
				$pass = generate_password();
			}
			echo customer_select($cid=0, $jssend=true);
			echo "<input type=\"text\" value= <? if(isset($pass))echo $pass;?> />";
			echo "<input type=\"submit\" OnClick= \"generate_password(this.form);\" value=\"Passwort generieren\" name='submit'>";
			echo "</table><input type=\"submit\" name=\"submit\" value=\"Speichern\" />";
			echo "</form>";
		}
					
					
				
		 break;
 
Zuletzt bearbeitet:
Zurück