Kategorien
MySQL

PhpMyAdmin Inaktivitäts Zeitunkt erhöhen

Was mich richtig nervt, sind die automatischen Logouts von PhpMyAdmin, welche nach 1440s durchgeführt werden.

Dazu muss man in libraries/config.default den Wert ändern:

$cfg['LoginCookieValidity'] = 1440;

Un außerdem in der php.ini die Session Lifetime erhöhen, wenn nötig: session.gc_maxlifetime.

Kategorien
MySQL

MySQL reservierte Bezeichner und Release

Gerade habe ich an dem Problem gehangen, dass ich mit Doctrine eine neue Spalte namens „release“ füllen wollte. Mit Release wart das Release-Datum von CDs gemeint. Es kam die Standard Fehlermeldung von MySQL, das ein  Fehler bei release war.

$products->release = 2003;

Natürlich habe ich es auf Doctrine geschoben, weil da oft solch ein komisches Zeug passiert. Komisch war, dass die Fehlermdlung nicht auftrat bei:

$products->release = NULL;

Das gab mir schwer zu denken und führte mich auf die falsche Fährte in Richtung, dass der Wertebereich nicht passte.

Die Lösung war ganz einfach: Das Word Release gehört zu den reservierten Wörtern in MySQL, was ich nicht wusste. Einen Überblick gibt es hier.

Die Lösung war also, den Spalte umzubennen in product_release, damit funktioniert es dann:

$products->product_release = 2003;

Was genau der release-Befehl in MySQL macht, konnt ich leider nicht herausfinden, ich freue mich auf Beiträge darüber.

Kategorien
Diverses

HTML Kunst

Mir ist ausversehen etwas lustiges beim Programmieren passiert: Beim Einlesen und Auswerten von über hundert HTML- Seiten für mein neustes Projekt ist mir die folgende Debusausgabe passiert. HTML Kunst:

Kategorien
PHP

Auffüllen von Zahlen mit führenden Nullen in PHP

Wenn man eine Zahl mit führenden Nullen versehen will, wie z.B. 001, dann bietet sich die Funktion str_pad an:

$nummer3stellig = str_pad(1, 3, 0, STR_PAD_LEFT);
Kategorien
jQuery

verschieben von absolut positionierten Elementen mit jQuery

Wenn man alle Elemente bspw. aus generiertem HTML verschieben will, bietet sich jQuery an.

Folgendes HTML habe ich aus einem PDF zu HTML Umwandlungsprogramm erhalten:

<div style="position:absolute;top:97;left:333"><nobr><span class="ft1"> </span></nobr></div>
<div style="position:absolute;top:121;left:333"><nobr><span class="ft1"> </span></nobr></div>
<div style="position:absolute;top:145;left:333"><nobr><span class="ft1"> </span></nobr></div>
<div style="position:absolute;top:170;left:293"><nobr><span class="ft2">Text </span></nobr></div>

Um die Inline Styles zu verändern und die Div-Blöcke um 100px zu verschieben nach rechts und nach unten kann folgender Code verwendet werden:

        $(document).ready(function() {
            $('div').each(function() {
                var offset = $(this).offset();
                alert("left: " + offset.left + ", top: " + offset.top );
                $(this).css('left', offset.left + 100);
                $(this).css('top', offset.top + 100);
            });
        });
Kategorien
WordPress

Webseiten Input Feld deaktivieren in WordPress Kommentaren

Wenn man nicht will, dass Spammer und Suchmaschinenoptimierer Ihre Kommentare mit Links zu Ihrer Webseite hinterlassen, sollte man entweder

  • die Freischaltung der Kommentare von Hand übernehmen (Einstellungen->Diskussion == muss jeder Kommentar von einem Administrator überprüft werden.->Häckchen)
  • einen Spam Filter wie Akismet benutzen, der allerdings nur für private Zwecke (ohne Werbung) kostenlos ist
  • oder die Eingabe von Webseiten in das entsprechende Input-Feld der Kommentare verhindern

Dazu muss einfach folgender Code wie folgt auskommentert werden in der wp-includes/comment-templates.php (ca. Zeile 1522):

    $fields =  array(
        'author' => '<p>' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span>*</span>' : '' ) .
                    '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
        'email'  => '<p><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span>*</span>' : '' ) .
                    '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
//        'url'    => '<p><label for="url">' . __( 'Website' ) . '</label>' .
//                    '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
    );

Die Variante schützt einen wahrscheinliche nicht vor Pings.

Kategorien
CSS

Cross Browser kompatibeles CSS mit YAML

Wer eine Chance haben will, dass seine Webseite in allen gängigen Browsern gleich aussieht, der ist gezwungen ein CSS Framework zu benutzen, welches die Unterschieder eine einzelnen Browser ausgleicht, wie z.B: YAML.

Sehr konfortabel ist auch der YAML Builder, mit dem verschiedene Layouts mit 1,2 oder 3 Spalten erstellt werden können.

Einbindung von YAML

  1. Als erstes müssen aus dem yaml source Ordner und die Ordner js und yaml in das Projektverzeichnis kopiert werden.
  2. Dann wird im YAML Builder das Layout zusammengeklickt und Get Code ausgewählt..
  3. Der HTML Code kommt in die index-Datei (oben rechts mit der Maus über das Dokument und dann copy to clipboard ).
  4. Die my_layout.css kommt in das Verzeichnis /css (muss angelegt werden). Das ist wichtig, weil sonst die Pfade nicht stimmen. Folgende Dateistruktur muss am Ende enstehen:

Kategorien
iPhone/iOS

erste iPhone App im App Store

Am Samstag war es soweit, meine erste App hat es in den App Store geschafft: CD Ankauf ZeeDee.

Der Warteprozess auf Aufnahme in den App Store und das Testen durch Apple gingen ziemlich schnell: Montag abend habe ich die App mit dem Application Loader hochgeladen, am Freitag kam die Nachricht, dass jetzt getestet wird und am Samstag früh wurde die App in den App Store gestellt. Meine App Store Wartezeit betrug also nur ca. 5 Tage, was absolut ok ist.

Zur App: Ich muss nicht sagen, dass diese App alle Apps revolutionieren wird und alle anderen Apps überflüssig macht. In Zukunft brauch man nur noch die CD Ankauf App und der Rest kann weg. Dadurch entfällt nerviges rumwischen auf dem Display um auf seine letzte App Auswahl Seite zu gelangen. 🙂

Kategorien
iPhone/iOS

iTunes Connect nicht im App Store zu finden

Nach Veröffentlichung meiner ersten App Cd Ankauf ZeeDee, wollte ich mir die App zum Tracken der App Verkäufe/Downloads downloaden: iTunes Connect Mobile.

Dabei hat ich das Problem, dass ich Sie im App Store auf meinem iPhone nicht finden konnte:

20110829-101738.jpg

Der Ausweg war, über mein iTunes auf dem PC/MAC die App zu suchen, wo ich sie finden konnte und von dort aus zu installieren. Einfach iPhone anschließen, in iTunes auf „Gratis App“ klicken und danach synchronisieren, falls nötig.

 

Kategorien
MySQL PHP

Strings speichern in MySQL und Sicherheit

Um einen String abzuspeichern mit unbekanntem Inhalt, sollte immer die PHP Funktion mysql_real_escape_string verwendet werden:

$mystring = mysql_real_escape_string($mystring );

Damit werden bösartige Strings entschärft, mit denen großer Schaden angerichtet werden kann wie:

$string = "1';DELETE FROM table WHERE 1;#";
$sql = "SELECT * FROM table WHERE id = '$string' ";

Dies kann durch die Verwendung der Funktion verhindert werden.