Potablog 1338.at Header

 
Die PHP-Funktion empty() gibt Auskunft darüber, ob die angegebe Variable leer ist. Folgendes weiß das Manual dazu zu sagen
ZitatReturns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:
"" (an empty string)
0 (0 as an integer)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)


Man sollte nun doch meinen, dass folgende beide Code-Snippets das gleiche Ergebnise erzeugen: nämlich true.
Code
<?php
$var = "0";
var_dump(empty($var));
?>

Code
<?php
$var = "00";
var_dump(empty($var));
?>

Dem ist aber nicht so.
Das erste snippet gibt folgendes wiede
Zitatbool(true)

das zweite Snippet
Zitatbool(false)


Um darauf zu kommen, habe ich gerade zwei Stunden meines Lebens verschwendet...Dankeschön!
Direktlink  Kommentare: 3 geschrieben von potassium am Donnerstag, 19.08.2010, 22:06
Eingeordnet unter: PHP-Entwicklung, Programmieren


Wie manche wissen, bin ich kein großer Java-Fan, aber dieses Video is genial :D


PicturePicturePicture

Via eli
Direktlink  Kommentare: 1 geschrieben von potassium am Donnerstag, 01.07.2010, 23:09


...Syntax von PHP.
Im Vergleich zu Visual Basic ist die Syntax von PHP einfach nur traumhaft.
Ich speib mich gleich an bei der von VB.
Direktlink  Kommentare: 1 geschrieben von potassium am Mittwoch, 18.11.2009, 01:18
Eingeordnet unter: Programmieren


When serialize()ing an array containing the data of the last created blogpost there was no error at first.
But if the data were fetched from the database and the script tried to unserialize() them the following error occured:
ZitatNotice: unserialize() [function.unserialize]: Error at offset 51 of 66 bytes in somefile.php

So why is this?
Lets say you have an array with 3 indizes containing 2 strings and one integer.

Code$somearray[0] = "test";
$somearray[1] = "he hasn\'t eaten anything";
$somearray[2] = 36;

As you can see the single quote in the second array-element is escaped by a backslash.
If you now serialize the data you get the following string
Codea:3:{i:0;s:4:"test";i:1;s:25:"he hasn\'t eaten anything";i:2;i:36;}

If this string is now written to the database the backslashes disappears and the field contains the following data:
Codea:3:{i:0;s:4:"test";i:1;s:25:"he hasn't eaten anything";i:2;i:36;}

As the considerate reader might have discovered the length of the highlighted string was first 25 characters and is after inserting into the database 24 characters long.
So if PHP tries to unserialize the string it thinks it has to read 25 characters but there are only 24. This throws the above error.

So how can you circumvent this?
Code$somearray[0] = "test";
$somearray[1] = "he hasn\'t eaten anything";
$somearray[2] = 36;
foreach($somearray as $key=>$value){
$somearray[$key] = stripslashes($value);
}
$serialized_data = addslashes(serialize($somearray));


So the backslashes are removed before serializing the data and added afterwards to prevent database malfunctions or errors.
Direktlink  Kommentare: 0 geschrieben von potassium am Donnerstag, 27.08.2009, 22:33


Nachdem Michelle mich darauf aufmerksam gemacht hat, dass im Seitenmenü die doppelte Anzahl an Seiten zB bei den Kategorien angezeigt werden als eigentlich vorhanden sein sollten hab ich mich auf Fehlersuche gemacht.
Nachdem ich ein fehlendes DISTINCT zuerst für den Verantwortlichen gehalten habe bin ich nach einiger Zeit draufgekommen, dass beim Portieren der Software der Inhalt 2 mal eingefügt wurde.
Ich hatte also eine 2spaltige Tabelle mit mehreren Tausend Einträgen und diese waren je 2 mal vorhanden. Was also tun? Manuell kann man das vergessen. Mit normalen Abfragen is mir auch nix eingefallen und siehe da das Glasgoogle hat geholfen und folgendes zu Tage gebracht:
Doppelte Einträge löschen (ganz unten)

CodeALTER IGNORE TABLE Table ADD UNIQUE INDEX temp_index (Column1 , Column2);

Es wird ein UNIQUE Index auf die gewähljten Felder gelegt und da er UNIQUE ist, sind keine doppelten Einträge erlaubt.
Ignore ist dabei das Stichwort: Dadurch werden doppelte Einträge einfach gelöscht. Sache gelöst. Juhu :D

Direktlink  Kommentare: 0 geschrieben von potassium am Donnerstag, 27.08.2009, 22:17
Eingeordnet unter: Programmieren, SQL, Software-Entwicklung


DOM

Mhm, hab grad meine ersten (bewussten) DOM-Schritte gemacht. Schon ziemlich mächtig das Zeug. Trotzdem is Javascript ned wirklich meine Sprache...Naja das was ich wollte geht ja mal. Bald zu sehen in PotaBlog 2.0 :)
Direktlink  Kommentare: 0 geschrieben von potassium am Freitag, 26.06.2009, 23:52
Eingeordnet unter: Programmieren


LANBall ist eine Möglichkeit, wie sogar ich mal einen Ball dorthin manövrieren könnte wo er hin soll :D



ZitatDie genialste Idee aller Zeiten: Der Lagesensor im Ball stammt aus einem Nintendo-Wii-Controller, der rückmeldet, in welcher Lage sich der Ball befindet, einschließlich Drehung. Daran haben wir uns die Zähne am übelsten ausgebissen. Wir haben uns alles mögliche überlegt: Ein Laser-Gyroskop wie im BigDog von Boston Dynamics, den Lagesensor aus dem iPhone .... und so weiter. .War aber alles zu komplex, zu teuer oder zu schwer. Der Wii-Sensor kann die Lage sehr schnell und exakt bestimmen und wiegt fast nichts - also gekauft!


ZitatDie finale Innenkonstruktion mit Carbontank und den ersten Druckluftleitungen. Die Druckluft wird durch lauter Mini-Pneumatik-Equipment von Festo und SMC an- und abgeschaltet. Die Signalübertragung funktioniert via simplem W-LAN, wobei wir für das Senden der Telemetrie und das Empfangen der Steuerdaten vom Rechner je einen eigenen Kanal benutzen.


Mehr Infos zu diesem echt genialen System gibts hier

Sogar ein Flowchart gibts dazu.
Direktlink  Kommentare: 0 geschrieben von potassium am Dienstag, 02.06.2009, 16:17


Bwah, derzeit arbeite ich grad am Release 2.0 von PotaBlog. Da sich einige Dinge grundlegend verändern, ist es ein weitaus größerer Aufwand, als erwartet.

Bin gerade 3 Stunden gesessen und hab nur Texte aus Templates in Variablen kopiert und diese Texte ins Englische übersetzt -_-

Wünsche eine gute Nacht!
Direktlink  Kommentare: 0 geschrieben von potassium am Freitag, 03.04.2009, 03:55


Wenn man mittels setcookie() mit PHP ein Cookie auf einem Apache-Server unter Windows für Firefox oder IE 7 senden will, der auf localhost läuft, so ist folgende Syntax von nöten:
Code
setcookie("test", "test", time() + 3600, "/", false);

Folgendes weiß dazu das manual
Zitatbool setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]]] )


Somit muss man den Wert Domain anstatt wie es sich gehört auf localhost auf false setzen.
Das hat mich wieder nerven gekostet....
Direktlink  Kommentare: 0 geschrieben von potassium am Mittwoch, 25.03.2009, 16:53


Ich möchte hiermier anmerken, dass ich SOAP hasse und kryptische Fehlermeldungen noch mehr. GRMLZ
Direktlink  Kommentare: 2 geschrieben von potassium am Mittwoch, 25.02.2009, 17:53
Eingeordnet unter: Programmieren


Gehe zu Seite 1 2