SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.03.2007, 14:20:27
Mozzarella Mozzarella ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 7
AES_DECRYPT funktioniert nicht

Hallo,

ich möchte Passwörter für ein htaccess-geschütztes Verzeichnis verschlüsselt zunächst in einer Datenbnk speichern.

Das Ablegen funktioniert so (und klappt auch):
PHP-Code:
$sql "INSERT INTO benutzer (name, email, benutzername, passwort) VALUES (
    '"
.addslashes($absender)."', 
    '"
.addslashes($eMail)."', 
    '"
.addslashes($benutzer)."', 
    AES_ENCRYPT('$passwort', 'enigma'))"
;
$result mysql_query($sql); 
Die Werte werden in einer BLOB-spalte gespeichert.

Das Auslesen funktioniert aber nicht, es wird irgendwie kein Wert zurückgegeben:
PHP-Code:
$sql "SELECT id, name, AES_DECRYPT(passwort, 'enigma') FROM benutzer WHERE erlaubt = 'nein' ORDER BY name";
$result mysql_query($sql);
while (
$ds mysql_fetch_object($result)) {
    
$index $ds->id;
    
$person $ds->name;
    
$decodiert $ds->passwort;
    ... 
Ich verstehe nicht, wo das der Fehler liegt!?

P.S. "erlaubt" ist eine weitere Spalte, die defaultmäßig auf "nein" gesetzt und daher im oberen SQL-String nicht aufgeführt wird.

Geändert von Mozzarella (13.03.2007 um 14:32:54 Uhr)
Mit Zitat antworten
  #2  
Alt 13.03.2007, 14:32:12
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: AES_DECRYPT funktioniert nicht

Welchen Spaltentyp hat passwort?

Zitat:
AES_ENCRYPT() encrypts a string and returns a binary string. AES_DECRYPT() decrypts the encrypted string and returns the original string.
Mit Zitat antworten
  #3  
Alt 14.03.2007, 00:41:37
Mozzarella Mozzarella ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 7
AW: AES_DECRYPT funktioniert nicht

Gemäß der Referenz habe ich ein BLOB verwendet. Wenn ich den Spaltentyp später in VARCHAR ändere, kommen erwartungsgemäß Hieroglyphen dabei heraus. Das Speichern funktioniert also. warum dann nicht das Auslesen?

Geändert von Mozzarella (14.03.2007 um 00:41:53 Uhr)
Mit Zitat antworten
  #4  
Alt 14.03.2007, 02:06:55
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: AES_DECRYPT funktioniert nicht

Zitat:
Zitat von Mozzarella Beitrag anzeigen
Das Speichern funktioniert also. warum dann nicht das Auslesen?
Deshalb (eben erst gesehen):

Zitat:
SELECT id, name, AES_DECRYPT(passwort, 'enigma') FROM benutzer WHERE erlaubt = 'nein' ORDER BY name

$decodiert = $ds->passwort;
Da hätte PHP meckern müssen, weil es kein $ds->passwort gibt. Da fehlt schlicht und einfach nach dem Funktionsterm ein Alias
Mit Zitat antworten
  #5  
Alt 16.03.2007, 01:21:52
Mozzarella Mozzarella ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 7
AW: AES_DECRYPT funktioniert nicht

Ah, so langsam kapiere ich es: Wenn ich eine Funktion in SQL verwende, muss ich anschließend einen Term angeben, an den übergeben wird, oder?
Hatte ein ähnliches Problem mit der Funktion DATE_FORMAT (auch in diesem Forum gepostet).

Danke sehr!
Mit Zitat antworten
  #6  
Alt 16.03.2007, 02:22:37
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: AES_DECRYPT funktioniert nicht

Zitat:
Zitat von Mozzarella Beitrag anzeigen
Ah, so langsam kapiere ich es: Wenn ich eine Funktion in SQL verwende, muss ich anschließend einen Term angeben, an den übergeben wird, oder?
Einen "Ersatzbezeichner" (Alias):
Zitat:
In der Mathematik bezeichnet Term einen sinnvollen Ausdruck, der Ziffern, Variablen, Symbole für mathematische Verknüpfungen und Klammern enthalten kann.
Das ist ein Term:
Code:
AES_DECRYPT(passwort, 'enigma')
Da PHP das nicht als Namen für eine Methode verwenden kann, mußt Du einen Alias angeben:
Code:
AES_DECRYPT(passwort, 'enigma') AS lesbares_passwort
damit Du damit arbeiten kannst (MySQL benötigt an dieser Stelle keinen Alias, aber der MySQL Client):
PHP-Code:
echo $row->lesbares_passwort
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild als Blob in DB - Ausgabe funktioniert nicht ceptar PHP Grundlagen 6 19.02.2006 18:15:33
Bildupload funktioniert lokal, online aber nicht 8805-evergreen. PHP Grundlagen 11 09.02.2006 15:55:48
TXT-Datei splitten, funktioniert nicht mit Leerstellen BenjaminG PHP Grundlagen 11 29.06.2005 17:08:04
Eintrag aus DB lesen - funktioniert nur teilweise exweised PHP Grundlagen 4 07.09.2004 12:04:25
prüfen unter welcher Endung PHP funktioniert... FourSix Off Topic Area 4 10.04.2003 23:37:28


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt