ln -s "/mnt/cifs/$USER@webdev.leipzig.ufz.de:coder" coder
Donnerstag, 27. Mai 2010
COMA/Solaris: Auf das Coderverzeichnis zugreifen
COMA/Solaris: Auf das Coderverzeichnis zugreifen
ln -s "/mnt/cifs/$USER@webdev.leipzig.ufz.de:coder" coder
Dienstag, 13. April 2010
PHP: File Upload
<?php
$message = "";
if(isset($_FILES["file_name"]))
{
$upload_dir = "/www/data/";
$file_name = $_FILES['file_name']['name'];
$file_temp = $_FILES['file_name']['tmp_name'];
move_uploaded_file($file_temp,
$upload_dir.$file_name);
$message = "$file_name
";
($file_size Byte) nach
$upload_dir hochgeladen!
}
$html = <<< HTML
<form action="{$_SERVER['PHP_SELF']}"
enctype="multipart/form-data"
method="post">
<input type="file" name="file_name" />
<input type="submit" value="Kopieren" />
</form>
HTML;
echo $html.$message;
?>
PHP: File Upload
<?php
$message = "";
if(isset($_FILES["file_name"]))
{
$upload_dir = "/www/data/";
$file_name = $_FILES['file_name']['name'];
$file_temp = $_FILES['file_name']['tmp_name'];
move_uploaded_file($file_temp,
$upload_dir.$file_name);
$message = "$file_name
";
($file_size Byte) nach
$upload_dir hochgeladen!
}
$html = <<< HTML
<form action="{$_SERVER['PHP_SELF']}"
enctype="multipart/form-data"
method="post">
<input type="file" name="file_name" />
<input type="submit" value="Kopieren" />
</form>
HTML;
echo $html.$message;
?>
Freitag, 19. März 2010
Oracle: LDAP ID als Primärschlüssel
CALL drop_object('t_test');
CREATE TABLE t_test (test_id NUMBER, uid_text VARCHAR2(80));
CREATE OR REPLACE TRIGGER insert_lid
BEFORE INSERT ON t_test FOR EACH ROW
DECLARE
l_ldap_host VARCHAR2(256) := 'hera.leipzig.ufz.de';
l_ldap_port VARCHAR2(256) := '389';
l_ldap_base VARCHAR2(256) := 'dc=ufz,dc=de';
l_retval PLS_INTEGER;
l_session DBMS_LDAP.session;
l_attrs DBMS_LDAP.string_collection;
l_message DBMS_LDAP.message;
l_entry DBMS_LDAP.message;
l_vals DBMS_LDAP.string_collection;
BEGIN
l_session := DBMS_LDAP.init
(
hostname => l_ldap_host,
portnum => l_ldap_port
);
l_retval := DBMS_LDAP.simple_bind_s
(
ld => l_session,
dn => NULL,
passwd => NULL
);
l_attrs(0) := 'uidNumber';
l_retval := DBMS_LDAP.search_s
(
ld => l_session,
base => l_ldap_base,
scope => DBMS_LDAP.SCOPE_SUBTREE,
filter => '(&
(nsrole=*roleself*)
(objectClass=ufzperson)
(uid=' || :new.uid_text || ')
)',
attrs => l_attrs,
attronly => 0,
res => l_message
);
IF DBMS_LDAP.count_entries
(
ld => l_session,
msg => l_message
) = 1
THEN
l_entry := DBMS_LDAP.first_entry
(
ld => l_session,
msg => l_message
);
l_vals := DBMS_LDAP.get_values
(
ld => l_session,
ldapentry => l_entry,
attr => l_attrs(0)
);
END IF;
DBMS_OUTPUT.PUT_LINE
(
l_attrs(0) || ' = ' || l_vals(0)
);
l_retval := DBMS_LDAP.unbind_s
(
ld => l_session
);
:new.test_id := l_vals(0);
END;
/
Der Trigger könnte z.B. so ausgelöst werden:
INSERT INTO t_test (uid_text)
VALUES ('dutzend');
Oracle: LDAP ID als Primärschlüssel
CALL drop_object('t_test');
CREATE TABLE t_test (test_id NUMBER, uid_text VARCHAR2(80));
CREATE OR REPLACE TRIGGER insert_lid
BEFORE INSERT ON t_test FOR EACH ROW
DECLARE
l_ldap_host VARCHAR2(256) := 'hera.leipzig.ufz.de';
l_ldap_port VARCHAR2(256) := '389';
l_ldap_base VARCHAR2(256) := 'dc=ufz,dc=de';
l_retval PLS_INTEGER;
l_session DBMS_LDAP.session;
l_attrs DBMS_LDAP.string_collection;
l_message DBMS_LDAP.message;
l_entry DBMS_LDAP.message;
l_vals DBMS_LDAP.string_collection;
BEGIN
l_session := DBMS_LDAP.init
(
hostname => l_ldap_host,
portnum => l_ldap_port
);
l_retval := DBMS_LDAP.simple_bind_s
(
ld => l_session,
dn => NULL,
passwd => NULL
);
l_attrs(0) := 'uidNumber';
l_retval := DBMS_LDAP.search_s
(
ld => l_session,
base => l_ldap_base,
scope => DBMS_LDAP.SCOPE_SUBTREE,
filter => '(&
(nsrole=*roleself*)
(objectClass=ufzperson)
(uid=' || :new.uid_text || ')
)',
attrs => l_attrs,
attronly => 0,
res => l_message
);
IF DBMS_LDAP.count_entries
(
ld => l_session,
msg => l_message
) = 1
THEN
l_entry := DBMS_LDAP.first_entry
(
ld => l_session,
msg => l_message
);
l_vals := DBMS_LDAP.get_values
(
ld => l_session,
ldapentry => l_entry,
attr => l_attrs(0)
);
END IF;
DBMS_OUTPUT.PUT_LINE
(
l_attrs(0) || ' = ' || l_vals(0)
);
l_retval := DBMS_LDAP.unbind_s
(
ld => l_session
);
:new.test_id := l_vals(0);
END;
/
Der Trigger könnte z.B. so ausgelöst werden:
INSERT INTO t_test (uid_text)
VALUES ('dutzend');
Dienstag, 9. März 2010
COMA: Linkicons und Glossarlinks setzen
Der Parameter $root_pid entscheidet über das Setzen der Glossarlinks (Knoten 1 JA, Knoten 9 NEIN ?).
$html = "HTML mit Glossarbegriffen und Hyperlinks";
$root_pid = 28;
$html = linkicon_glossar_parser($html, $root_pid);
Zu ersetzende Linkicons müssen in einem DIV mit der ID content stehen (nicht valide da ID dann doppelt)!
COMA: Linkicons und Glossarlinks setzen
Der Parameter $root_pid entscheidet über das Setzen der Glossarlinks (Knoten 1 JA, Knoten 9 NEIN ?).
$html = "HTML mit Glossarbegriffen und Hyperlinks";
$root_pid = 28;
$html = linkicon_glossar_parser($html, $root_pid);
Zu ersetzende Linkicons müssen in einem DIV mit der ID content stehen (nicht valide da ID dann doppelt)!
COMA: Makroparser aufrufen
$html = "HTML mit einem Makro (§fgetpic_9908§)";
$html = ersetze_funktionstemplates
(
$conn, $sprache, $code, $html,
$baum, $adm, $su, $pub
);
COMA: Makroparser aufrufen
$html = "HTML mit einem Makro (§fgetpic_9908§)";
$html = ersetze_funktionstemplates
(
$conn, $sprache, $code, $html,
$baum, $adm, $su, $pub
);
Mittwoch, 3. März 2010
COMA: Cron-Job einrichten
Als erstes erstellt man das Makro, welches per Cron aufgerufen werden soll.
Danach sucht man sich in der Datenbank die Tabelle W_CJ.
In die Spalte CJ_FKT trägt man den Namen des Makros ein.
Der Eintrag in die Spalte CJ_EXE besteht aus 4 Ziffern, die ersten beiden geben die volle Stunde an, in der das Makro gestartet wird (00 - 23).
Die beiden letzten stehen für den Tag im Monat an dem man das Makro ausführen möchte (01 - 31), 00 steht dabei für täglich.
In der Spalte CJ_LAST_EXE wird das Datum gesetzt an dem der Job zum letzten Mal ausgeführt wurde.
COMA: Cron-Job einrichten
Als erstes erstellt man das Makro, welches per Cron aufgerufen werden soll.
Danach sucht man sich in der Datenbank die Tabelle W_CJ.
In die Spalte CJ_FKT trägt man den Namen des Makros ein.
Der Eintrag in die Spalte CJ_EXE besteht aus 4 Ziffern, die ersten beiden geben die volle Stunde an, in der das Makro gestartet wird (00 - 23).
Die beiden letzten stehen für den Tag im Monat an dem man das Makro ausführen möchte (01 - 31), 00 steht dabei für täglich.
In der Spalte CJ_LAST_EXE wird das Datum gesetzt an dem der Job zum letzten Mal ausgeführt wurde.
Mittwoch, 20. Januar 2010
COMA: Angemeldeten User ermitteln
SELECT a.lid, b.login_name FROM web.wsess a, web.wlogin b WHERE sid = $sess_id AND a.lid = b.lid
COMA: Angemeldeten User ermitteln
SELECT a.lid, b.login_name FROM web.wsess a, web.wlogin b WHERE sid = $sess_id AND a.lid = b.lid
COMA: Bild dynamisch erzeugen
Hier als Makro umgesetzt, welches so aufgerufen wird:
[§fcreatePic§]
function createPic() {
if(isset($_REQUEST['getpic']) &&
Header("Content-type: image/jpeg");
$width = "300";
$height = "50";
// neues Bild erzeugen
$image = ImageCreateTrueColor($width, $height);
// Farben definieren
$col1 = ImageColorAllocate($image, 255, 255, 200);
$col2 = ImageColorAllocate($image, 0, 0, 0);
// Hintergrund mit Farbe füllen
ImageFill($image, 0, 0, $col1);
// Text dazu
ImageString ($image, 5, 20, 20,
"Coded bei FIAE", $col2);
// Grafik ausgeben
ImageJPEG($image);
// Speicher wieder frei geben
ImageDestroy($image);
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}
COMA: Bild dynamisch erzeugen
Hier als Makro umgesetzt, welches so aufgerufen wird:
[§fcreatePic§]
function createPic() {
if(isset($_REQUEST['getpic']) &&
Header("Content-type: image/jpeg");
$width = "300";
$height = "50";
// neues Bild erzeugen
$image = ImageCreateTrueColor($width, $height);
// Farben definieren
$col1 = ImageColorAllocate($image, 255, 255, 200);
$col2 = ImageColorAllocate($image, 0, 0, 0);
// Hintergrund mit Farbe füllen
ImageFill($image, 0, 0, $col1);
// Text dazu
ImageString ($image, 5, 20, 20,
"Coded bei FIAE", $col2);
// Grafik ausgeben
ImageJPEG($image);
// Speicher wieder frei geben
ImageDestroy($image);
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}
Dienstag, 19. Januar 2010
COMA: Oracle-Blob als Image-Stream
Hier als Makro umgesetzt, welches z.B. so aufgerufen wird:
[§fpicStream_13404§]
Als Parameter wird die gewünschte Bild-ID übergeben.
function picStream($conn, $param) {
if(isset($_REQUEST['getpic']) &&
is_numeric($param)) {
$sql = "select pics_blob from web.wpics
where pics_id=$param";
$stmt = OCIparse($conn, $sql) ;
OCIExecute($stmt,OCI_DEFAULT) ;
$check = OCIFetchInto($stmt, $row, OCI_ASSOC);
if($check == 1)
echo $row["PICS_BLOB"]->load();
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}
COMA: Oracle-Blob als Image-Stream
Hier als Makro umgesetzt, welches z.B. so aufgerufen wird:
[§fpicStream_13404§]
Als Parameter wird die gewünschte Bild-ID übergeben.
function picStream($conn, $param) {
if(isset($_REQUEST['getpic']) &&
is_numeric($param)) {
$sql = "select pics_blob from web.wpics
where pics_id=$param";
$stmt = OCIparse($conn, $sql) ;
OCIExecute($stmt,OCI_DEFAULT) ;
$check = OCIFetchInto($stmt, $row, OCI_ASSOC);
if($check == 1)
echo $row["PICS_BLOB"]->load();
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}
Donnerstag, 14. Januar 2010
COMA: LDAP per PHP durchsuchen
function search_user_ldap($string) {
$filter =
"(&
// aktiviert, deaktiviert, alle
(nsrole=*roleself*)
(objectclass=ufzperson)
// Attribut nach dem wir suchen (sn=Surname)
(sn=".$string."*)
)";
// Attribute die geliefert werden sollen
$attr = array("sn");
// Menge der Suchergebnisse (0=unbegrenzt)
$count = 0;
// Ergebnisarray
$search = array();
if(cldap_Search("", &$search, $filter, $attr, $count)) {
$search = cldap_DeleteCount($search, 1);
foreach($search as $val) {
$ret[] = $val[$attr[0]][0];
}
}
return $ret;
}
COMA: LDAP per PHP durchsuchen
function search_user_ldap($string) {
$filter =
"(&
// aktiviert, deaktiviert, alle
(nsrole=*roleself*)
(objectclass=ufzperson)
// Attribut nach dem wir suchen (sn=Surname)
(sn=".$string."*)
)";
// Attribute die geliefert werden sollen
$attr = array("sn");
// Menge der Suchergebnisse (0=unbegrenzt)
$count = 0;
// Ergebnisarray
$search = array();
if(cldap_Search("", &$search, $filter, $attr, $count)) {
$search = cldap_DeleteCount($search, 1);
foreach($search as $val) {
$ret[] = $val[$attr[0]][0];
}
}
return $ret;
}