Kategorien

Suchen


Aktuelle Artikel

Archiv

iPad: Webseiten online kostenlos im iPad Simulator anzeigen & kontrollieren

Günther | 27.01.2012

Wenn Sie prüfen möchten, wie Ihre Webseite im iPad aussehen würde, dann nutzen Sie unseren Online iPad Simulator:

http://www.yourhelpcenter.com/ipad-browser-simulation/

Der Service ist kostenlos und auchjederzeit über den direkten Link in der oberen Menüzeile zu erreichen.

Kategorien: Allgemeines |

Google: Neue Datenschutzbestimmungen & Nutzungsgrundlagen (AGB)

Günther | 27.01.2012

Google ändert zum 01.03.2012 seine Datenschutz- und Nutzungsbestimmungen. Dabei sollte man einen genaueren Blick auf den Inhalt der neuen Datenschutzrichtlinien werfen, denn (mal ehrlich) weniger Daten wird Google nicht speichern und auswerten. Das ist schließlich das Kerngeschäft des Internetriesen.

Auf Formulierungen wie “gegebenenfalls” und “möglicherweise” können Sie sich selber einen Reim machen:

Wir erfassen möglicherweise gerätespezifische Informationen (beispielsweise das von Ihnen
verwendete Hardware-Modell, die Version des Betriebssystems, eindeutige Gerätekennungen
und Informationen über mobile Netzwerke, einschließlich Ihrer Telefonnummer). Google verknüpft 
Ihre Gerätekennungen oder Telefonnummer gegebenenfalls mit Ihrem Google-Konto.

Klartext: Google kennt Ihre Handy-Telefonnummer und Zusatzdaten (Modell, Betriebssystem, eindeutige ID, Ihre Netzwerke) und hinterlegt diese Daten in Ihrem Benutzerkonto.

Wenn Sie unsere Dienste nutzen oder von Google bereitgestellte Inhalte aufrufen, erfassen 
und speichern wir bestimmte Daten gegebenenfalls in Serverprotokollen. Diese Protokolle 
können Folgendes enthalten:
 
    Einzelheiten zu der Art und Weise, wie Sie unsere Dienste genutzt haben, beispielsweise
    Ihre Suchanfragen.
 
    Telefonieprotokollinformationen wie Ihre Telefonnummer, Anrufernummer, 
    Weiterleitungsnummern, Datum und Uhrzeit von Anrufen, Dauer von Anrufen, 
    SMS-Routing-Informationen und Art der Anrufe.
 
    IP-Adresse.
 
    Daten zu Geräteereignissen wie Abstürze, Systemaktivität, Hardware-Einstellungen, 
    Browser-Typ, Browser-Sprache, Datum und Uhrzeit Ihrer Anfrage und Referral-URL.
 
    Cookies, über die Ihr Browser oder Ihr Google-Konto eindeutig identifiziert werden können.

Klartext: Google kennt Ihre Vorlieben, Sorgen, Neigungen und Probleme (Ihre Suchanfragen) sowie Ihre Handydaten (Telefonnummern, Nummern der Anrufer, Daten, Uhrzeit und Dauer der Telefonate usw). Natürlich auch den Verlauf Ihrer IP-Adressen (Ihre eindeutige Kennung bei Nutzung des Internets). Damit es ganz sicher wird, können diese Daten durch “Cookies” erhalten und besser verknüpft werden. Dadurch lassen sich solche Informationen später eindeutig zuordnen.

Bei der Nutzung standortbezogener Google-Dienste erheben und verarbeiten wir möglicherweise
Informationen über Ihren tatsächlichen Standort, wie zum Beispiel die von einem Mobilfunkgerät
gesendeten GPS-Signale. Darüber hinaus verwenden wir zur Standortbestimmung verschiedene
Technologien, wie zum Beispiel Sensordaten Ihres Geräts, die beispielsweise Informationen über
nahegelegene WLAN-Zugänge oder Sendemasten enthalten können.

Klartext: Wenn Sie auf Ihrem Handy GPS-Googledienste nutzen, dann speichert Google gleich noch Ihren aktuellen Standort. Um diesen sicher zu berechnen, nutzt Google die GPS Daten Ihres Handys z.Bsp. Ihren GPS Empfänger) oder WLAN Zugänge in Ihrer Nähe. Diese sind nicht genauer definiert; es können also öffentliche WLAN Zugänge (Flughäfen, etc.) sein oder (und genau das ist nicht ausgeschlossen) auch die Kennungsdaten der privaten WLAN Netzwerke in Ihrer jeweiligen Umgebung. Sollte Google dann mehrfach solche Informationen mit GPS Koordinaten erhalten, so kann sehr einfach dadurch ein WLAN Profil (oder auch WLAN Landkarte) erstellt werden. Hat Google dann sogar die WLAN Kennung einer anderen Person (z.Bsp. durch andere Googledienste auf dessen Computer) eindeutig mit diesem WLAN in Verbindung gebracht, dann weiß Google automatisch, wo sich dieses WLAN exakt befinden … den die passenden GPS Daten hat man ja auch gespeichert.

Bestimmte Dienste haben eine eindeutige Anwendungsnummer. Diese Nummer und installations-
spezifische Daten, wie zum Beispiel Art des Betriebssystems oder Anwendungsnummer der Version,
werden möglicherweise bei der Installation oder Deinstallation des entsprechenden Dienstes an
Google gesendet oder wenn der Dienst zum Beispiel wegen automatischer Updates Kontakt mit
unseren Servern aufnimmt.

Klartext: Einige Dienste (evtl. alle ?) haben eine eindeutige (einmalige) ID, welche Google bei bestimmten Aktionen neben der eigentlichen Aktion erhält. Damit weiß Google, welche Anwendungen Sie auf welchem Stand betreiben und wann Sie was aktualisiert haben.

Gegebenenfalls erheben und speichern wir Informationen (einschließlich personenbezogene Daten)
lokal auf Ihrem Gerät, indem wir Mechanismen wie beispielsweise den Webspeicher Ihres Browsers
(einschließlich HTML 5) und Applikationsdaten-Caches nutzen.

Klartext: Ihre persönlichen Daten (welche auch immer !) werden auch lokal aus Ihrem Browser abgerufen. Dabei ist hier nicht genau festgelegt, ob dabei z.Bsp. auch die Daten anderer Anwendungen ausgelesen und zu Google übertragen werden. Damit wäre Ihr Browser dann das größte Plappermaul überhaupt – und dabei kennt es auchnoch alle Ihre persönlichen Daten wie Surfverhalten, besuchte Webseiten, hinterlegte Daten, Einkäufe, Bankbesuche, Download, usw. usw. Und das alles kann dan zu Google übertragen werden.

Wir verwenden verschiedene Technologien, um Informationen zu erheben und zu speichern, wenn
Sie einen Google-Dienst aufrufen, darunter auch die Versendung von einem oder mehreren Cookies
oder anonymen Kennungen an Ihr Gerät. Darüber hinaus verwenden wir Cookies und anonyme 
Kennungen auch, wenn Sie mit Diensten interagieren, die wir unseren Geschäftspartnern anbieten,
wie beispielsweise Werbedienste oder Google-Funktionen, die auf anderen Webseiten angezeigt
werden.

Klartext: Ihre Identität wird mit unterschiedlichen Techniken hinterlegt. Diese Techniken kennen auch die Partner von Google (z.Bsp. Werbedienste, Analysedienste, usw.) und können damit Ihre Identität auslesen. Jetzt wäre ein Schelm, wer dann daran denkt, dass diese Partner (das Wort sagt es schon) nicht auch die restlichen bei Google über Sie gespeicherten Daten einsehen können. Wer soweit denken mag, dem wäre eines sofort klar: Alles was Google über Sie weiß, das wissen dann auch die Google Partner.

Weitere Inhalte

Wie weiteren Inhalte der neuen Google Datenschutzbestimmungen (hier als Vorab-Info einsehbar) schränken diese Recht nicht wirklich ein. Zwar kann der benutzer einige seiner Daten kontrollieren und einschränken, was jedoch schwer fallen wird: Der genaue Umfang ist nicht wirklich definiert, da es fast überall nur “könnte”, “mag”, “möglicherweise”, “vielleicht” und “gegebenenfalls” heißt.

Umgang der Bestimmungen

Für Nicht-Techniker ist der wahre Umfang der Datensammlung wohl nur schwer zu durchblicken. Begriffe wie “Cookies”, “Cache”, “Webspeicher Ihres Browsers (einschließlich HTML 5)” und “SMS-Routing-Informationen” verbessern auch nicht gerade das Verstehen.

Dieser Text stellt ausdrücklich keine Rechtsauskunft, Rechtsberatung oder andere rechtliche Hilfe dar. Er soll Ihnen aus rein EDV-technischer Sicht eine weitere Sichtweise oder Beschreibung des Inhaltes liefern und Sie damit sensibler für Ihre Daten und deren Nutzung bzw. Speicherung machen.

Kategorien: Allgemeines, Sicherheit |

Yii: Anzahl der Zeilen im Grid per DropDown auswählen (pagesize)

Günther | 10.01.2012

Um in einer Yii Tabelle (“zii.widgets.grid.CGridView”) die Anzahl der angezeigten Zeilen durch den Benutzer dynamisch auswählen zu lassen, zeigt Ihnen dieser Artikel eine Lösung:

Beispielansicht:


 
 
 
 

Dafür sind in drei Dateien kleine Anpassungen notwendig:

(1) Im Controller (“protected/controllers/xxxController.php”):

1
2
3
4
5
6
7
8
public function actionAdmin() {
  // [...]
  if (isset($_GET['pageSize'])) {
    Yii::app()->user->setState('pageSize',(int)$_GET['pageSize']);
    unset($_GET['pageSize']);
  }
  // [...]
}

(2) Im Model (“protected/models/xxx.php”);

1
2
3
4
5
6
7
8
9
public function search() {
  // [...]
  return new CActiveDataProvider(get_class($this), array(
    "pagination" => array(
      "pageSize" => Yii::app()->user->getState("pageSize",Yii::app()->params['defaultPageSize']),
    ),
    "criteria" => $criteria,
  ));
}

(3) Im View (“protected/views/xxx/admin.php”):

1
2
3
4
5
6
7
8
9
10
11
12
13
$pageSize=Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']);
$this->widget('zii.widgets.grid.CGridView', array(
  "id" => "xxx-grid",
  "dataProvider" => $model->search(),
  // [...]
  array(
    "class" => "CButtonColumn",
    "header" => CHtml::dropDownList('pageSize',$pageSize,array(10=>10,20=>20,50=>50,100=>100,999999=>"Alles"),array(
      "onchange" => "$.fn.yiiGridView.update('xxx-grid',{ data:{pageSize: $(this).val() }})",
      )),
    ),
  ),
));

Bitte nicht vergessen, bei Schritt (3) auch den Namen der Tabelle (im Beispiel “xxx-grid”) auch im “onChange” Event anzupassen. Ansonsten reagiert die Anzeige nicht auf den Wechsel der Auswahl und bleibt stets auf der Standard-Anzahl.

Kategorien: Yii |

Yii: Passwörter automatisch verschlüsselt in der Datenbank speichern (Beispiel: mySQL & md5)

Günther | 09.01.2012

Es ist sehr sinnvoll, ein Passwort vor der Speicherung in die Datenbank automatisch zu verschlüsseln. Dadurch sind diese vor allzu leichtem Auslesen geschützt. Dabei muss auf die Möglichkeit hingewiesen werden, dass natürlich auch MD5 codierte Passwörter nicht zu 100% vor dem Entschlüsseln bzw. Auslesen sicher sind. Es gibt z.Bsp. Tabellen mit gängigen und kurzen Codes – dann hilft auch die beste Codierung wenig.

Als zusätzlichen Schutz sollte man daher einen “Salt” String zusätzlich vor das Passwort kopieren – dadurch wird das Passwort deutlich länger und damit schwerer zu entschlüsseln.

Am Beispiel des PHP Frameworkes Yii stelle ich die automatisch Verschlüsselung vor.

Die Model-Datei (“../protected/models/xyz.php”) muss dafür um die “beforeSave”-Funktion erweitert werden:

1
2
3
4
public function beforeSave() {
       $this->password = md5($this->password);
       return parent::beforeSave();
}

Für die zusätzliche Verlängerung des Passwortes mit einem “salt” string:

1
2
3
4
public function beforeSave() {
       $this->password = md5(Yii::app()->params["salt"] . $this->password);
       return parent::beforeSave();
}

Der “salt” string kann dann in der Konfiguration (“../protected/config/main.php”) festgelegt werden. Dieser darf nach dem Speichern von Passwörtern nicht mehr verändert werden, denn ansonsten können die gespeicherten Passwörter nicht mehr vergleichen werden !

1
2
3
4
5
  "params" => array(
      "adminEmail" => "xxx@yyy.zz",
      // "salt" string
      "salt" => "3HpwFE.bQ(GhyTrc=)RsS.E#584qrph-ZgGyeXfx",
  ),

Kategorien: Yii |

Yii: Verbindung zur mySQL Datenbank herstellen (connectionstring)

Günther | 06.01.2012

Um im PHP Framework Yii eine Verbindung zu einer lokalen mySQL Datenbank herzustellen, nutzen Sie folgende Einstellungen in der Datei “../protected/config/main.php”:

1
2
3
4
5
6
7
8
9
  "db" => array(
    "class" => "CDbConnection",
    "connectionString" => "mysql:host=localhost;dbname=DBNAME",
    "username" => "UNAME",
    "password" => "PWORD",
    "tablePrefix" => "PFIX", // optional
    "charset" => "utf8" // optional
    // "emulatePrepare" => true, // optional
  ),

Bitte ersetzen Sie:

DBNAME Name Ihrer mySQL Datenbank
UNAME Name des Datenbankbenutzers
PWORD Passwort des Datenbankbenutzers
PFIX Evtl. den Prefix der Datenbanktabellennamen (optional)

Meist finden Sie in dieser Datei bereits einen vorbereitetn Berich für die mySQL Verbindung.

Kategorien: Yii |

Sicherheit: Aktive FTP Verbindungen anzeigen (Linux: Ubuntu, Debian)

Günther | 18.12.2011

Um sich alle aktiven Verbindungen Ihres ProFTP Servers anzeigen zu lassen, nutzen Sie folgenden Befehl:

ftpwho -v

Beispielanzeige:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
standalone FTP daemon [7309], up for 4 min
 7310 (none)   [  4m9s] (authenticating)
	client: 2015.adsl.provider.com [::ffff:194.24.154.245]
	server: 123.123.123.123:22 (Debian)
 
 7315 skansoft [  4m4s]   2m1s idle
	client: 92015.adsl.provider.com [::ffff:14.124.14.25]
	server: 123.123.123.123:22 (Debian)
	location: /
 
 7625 skansoft [ 3m33s] ( 37%) RETR filename example.sql
	KB/s: 65.84
	client: 92015.adsl.provider.com [::ffff:14.124.14.25]
	server: 123.123.123.123:22 (Debian)
	location: /mre.de
 
Service class                      -   3 users

Kategorien: Allgemeines, Linux, Sicherheit |

Sicherheit: Verschlüsseltes Backup per FTP unter Linux (Debian) mit “duplicity”

Günther | 11.12.2011

Zuerst muss das “duplicity” Paket installiert werden:

apt-get install duplicity ncftp

Das Paket “ncftp” wird ebenfalls installiert – ansonsten erhalten Sie die folgende Fehlermeldung beim Starten des Backupprogrammes:

sh: ncftpls: not found
NcFTP not found:  Please install NcFTP version 3.1.9 or later

Verschlüsseltes Backup über FTP

Erstellen Sie einen neuen GPG Schlüssel für den Backup-Prozess:

Sie können sich jederzeit alle auf Ihrem System verfügbaren GPG Schlüssel anzeigen lassen:

gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   1024D/84EE3A53 2002-02-28
uid                  Carl Peterson <cpeterson@somewhere.com>
sub   1024g/96BE17FA 2002-02-28

Die GPG Key ID finden Sie im oberen Beispiel in der Nummer “84EE3A53“.
Diese Key ID (Schlüsselkennung) werden Sie bei der späteren Sicherung benötigen.

Testen Sie nun Ihr verschlüsseltes Backup

Damit das Backup-Programm “duplicity” sich beim Speichern auf den FTP Server anmelden kann, wird das Benutzerpasswort für den FTP Zugang benötigt (“FTP_PASSWORD”). Für die Verschlüsselung der Daten wird das o.a. geheime GPG Passwort ebenfalls gebraucht (“PASSPHRASE”):

1
2
3
4
5
export FTP_PASSWORD=DasFtpPasswort
export PASSPHRASE=IhrGeheimesGpgPasswort
duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --include /etc --include /home --include /root --include /var --exclude /var/tmp --exclude '**' / ftp://username@backupserver/foldername
unset PASSPHRASE
unset FTP_PASSWORD

Ich persönlich teste das Backupsystem und die Verbindung zum FTP Server jedoch immer gerne mit einem kleineren und damit schnelleren Beispiel – ich sichere nur das “/etc” Verzeichnis:

1
2
3
4
5
export FTP_PASSWORD=DasFtpPasswort
export PASSPHRASE=IhrGeheimesGpgPasswort
duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --include /etc --exclude '**' / ftp://username@backupserver/foldername
unset PASSPHRASE
unset FTP_PASSWORD

Wenn Ihr Testbackup erfolgreich verlief, dann können (und sollten) Sie das Backup regelmäßig automatisch durchführen lassen. Dafür nutzen Sie einfach Ihr Testscript, fügen die Zeile “#!/bin/bash” am Anfang ein und speichern die Datei ab:

1
2
3
4
5
6
#!/bin/bash
export FTP_PASSWORD=DasFtpPasswort
export PASSPHRASE=IhrGeheimesGpgPasswort
duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --include /etc --exclude '**' / ftp://username@backupserver/foldername
unset PASSPHRASE
unset FTP_PASSWORD

Achten Sie darauf, dass das Script ausführbar ist (“chmod +x scriptname”) und tragen Sie den Start in die Crontab ein.

Verbindung zum FTP Server über einen anderen Port (Standard ist Port 21)

Häufig ist es sinnvoll, den normalen FTP Port (21) zu verschleiern und ihn auf einen anderen Port zu verlegen. Dnn müssen Sie Ihr Backup-Script wie im folgenden Beispiel anpassen. Hier wurde Port 5555 gewählt:

1
2
3
4
5
6
#!/bin/bash
export FTP_PASSWORD=DasFtpPasswort
export PASSPHRASE=IhrGeheimesGpgPasswort
duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --include /etc --exclude '**' / ftp://username@backupserver:5555/foldername
unset PASSPHRASE
unset FTP_PASSWORD

Wiederherstellen (Restore) eines Backups von einem FTP Server

Auf dem Computer, auf welchem das Backup wiederhergestellt werden soll, muss der passende GPG Schlüssel eingerichtet sein.
Er muss zwingend dem von Ihnen angelegten Schlüssel (sh. oben) entsprechen.

Um die installierten Schlüssel anzuzeigen nutzen Sie folgenden Befehl:

gpg --list-keys

Im Vergleich zum Beispiel für das Backup muss der Schlüssel “84EE3A53″ vorhanden sein.

1
2
3
4
5
6
mkdir /var/tmp/restorefolder
export FTP_PASSWORD=DasFtpPasswort
export PASSPHRASE=IhrGeheimesGpgPasswort
duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" ftp://username@backupserver/foldername /var/tmp/restorefolder
unset PASSPHRASE
unset FTP_PASSWORD

Wiederherstellen (Restore) einer einzelnen Datei von einem FTP Server

Um nur eine einzelne Datei wiederherzustellen, nutzen Sie folgenden Befehl:

duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --file-to-restore home/test/file.txt ftp://username@ftpserver/foldername /var/tmp/file.txt

Wurde die Datei zum Beispiel von einem Tag gelöscht und anschließend wieder ein Backup durchgeführt, dann nutzen Sie die Option “-t 1D”. Dabei steht die Anzahl der Tage vor dem “D”:

duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" -t 1D --file-to-restore home/test/file.txt ftp://username@ftpserver/foldername /var/tmp/file.txt

Wiederherstellen (Restore) eines Ordners von einem FTP Server

Im Kern entspricht der Befehl dem vorherigen Beispiel – nur die Option “–file-to-restore” ist anders:

duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" --file-to-restore home/test/folder ftp://username@ftpserver/foldername /var/tmp/folder

Anzeigen der Dateien und Ordner in einem Backup auf einem FTP Server

duplicity --encrypt-key "84EE3A53" --sign-key "84EE3A53" list-current-files ftp://username@ftpserver/foldername

Es gibt noch einige andere (nützliche) Befehle.
Eine Übersicht erhalten Sie mit dem folgenden Befehl:

duplicity --help

Kostenlose & gute Alternativen
Duplicati
Wir hatten das Programm bereits gefunden und keine OpenSource Hinweise entdeckt. Die Entwickler von “Duplicati” haben uns kurz nach der Veröffentlichung dieses Artikels angeschrieben und einen Link zu den Quellen gegeben:
http://code.google.com/p/duplicati/source/browse/
Wir werden das Programm in den nächsten Tagen für Sie prüfen (Datensicherheit, etc.) und Ihnen dann hier eine kurze Empfehlung geben.

Kategorien: Allgemeines, Datenschutz, Sicherheit |

Linux: “Dieses Aptitude hat keine Super-Kuh-Kräfte” ?

Jockel | 06.12.2011

Wenn Sie unter Linux den Befehl “apt-get –help” eingeben, wird Ihnen die Meldung

Dieses APT hat Super-Kuh-Kräfte.

angezeigt. Das Programm “aptitude hingegen (“aptitude –help”) hat keine:

Dieses Aptitude hat keine Super-Kuh-Kräfte.

Wenn Sie sich fragen, was das soll oder was dort noch so versteckt ist, dann finden Sie mehr Infos in diesem Artikel:

apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...

Oder Sie suchen “Easter-Eggs” (Ostereier = versteckte, meist lustige Programmfunktionen) in den beiden Programmen:

aptitude moo
In diesem Programm gibt es keine Easter Eggs.
aptitude -v moo
In diesem Programm gibt es wirklich keine Easter Eggs.
aptitude -vv moo
Habe ich nicht bereits erklärt, dass es in diesem Programm keine Easter Eggs gibt?
aptitude -vvv moo
Hör auf!
aptitude -vvvv moo
Okay, wenn ich Dir ein Easter Egg gebe, wirst Du dann aufhören?
aptitude -vvvvv moo
Gut, Du hast gewonnen.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------

Um herauszufinden, das Ihnen da angezeigt wurde:

aptitude -vvvvvv moo
Was das ist? Natürlich ein Elefant, der von einer Schlange gefressen wurde.

Mehr “v” Parameter bringen nicht mehr zum Vorschein … derzeit.

Kategorien: Allgemeines, Linux |

ExtJS: Lösung für Fehlermeldung “this.items.items[0] is undefined”

Günther | 01.12.2011

Die folgende Fehlermeldung tritt in einer ExtJS Anwendung häufig dann auf, wenn in einem Form-Element andere Elemente (wie z.Bsp. ein “Ext.grid.Grid”) eingebaut sind:

this.items.items[0] is undefined

Im folgenden Beispiel finden Sie in der 4. Zeile (“isFormField: true”) die Lösung für das Problem:

1
2
3
4
5
6
7
  items: [new Ext.grid.GridPanel({
    id: "testGrid",
    autoScroll: true,
    isFormField: true,
    height: 200,
    width: 400,
    columns: [{

Gehen Sie in Ihrem JS (JavaScript) Quellcode in das Nicht-Form-Element und fügen Sie die Zeile dort ein.

Sollten Sie das Element mit dem Formular auf Gültigkeit testen wollen (Validierung), dann benötigen Sie zusätzlich noch die Funktion “isValid” innerhalb des Elementes. Ansonsten erhalten Sie ggf. diese Fehlermeldung:

field.isValid is not a function

Am Beispiel des oberen “Ext.grid.GridPanel” hier der JavaScript Code:

1
2
3
4
5
6
7
8
9
10
11
  items: [new Ext.grid.GridPanel({
    id: "testGrid",
    autoScroll: true,
    isFormField: true,
    height: 200,
    width: 400,
    columns: [...],
    isValid: function() {
      // check ...
      return true;
    }

Fügen Sie Ihre Prüfungen in Zeile 9 ein und entscheiden Sie durch Ihre Prüfungen, ob das Element gültig ist oder nicht. Dabei können Sie z.Bsp. abfragen, ob mindestens eine Zeile im Grid ausgewählt wurde:

1
2
3
  isValid: function() {
    return Ext.getCmp("testGrid").selModel.selections.length > 0;
  }

Kategorien: Ext JS |

Sicherheit: Unser kostenloser Online-Passwortgenerator

Günther | 29.11.2011

Ein sicheres passwort ist der einfachste Schutz gegen unberechtigtes Einsehen in Ihre vertraulichen und privaten Daten.

Leider denken sich viel zu wenig PC- und Internetbenutzer wirklich sichere Passwörter aus. Immernoch werden allzu gerne Vornamen, Spitz-, Tier- und Kosenamen genutzt. Am schlimmsten sind wohl noch die eigenen Vornamen oder stets das gleiche Passwort … möglichst noch viele Jahre lang.

Damit jeder Benutzer einfach, schnell und sicher seine eigenen Passwörter erstellen kann haben wir Ihnen unseren kostenlosen Online-Passwortgenerator zur Verfügung gestellt:

http://www.yourhelpcenter.de/passwortgenerator/

Hier können Sie sich unkompliziert Passwörter bis zu 40 Zeichen erzeugen lassen. Dabei erhält jeder Besucher stets ein anderes Passwort – wenn Sie die Seite also mehrfach aufrufen, dann erhalten Sie jedes Mal ein anderes Passwort.

Kategorien: Allgemeines, Datenschutz, Sicherheit |


« Vorheriger Beitrag