51

(20 Antworten, geschrieben in PHP)

Hi.

> Objekte kann man doch nicht in eine session stopfen. Sondern muss sie mit
> serialize umwandeln. Oder seh ich das falsch?

Die Session-Funktionen serialisieren dein Objekt implizit. Musst natürlich die Klasse parat haben, bevor du die Session startest, sonst ist mit deinem übergebenen Objekt womöglich wenig anzufangen (Vorsicht also mit session.auto_start). Ausnahme:

"Some types of data can not be serialized thus stored in sessions. It includes resource variables or objects with circular references (i.e. objects which passes a reference to itself to another object)."

[http://www.php.net/manual/en/ref.session.php]

> Und bevor ich serialize nehme, würde ich bei nem array eher
> implode/explode nehmen, denn dann ist das format offensichtlicher.
> Aber eigentlich schnurz piep egal. Wie ich ja jetz lese, funktionioeren
> arrays.

Das serialisieren mit implode() funktioniert natürlich nur bei eindimensionalen Arrays und auch nur, wenn in den Feldern entweder das Zeichen/die Zeichenkette, mit dem du die Felder trennst escaped werden oder du eben einen Separator wählst, der in den Feldern nicht vorkommt. Des weiteren kannst du so natürlich nur die Werte eines Arrays und die Reihenfolge der Felder sichern, nicht jedoch die Indizes.

Wenn du ein "offensichtliches Format" willst, dann bringe den Datensatz in ein CSV-Format oder gleich nach XML (z.B. WDDX). Andernfalls benutze einfach serialize(). Das ist schnell und gründlich *g*

Basti

52

(9 Antworten, geschrieben in System)

Hi.

> c:/temp/upload/ZSStao.csv

Ein Windows-Server? Na da gibts wohl keine Cron-Jobs ... oder zumindest heißen die sicher anders.

> via http request? entweder versteh ich das falsch aber dann müsst ich den
> user dazu bringen ein file auszuwählne und zu posten - richtig?

Nein, nein. Wenn du einen Datei-Upload via Web-Browser realisieren möchtest, geht natürlich kein Weg daran vorbei, den Benutzer auswählen zu lassen, welche Dateien er hochladen möchte. Wenn das nicht so wäre, könnte ja auch jeder Server beliebig Dateien von deinem Rechner saugen.

Wenn du die Dateien in deinem Browser ausgewählt hast und das Formular abschickst, schickt der Browser die Daten an den Server und genau diesen Request kannst du natürlich auch direkt, also ohne Browser starten.

In PHP kannst du dir einen Code zum Verschicken von Dateien via HTTP hier ansehen:

25.3. Wie kann ich einen HTTP POST-Request mit Datei-Upload absenden?
http://www.php-faq.de/q/q-code-upload.html

Und, wenn du mit VB mit einem FTP-Server quatschen kannst, dann ja sicherlich auch mit einem HTTP-Server und damit könntest du dir den Umweg (mit FTP-Server verbinden, Datei hochladen, FTP-Verbindung trennen, dann Browser-Instanz öffnen, dann Skript aufrufen, mit dem dann die Daten verarbeiten, Datei löschen, Browser schließen) sparen und einfach nur die Datei an ein Skript auf dem entfernten Server übergeben und die Rückmeldung auswerten (Erfolg oder Fehler).

> danke vielmals für alle die hilfestellungen@ basti!

Gern gschehn..

Basti

53

(9 Antworten, geschrieben in System)

Puh. Mir fallen da nur zwei Ansätze ein, die sehr vage sind: 1. du führst phpMyAdmin mit anderen Rechten aus, als das Skript und 2. der relative Pfad zur Datei wird jeweils unterschiedlich interpretiert. Ist aber eigentlich beides unlogisch, da die Query ja vom selben MySQL-Server abgearbeitet wird und daher wahrscheinlich auch mit den gleichen Rechten und der gleichen Interpretation relativer Pfadangaben.

Gibts denn keine Fehlermeldung via mysql_error()?

Und...kannst du dann nicht doch gleich die Datei via HTTP hochladen, wenn du schon einen HTTP-Request machst?

Basti

54

(9 Antworten, geschrieben in System)

Hi.

Ach ja, FTP...

Also du brauchst schon einen Prozess, der das Verzeichnis überwacht und im Falle einer Änderung die entsprechenden Befehle absetzt. Aber in der Regel wird sowas mit cronjobs gemacht. D.h. alle paar Minuten/Stunden wird ein (z.B.) PHP-Skript ausgeführt. Dieses guckt im entsprechenden Ordner nach Änderungen und verarbeitet die Daten ggf.

Und weiter:

17.3. Wie kann ich eine CSV-Datei in MySQL importieren?
http://www.php-faq.de/q/q-mysql-csv-import.html

Basti

55

(9 Antworten, geschrieben in System)

Hi "Lord eAgle".

Ich hab so eine Geschichte mal gemacht, wobei ein Kollege eine Funktion gebaut hat, eben eine Access-Datenbank in ein CSV-File zu stecken und das wurde dann über ein Webinterface an ein PHP-Skript übergeben, welches die Daten extrahiert, validiert und ggf. nach einigen Rückfragen in die MySQL-DB verschoben hat.

Ich denke aber, dass es kein Problem sein wird, mit VB oder so (da kenne ich mich garnicht mit aus) einen POST-Reqest mit der CSV-Datei an den entfernten Server bzw. dort eben konkret z.B. ein PHP-Skript macht, das dann die Daten ohne Interaktivität in die MySQL-DB verschiebt und im Fehlerfall dann eben einen entsprechenden Header zurückgibt. Falls das nicht so einfach geht, gibt es vielleicht eine Möglichkeit, die Datei in die "spool"e des MTA zu verschieben und diese an einen öffentlich zugänglichen Mail-Server zu schicken, von dem sich das PHP-(oder sonstwie programmierte) Skript die Datei dann holt.

MySQL kann wahrscheinlich auch direkt CSV-Files entgegennehmen. Das setzt aber voraus, dass der MySQL-Server übers Netz erreichbar ist. Ich kann dazu nichts sagen, da ich vor diesen Schritt noch nie stand, aber ich würde mich gut umhören, bevor ich das machen würde. Ich denke mal, dass in einem solchen Fall jeder Konfigurationsfehler bös bestraft wird (was ja im Falle von Webservern und auch Skriptsprachen ja auch der Fall ist, aber das überlasse ich dem Provider meines Vertrauens).

Basti

56

(24 Antworten, geschrieben in Siteseeing)

Was meinst du mit "schriften glätten" und mit was für einem System guckst du dir das an? Und ist der Screenshot ein Blick auf die Helvetica oder die Bitstream Vera sans?

Danke einstweilen...

Basti

57

(24 Antworten, geschrieben in Siteseeing)

...du hast aber nicht etwa einen AOL-Browser benutzt, oder?

Basti

58

(24 Antworten, geschrieben in Siteseeing)

Hi.

Darf ich euch bitten, nochmal einen Blick auf die Seite zu werfen?

http://wendepunkt-tanzundtherapie.de/

Ich habe das Feedback bekommen, dass die Absatztexte quasi gestaucht dargestellt werden und fast nicht lesbar sind. Der verwendete Browser ist ein AOL-Browser 9. Kann jemand von euch das Phänomen reproduzieren oder hat sonst einen Hinweis für mich (bekannter Bug oder so...) ?

Basti

59

(10 Antworten, geschrieben in Projektplanung)

Hi.

Wie wäre es denn num mal mit einer Spezifikation? Ich glaube nicht, dass ihr sonst Mitmacher finden werdet. Irgendwie soll das ja alles und nichts sein... Erst ein Fileserver mit Web-GUI, das alles mögliche können soll, was mit JS z.B. nicht machbar ist. Jetzt ist es plötzlich keine Client-Server-Anwendung mehr, sondern ein P2P-System. Und was meinst du damit, dass es "ziemlich gut mit Firewalls umgehen" können wird? Ihr wollt ein neues Protokoll entwerfen und den Port frei einstellbar machen, oder wie? Oder was?

Ich will euch euer Projekt weder ausreden, noch will ich es schlecht reden. Aber lasst es doch einfach, es hier anzupreisen, zu schreiben, was denn alles schon in Planung ist, dass es "ziemlich gut" wird usw. Veröffentlicht einfach mal eine Spezifikation des Systems, damit die lieben Leser sich auch was drunter vorstellen können - was Konkretes.

Und noch ein Tipp. Schaut euch mal den PHP5-Wettbewerb von Zend an. Da gab es eine Kategorie "A web-based file browser". Vielleicht geht da ja was in richtung Groupware-Filesharing oder wie man das auch nennen mag...

Basti

60

(10 Antworten, geschrieben in Allgemeines)

> Auch wenn du es bestreiten magst, ich betrachte das jetzt mal als Outing

Nein! Ich bestreite das tatsächlich! Aber ich glaube, jetzt glaubt mir wohl eh keiner mehr.

> anti-rechtsklick-sperre

Jetzt investieren Firefox-Benutzer schon in doppelseitige NY Times-Anzeigen[1] ...

[1] http://www.spreadfirefox.com/?q=node/view/8769

Basti

61

(0 Antworten, geschrieben in PHP)

Schwachstellen in PHP4 bis einschließlich 4.3.9 und PHP5 bis einschließlich 5.0.2! Updates (4.3.10 und 5.0.3) sind erschienen.

http://www.heise.de/security/news/meldung/54320
http://www.hardened-php.net/advisories/012004.txt

Basti

62

(10 Antworten, geschrieben in Allgemeines)

Hm? Mein Name ist Haase ... oder so. *Spaß...

63

(5 Antworten, geschrieben in Devshare Plausch)

LOL! Für mich war es neu. ...und, mal im ernst, was "man" kennt, interessiert mich einen Dreck *g.

Basti

64

(3 Antworten, geschrieben in PHP)

Hi.

Vielleicht das hier?

11.20. Warum funktionieren meine Formulare nicht?
http://www.php-faq.de/q/q-formular-regi … obals.html

Bitte Code in CODE-Tags setzen und auf relevante Teile kürzen.

Basti (kurz angebunden *g)

65

(5 Antworten, geschrieben in Devshare Plausch)

Ihr werdet euch weglachen!

http://www.antra.dk/winrg.swf

Basti ... das ist sooo geil!

66

(1 Antworten, geschrieben in PHP)

Hi Airis.

In der Regel fähst du besser, wenn du zwar das Formular, also den HTML-Code der Webseite mit dem Formular auslagerst, diese jedoch auch als dynamische PHP-Datei und nicht als statische HTML-Datei anlegst. Da die rein clientseite Überprüfung der Benutzereingaben völlig unzureichend ist (sie lässt sich a) problemlos aushebeln und b) lässt sie je nach Implementierung womöglich auch Benutzer durch, die versehentlich invalide Angaben machen) musst du die Daten ja auch in denem PHP-Script nochmal validieren. Folglich wirst du dem Benutzer wahrscheinlich auch Hinweise geben wollen, wenn er was falsch ausgefüllt hat. Und dazu sollte deine Fomular-Seite eingebettete PHP-Codes beinhalten, die Fehlermeldungen auszuspucken. (Ein Schritt weiter wäre dann der zu einem Template-System, aber das ist wohl erstmal übertrieben).

Das Prinzip ist folgendes:

Aufrufe an das Formular gehen an ein Skript (z.B. form.php). Diese prüft zunächst, ob das Formular bereits abgeschickt wurde. Dazu setzt du in dieses entweder ein Hidden-Field (sei hier mal "sent") oder du wertest eben den Submit-Button aus.

Wurde das Formular nicht abgeschickt, dann gibst du einfach deine Formular-Seite aus:

Wenn das Formular abgeschickt wurde, dann validiere und sammle ggf. die Fehler in einem Array. Nach der Validierung der einzelnen Felder guckst du dann, ob in dem Array was drin ist (sprich ein oder mehrere Fehler). Wenn ja, dann bereitst du diese ggf. noch auf und bindest wieder das Formular ein (was PHP-Code enthält, die Fehlermelungen auszugeben). War kein Fehler drin, dann machst du einen Redirect auf eine "Danke für die Anfrage"-Seite. Dieser Redirect ist wichtig, da sonst das Formular leicht aus Versehen mehrfach abgeschickt wird (z.B. durch ein Klick auf "Reload/Aktualisieren" oder durch eine Änderung der Fenstergröße in den alten (auch den neuen?) NS (und, glaub auch in den alten Geckos)).

Also nochmal zusammengefasst etwa so:

<?php
if (empty($_REQEUST['sent'])) {
    
    include('form.tpl');
    die();
}

$errors = array();

if (empty($_REQUEST['name'])) $errors[] = 'name empty';
if (empty($_REQUEST['email'])) {
    $errors[] = 'email empty';
} else if (!validate_email_against_rfc822($_REQUEST['email'])) $errors[] = 'email invalid';

if (emty($errors)) header('Location: http://www.example.com/success.html');

if (1 === sizeof($errors)) {
    if ('name empty'  == $errors[0]) $err_msg = 'Bitte geben Sie Ihren Namen an.';
    if ('email empty' == $errors[0]) $err_msg = 'Bitte geben Sie Ihre E-Mail-Adresse an.';
} else {
    if ('email empty' == $errors[1]) $err_msg = 'Bitte geben Sie ihren Namen und Ihre E-Mail-Adresse an.';
    if ('email invalid' == $errors[1]) $err_msg = 'Bitte geben Sie ihren Namen an und überprüfen Sie Ihre E-Mail-Adresse.';
}    
include ('form.tpl');

Ggf. stripslashes() über die Felder ziehen, falls magic_quotes_gpc = on.

Und form.tpl enthät dann eben ein <?php if (isset($err_msg)) echo html_entities($err_msg); ?>

Alles ungetestet natürlich...

Ich hoffe, das hilft dir weiter, ansonsten solltest du hier den relevanten Code abdrucken, dann können wir ja mal gucken.

Basti

67

(10 Antworten, geschrieben in Allgemeines)

Hat eigentlich schonmal jemand seinen Laptop auf einen Scanner gelegt? *g

68

(22 Antworten, geschrieben in Neuigkeiten)

Hi.

Design-Kontest find ich an sich nicht wirklich schlecht, aber ich denke, zwei Punkte wären dabei wichtig:

1. sollte vorab definiert werden, was das Design ausdrücken soll. Die Gestaltung einer Webpage ist ja kein Selbstzweck, sondern folgt einem Ziel z.B. bestimmte Werte zu Vermitteln, eine besimmte Athmosphäre zu erzeugen, eine Marke zu präsentieren, Identifikation etc. pp.

2. Sollten die eingereichten Arbeiten als Diskussionsgrundlage betrachtet werden und nicht a la the winner takes it all einfach so übernommen werden. Hinterher steht man da und muss sich zwischen n Entwürfen entscheiden und übersieht dann dabei, diese wirklich anhand der Zielsetzungen zu evaluieren.

Also mein Vorschlag:

Erstes Ziel:
Kompakte Beschreibung, was das Design "rüberbringen" soll. Dazu vielleicht erstmal Sammlung von Dingen, die Benutzer an devshare.de mögen, Werte, die sie darin sehen. Dann darauf aufbauend das gleiche für die Zukunft.

Parallel dazu brauchts natürlich eine Definition der reinzupackenden Inhalte und darauf einen Entwurf der Seitenstruktur und der Naigationselemente.

Die technischen Anforderungen sind dann ja auch noch schnell definiert und dann kann der Kontest ja losgehen (wobei ich mich Frage, ob ei Kontest ein Kontest ist, wenn es lediglich darum ginge, Entwürfe einzubringen).

Zu den Inhalten:
Hier plädiere ich immernoch (oder wieder) für ein Wiki-ähnliches Konstrukt, was eben nicht nur von Einzelnen, sondern von jedem mitgestaltet werden kann. Damit sinkt die Schwelle, sich einzubringen, schließlch kann ein anderer das ja ausformulieren (oder so...) und der Aufwand und die Verantwortung wird geteilt.

Liebe Grüße,
Basti

69

(10 Antworten, geschrieben in Allgemeines)

Hi.

Was meinst du mit "verhindern, dass man sich Bilder runterläd"? Du bietest dem Besucher doch in jedem Fall die Bilddaten in der einen oder anderen Form zum Download an, denn er braucht diese Daten ja, um das Bild anzuzeigen. Du kannst dem Benutzer ja schlecht in sein System reinwerken, um zu verhindern, dass er die Daten außerhalb des Kontext deiner Webpage gebraucht!

Basti

70

(11 Antworten, geschrieben in PHP)

Jo, ich geh jetzt besser mal raus an die Sonne. Vor der Kiste hier ver ... blöde(?) ich sonst noch!

Machs gut,
Basti

PS:
Die Notes im Manual bei array_unshift() enthalten so in etwa unsere Diskussion hier *g.

71

(11 Antworten, geschrieben in PHP)

Und noch einen drauf:

http://de3.php.net/manual/en/function.array-unshift.php

Autsch!
Basti

72

(22 Antworten, geschrieben in Neuigkeiten)

Das kann ich nicht so ganz nachvollziehen.

Für mich war dieses Bild der Dauerbaustelle auch da, als der Anspruch noch war, wirklich ein "Portal" für Webentwickler zu werden, mit Tutorials und was weiß ich noch für Angeboten. Irgendwann hat Hannes dann einen Rückzieher gemacht und devshare.de auf das Forum beschränkt (was es vorher letztlich auch nur war). Klar, dieser Schritt (Konzentration auf das Kerngeschäft *g) ist z.B. im Logo noch nicht durchgezogen worden, in dem devsharede immernoch  als Portal bezeichnet wird, aber ansonsten hat das Ganze für mich nichtsvon einer Baustelle - eher von einem leeren Gebäude, in dem eine ganze Mene an Spuren von einer bewegten Vergangenheit zeugen (sprach der Barde und schritt aus der Ruine *g).

Klar, das Layout könnte man ändern, aber dieses Standard-Theme ist doch nicht unfertig - die Buttons tauchen eben mitlerweile auf jeder zweiten Webseite mit Forum auf. So gesehen, ist devshare.de wohl nicht gerade originell, aber eben doch keine Baustelle, der was meinst du genau?

Ein Vorschlag: Dünn mal die Moderatoren aus, da haben sich ja einige monatelang oder gar jahrelang nicht mehr gemeldet: "H" (letztes Posting am 07.03.02), "Login" (25.07.02), "Henry" (27.07.02), "Azrael" (02.01.03) usw.

Ansonsten fänd ich es sinnig, sich mal "zusammenzusetzen" und das Thema mal näher anzuschauen, falls du, Hannes, das nicht ganz alleine regeln möchtest.

Basti

73

(22 Antworten, geschrieben in Neuigkeiten)

...ist halt ein wenig ausgestorben, das Ganze. Ich hatte mich irgendwann mal etwas intensiver in das PH-Forum php.de eingeklinkt. Das Klima dort ist unter aller Sau und manche fanden es dort noch relativ gepflegt. So gesehen kann ich nicht nachvollziehen, warum hier schon eine ganze Weile nur ein paar Postings pro Woche geschrieben werden. Fehlts an Publicity? Oder stimmtwas am Konzept nicht?

Basti

74

(22 Antworten, geschrieben in Neuigkeiten)

Hi.

Jo, der EDIT-Button is da und die Weiterleitung hat in meinem Firefox vor dem Update auch schon nicht funktioniert. Ist jetzt FF 1.0, ging aber schon auf 0.9.x nicht (beides auf Debian sarge).

Mit "Letzte Themen"-Link meinte ich einen solchen auf der Forenindex-Seite unter "Unbeantwortete Beiträge anzeigen". Da ist ja auch schon ein leerer Link angelegt. BTW: Das <br/> könnte da noch drangerückt werden, damit dieLinks alle rechtsbündig sind.

Basti

75

(22 Antworten, geschrieben in Neuigkeiten)

...magst du den "Letzte Themen"-Link wieder einfügen?

Basti