ln -s "/mnt/cifs/$USER@webdev.leipzig.ufz.de:coder" coder
Donnerstag, 27. Mai 2010
COMA/Solaris: Auf das Coderverzeichnis zugreifen
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; ?>
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');
Dienstag, 9. März 2010
COMA: Linkicons und Glossarlinks setzen
$html = "HTML mit Glossarbegriffen und Hyperlinks"; $root_pid = 28; $html = linkicon_glossar_parser($html, $root_pid);Der Parameter $root_pid entscheidet über das Setzen der Glossarlinks (Knoten 1 JA, Knoten 9 NEIN ?).
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 );
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.
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: 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\">"; } }
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: Oracle-Tabellen zwischen Instanzen kopieren
Beispiel 1: von SERVICE nach INTERNET
create table WEB.WTR_UFZ as select * from WEB.WTR_UFZ@testsystem
Beispiel 2: von INTERNET nach SERVICE
create table WEB.WTR_UFZ as select * from WEB.WTR_UFZ@internet
Freitag, 8. Januar 2010
COMA: AJAX-Response ohne Content
if(isset($_GET['ajax'])) { echo utf8_encode("Hallo AJAX!"); die(); // ohne die() wird der komplette Kontent } // mit zurückgegeben