1

(2 Antworten, geschrieben in PHP)

Hi.

Ich nehme dafür Umbrello. Muss leider neu kompiliert werden, wenn was an der Generierung geändert werden soll (leider, weil ich Debian benutze und keinen Bock auf manuelle upgrades hab).

Für Eclipse gibt es da bestimmt auch Lösungen oder die Möglichkeit, da was hinzubiegen. Ich meine, der übliche Weg ist, aus dem UML ein XMI zu erstellen und daraus dann den Quellcode und ich denke, da git es unterschiedliche Anwendungen, die das eine oder andere beherrschen.

Ach ja, vielleicht mal hier umschauen:
http://www.codegeneration.net/generator … anguage=22

Basti (seit Monaten mal wieder ein Posting hier *g)

PS:
Ach ja, vielleicht geschickt, bei solchen Fragen dazuzuschreiben, auf welchem Betriebssystem du arbeitest. Gibt ja nicht wenige, die auf Windoosen oder sogar Macs entwickeln.

2

(4 Antworten, geschrieben in PHP)

...du hattest in der while-Schleife die schließende Klammer vergessen...

3

(1 Antworten, geschrieben in PHP)

Hi Dave.

Ich vermute, dass du a) den Header mit demZeuchensatz falsch gesetzt hast, oder b) die Schrift, die den Text darstellt nicht über die nötgen Zeichen verfügt. Wenn das nicht der Fall ist, dann wird PHP da wohl was durcheinanderbringen. Da wäre halt zu schauen, durch welche Funktionen du die Zeichenketten jagst.

Basti

4

(4 Antworten, geschrieben in Siteseeing)

Danke.

Basti

5

(4 Antworten, geschrieben in Siteseeing)

Hi.

Wozu braucht solch eine kleine Präsentation Cookies?

Ist halt ein Wiki. Natürlich bräuchte es das nicht, da der Gast ja ohnehin nichts ändern darf. Ist mir jedoch zu aufwändig, das auszubauen.

Ansonsten gefällt mir die Seite recht gut! Bis auf das Login-Formular wirkt die Seite wie aus einem Guss - sehr angenehm zu lesen!

Hab das Login-Formular jetzt mal Quick'n Dirty angepasst...

Danke.
Basti

6

(4 Antworten, geschrieben in Siteseeing)

Hallo.

Meine neue Homepage:

http://bastian-fenske.de/

Noch nicht viel Inhalte, aber ... wird vielleicht noch *g*
Das Backend ist ein CoWiki[1]. Mal sehen, wie es sich damit arbeiten lässt - das Anpassen war nicht so ganz lecker und auch sonst gibt es ein paar Wermutstropfen (Seitentitel müssen einmalig sein - schwierig, wenn zwischen Ordnern und Seiten differenziert wird und so jeder Ordner eine Index-Seite braucht, aber eben keine dieser den gleichen Namen tragen darf; Wiki-Syntax ist ein wenig aufwändig anzupasen, da erst alles nach XML transformiert wird; "Normale" Installation auf meiner lokalen Maschine hab ich aufgrund meiner Apache-Konfiguration (UserDir) nicht hinbekommen etc.)

Liebe Grüße an ein eingeschlafenes Forum,
Basti

7

(1 Antworten, geschrieben in HTML/XHTML)

Hi Paul.

Die Spezifikationen gibts natürlich beim W3C. Die XHTML-Spezifikation baut auf den vorigen Versionen auf. Musst halt womöglich noch was weiter zurückgehen. Vielleicht reicht dir aber auch schon die DTD/eine der DTDs. Die findest du dort natürlich auch (bzw. den Link dahin in jeder XHTML-Seite).

http://www.w3.org/TR/xhtml1/

Basti

8

(2 Antworten, geschrieben in PHP)

Das sollt's gewesen sein

Wahrscheinlich noch nicht ganz. Um einen Query-String dynamisch zu erzeugen, sollten die Parameter durch urlencode() gejagt werden, falls nicht sichergestellt werden kann, dass diese ausschließlich alphanumerische Zeichen (ohne Umlaute etc.), sowie den Binde- und den Unterstrich enthalten.

Und wenn der URI erzeugt ist, musst du ihn noch durch htmlentities() jagen, bevor du ihn in eine Webseite ausgibst. Hier das entsprechende Beispiel aus dem Manual:

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?> 

http://php.net/manual/en/function.urlencode.php
http://de2.php.net/manual/en/faq.html.p … l.encoding

Basti

9

(1 Antworten, geschrieben in PHP)

$id = $isbn . 'frei';

$value = (isset($_POST[$id])) ? $_POST[$id] : NULL; 

...oder so ähnlich.

Basti

10

(3 Antworten, geschrieben in PHP)

Hi.

Also im Array $_SERVER hat das mal garnichts zu suchen! Warum übergibst du dicht einfach das Array mit den Wörtern in die Funktion. Die Fehler-Texte haben dort auch nichts verloren!

Vielleicht solltest du, um dir noch Frage 1 zu beantworten einfach mal etwas ordentlicher rangehen. Ein Funktion, wie folgende sollte es doch eigentlich tun, oder:

<?php

function contains_words($string, $words_array)
{
    $string = strtolower($string);
    foreach ($words_array as $word) {

        if (false !== strpos($string, strtolower($word))) return true;
    }
    return false;
}
?>

Du kannst dir aber auch eine Klasse darus basteln und entsprechende Test-Cases formulieren...

<?php
error_reporting(E_ALL);
 
require_once('simpletest/unit_tester.php');
require_once('simpletest/reporter.php');

class TestOfBadwords extends UnitTestCase
{
    function testSetBadwords()
    {
        $words1 = array('Sex',
            'Viagra',
            'Penis');

        $Badwords = new Badwords($words1);

        $this->assertEqual($words1, $Badwords->get_words());
        
        $words2 = array('Geschlechtsverkehr',
            'Drogen',
            'Porno');

        $Badwords->set_words($words2);

        $this->assertEqual($words2, $Badwords->get_words());
    }

    function testContainsWords()
    {
        $words = array('Sex','Syx');
        $Badwords = new Badwords($words);

        $this->assertTrue($Badwords->contains_word('Sex'));
        $this->assertTrue($Badwords->contains_word('sex'));
        $this->assertTrue($Badwords->contains_word('xsexx'));
        $this->assertTrue($Badwords->contains_word('xsyxx'));
        $this->assertFalse($Badwords->contains_word('irgendwas'));
    }
}
    
$test = &new TestOfBadwords();
$test->run(new HtmlReporter());
 
class Badwords
{
    protected $words = array();

    public function __construct($word_array)
    {
        if (is_array($word_array) && !empty($word_array)) {
        
            $this->set_words($word_array);
        }
    }
    
    public function set_words($word_array)
    {
        if (!is_array($word_array) || empty($word_array)) return false;

        return $this->words = $word_array;
    }

    public function get_words()
    {
        return $this->words;
    }

    public function contains_word($text)
    {
                $text = strtolower($text);
        foreach ($this->words as $word) {
        
            if (false !== strpos($text, strtolower($word))) return true; 
        }
        return false;
    }
}
?>

...die andere Frage wäre natürlich, warum du Worte, wie Sex, Penis, Sadismus etc. irgendwo ausfiltern willst...

Basti

11

(3 Antworten, geschrieben in PHP)

Schon mal was von Namensräumen gehört? Deine Arrays sind in der Funktion nicht verfügbar. Error-Reporting-Level hochsetzen, dann passiert sowas nicht!

Basti

12

(12 Antworten, geschrieben in Siteseeing)

big_smile ... da ist was dran!

13

(12 Antworten, geschrieben in Siteseeing)

Mit einem ausreichenden linken margin-Wert kommen die Punkte wieder. Ich habs jetzt allerdings mit eigenen Listenpunkten (Bakground-Bildchen) gelöst und es sieht (fast) überall gut aus (der MSIE 4.0 blickts nicht, aber das ist gut verkraftbar...)

Danke,
Basti

14

(12 Antworten, geschrieben in Siteseeing)

Sind denn die Listenpunkte da?

Basti

15

(3 Antworten, geschrieben in Siteseeing)

>Ich verstehe nicht so ganz, was du jetzt von uns möchtest. Du schreibst,
>das die Bilder und die Schriften und deren Anordnung vorgegeben waren.
>Schreib uns doch mal, welchen Spielraum du überhaupt hast, die Seite zu
>verändern.
Also.. Vorgegeben war:
[...]
-Der Rahmen der Navigationskästen sollte ungefähr so sein.. Das Bild darin ergibt sich aus der Farbgestaltung und der potenziellen Zielgruppe für 10 jährige..

Dann nimm zumindest den Listenpunkt weg und ändere die Hintergrund-Textur.

>, den Schriftzug an sich gut, nur ist die Schrift besch* ausgeglichen und
> schlecht gerendert.
ja, schlecht gerendert schon.. nur da die schrift da ja irgendwo hin musste blieb nicht viel anderes übrig.. Lucida Console lässt sich nicht so einfach ändern und wenns auf valign:middle wäre, würd's auch net gut aussehen

Das Rendering hat das nichts mit der Positionierung zu tun. Und was die Schrift angeht, so wrde ich einfach die horizontalen Balken etwas breiter machen, damit kannst du das dicke "c" doch schon ausgleichen - vorausgesetzt, die Lizent der Schrift lässt derartiges zu...

>Der erste Schritt wäre, das Navigationsmenü komplett zu überarbeiten!
>Das ist so absolut daneben!
subjektiv. aber wie gesagt, ich stimme dem zu

Das Forum hier ist grad ja nicht so gut besucht, aber ich glaube, auch ohne eine repäsentative Umfrage zu starten kannst du das "subjektiv" getrost in die Mülltonne klopfen, auch wenn es womöglich irgendwo auf diesem Planeten wen gibt, dems gefällt (im Kontext dieser Seite).

Aber, auf der anderen Seite - wenns dem Kunden taugt und du es mit deinem Gewissen vereinbaren kannst, dann lass es halt so...

>Dann würde ich WordPress nch ein wenig mehr verstecken,
Hm.. Ich wusste nicht, in wie fern man sowas lassen kann.. schließlich soll man ja noch in der Lage sein, Comments etc abzugeben

Es geht ja nicht um die Funktionalität, sondern z.B. um den Kopf jeder Seite:

Idee
------------------------------------------------
hitch @ 3:10 pm April 29, 2005 - Uncategorized

Das macht sich nicht so gut, oder?

Wiso machst du die Seite eigentlich nicht breiter? Für eie 800px-Auflösung ist sie ohnehin zu breit, also kannst du den Inhalten doch was mehr Raum geben, oder?

Basti

16

(12 Antworten, geschrieben in Siteseeing)

Geht es so?

http://coyserve.de/hamoson-test3.html

Und noch eine Frage:
Der ganze Text in der linken Spalte sollte links auf einer (gedachten) Linie liegen, die Aufzählungszeichen also quasi links neben dem Textblock liegen. Wird das korekt dargestellt?

Also so:
 
   Überschrift
 
   Absatz
 
*  Listenpunkt
*  Listenpunkt  
 
anstatt so:
 
   Überschrift
 
   Absatz
 
   *  Listenpunkt
   *  Listenpunkt  

Basti

17

(3 Antworten, geschrieben in Siteseeing)

Hi.

Mit der Seite wirst du dir jeden potentiellen Kunden vertreiben (und dein Kunde seine (fiktiven) Kunden garantiert auch)!

Ich verstehe nicht so ganz, was du jetzt von uns möchtest. Du schreibst, das die Bilder und die Schriften und deren Anordnung vorgegeben waren. Schreib uns doch mal, welchen Spielraum du überhaupt hast, die Seite zu verändern.

Eine freie Kritik:
Das Bildlogo finde ich unter alles Sau in der Größe, den Schriftzug an sich gut, nur ist die Schrift besch* ausgeglichen und schlecht gerendert. Die Anodnung der Elemente find aich an sich nicht schlecht - klassisch hal, nur den Abstand über "h.i.t.c.h." finde ich auf meinem Notebook (1024+768) ein wenig arg groß.

Der erste Schritt wäre, das Navigationsmenü komplett zu überarbeiten! Das ist so absolut daneben! Dann würde ich WordPress nch ein wenig mehr verstecken, ... ich hör hier mal auf ... muss selbst nocharbeiten *g* (und das am Vatertag - schande! *g)

Basti

18

(12 Antworten, geschrieben in Siteseeing)

Hi Tom.

Danke. Hast du (oder sonstwer) eine Idee, woran das liegen könnte?

Ich hab den Code jetzt mal abgespeckt:

http://coyserve.de/hamoson-test2.html

"Bilder" und "Beschreibung" sollten nebeneinander erscheinen (nicht auf einer Linie, "Bilder" hat nach oben einen größeren Abstand, aber eben in zwei Spalten)

Hier der Aufbau:

<div id="wrapper">
    <div id="angebot">
        <div id="zweispalten">  
            <div id="bilderspalte">
                Bilder
            </div>
            <div id="beschreibungsspalte">
                Beschreibung
            </div>
        </div>
    </div>
</div>

Und hier die CSS-Angaben:

body
{
    margin: 0;
    width: 100%;
    padding: 0;
    text-align: center;
}

#wrapper 
{
    margin: 0 auto;
    width: 900px;
    padding: 0;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 100%;
    line-height: 2em;
}

#angebot
{
    margin: 0;
    width: 900px;
    padding: 0;
}

#zweispalten
{
    margin: 0;
    padding: 0;
}

#bilderspalte
{
    float: left;
    margin: 0 30px 0 30px;
    width: 500px;
    padding: 30px 0 0 0;
    text-align: center;
}

#beschreibungsspalte
{
    float: left;
    margin: 0 30px 0 0;
    width: 300px;
    padding: 0;
    text-align: left;
}

#wrapper ist 900px breit, ohne margin und padding. Darin liegt #angebot, ebenfalls 900px breit und mit allen Abständen = 0. Darin dann #zweispalten: margin und padding ebenfalls = 0. Dann links (float: left) #bilderspalte mit 500px breite und nach rechts und links je 30px Außenabstand (macht zus. 560px). Vermeintlich daneben #beschreibungsspalte mit 300px Breite und einem Außenabstand von 30px nach rechts (330px). Ergibt 890px und das sollte doch wohl in einen 900px breiten Container ohne Innenabstand reinpassen, oder?

Was übersehe ich denn da?

Basti

19

(12 Antworten, geschrieben in Siteseeing)

Hallo.

Ich hatte (habe?) ein Problem mit einer Seitendarstellung im Internet Explorer > 4. Da ich im Moment keinen zur Hand habe meine Bitte an euch, mal nachusehen, ob ich den Fehler jetzt rausbekommen habe, oder ob es immernoch falsch dargestellt wird:

http://coyserve.de/hamoson-test.html

Unter dem Banner und der Überschrift sollten zwei Spalten erscheinen. Links eine Reihe mit Bildern untereinander, rechts Text. Der Text der rechten Spalte wurde im MSIE unter die Bilderspalte gesetzt. Ich vermute, da ich für eine Box den Innenabstand nicht explizit auf 0 gesetzt hatte. Das hab ich jetzt geändert und nun eben meine Frage, ob es jetzt korrekt dargestellt wird.

Basti

20

(3 Antworten, geschrieben in CSS)

Hier mal noch ein Link zum Thema mit vielen Beispielen:

http://css.maxdesign.com.au/listamatic/

Basti

21

(3 Antworten, geschrieben in PHP)

Hallo.

2. $kategorie und $werte funkt beides - bzw. bei mir eben nicht... *g*

Die Variable $kategorie enthält ein indiziertes Array. In der foreach-Schleife iterierst du darüber und schreibst den jeweiligen Wert in die Variable $wert. Die String-Repräsentation von $kategorie ist "array", weshalb bei deiner ersten, inzwischen korrigierten Version in der SQL-Query dann ein "WHERE kategorie='array'" zu finden gewesen wäre. Ein echo $sql bringt solche Fehler leicht zu Tage.

Ich würde zur Fehlersuche mal in die Schleife über die Ergebnisliste die jeweilige Zeile mit var_dump() ausgeben lassen. Was allerdings allemal fehlerhaft zu sein scheint, ist, dass du die Variable $$werte jeweils wieder überschreibst. Du bekommst also allenfalls den letzten Datensatz. Da du in deiner ersten Version (es ist übrigends recht umständlich, wenn du dein Eingangsposting nachträglich veränderst, wenn inzwischen schon darauf Bezug genommen wurde) den Wert der Variable $$kategorie zugewiesen hast, vermute ich mal, dass du hier jetzt nur aus versehen $$werte geschrieben hast und eigentlich $$wert meinst, also die jeweiligen Zeilen dann in $1, $2 etc. haben möchest.

Da wäre eine extrem unsaubere Lösung, da du ja damit dein Kategoriensystem abhängig vom Namensraum der Variablen machst! Also besser mit einem Array arbeiten:

$cats   = array(1, 2, 3, 4, 5);
// enthaelt ja ALLE Kategorien, darum waere der Plual angebracht

foreach ($cats as $cat) {
 
    $sql = "SELECT id, name FROM partner WHERE kategorie = '$kategorie'";
    // Nur auslesen, was du auch wirklich brauchst (id und name)
    $result = mysql_query($sql);
    // Fehler abfangen waere hier noch angebracht
 
    while ($row = mysql_fetch_assoc($result)) {
    
        $cat_links[$cat] = '<a href="' . $_SERVER['PHP_SELF'] . '?product_id=' . $row['id'] . '">' . $row['name'] . '</a><br />';   
    }
}
echo '<pre>';
var_dump($cat_links);
echo '</pre>';

Übrigends schreibst du in deiner jetzigen Version echo $$werte = '...'; Die Zuweisung der Zeichenkette auf $$werte ergibt (bool) true und das gibst du dir dann via echo aus. Da müsste also eine "1" oder so ausgegeben werden...

Basti

22

(3 Antworten, geschrieben in Betriebssysteme)

Ich vermute mal, dass du mehr Chancen auf eine Antwort hast, wenn du uns ma verrätst, welchen Browser du verwendest. Falls den MSIE, dann installier dir einfach den Firefox und du hast eine ganze Menge Probleme weniger *g. Inclusive ungefragter PopUps - über deren Existenz du dennoch informiert werden kannst.

Basti

23

(6 Antworten, geschrieben in PHP)

...ich bin grad nochmal den Changelog von PHP5 durchgegangen, weil ich vorhin eine neue Funktion entdeckt hab. Jetzt hab ich noch eine gefunden, die hier reinpasst:

http://php.net/manual/en/function.http-build-query.php

$data = array('foo'=>'bar',
             'baz'=>'boom',
             'cow'=>'milk',
             'php'=>'hypertext processor');
            
echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor

24

(6 Antworten, geschrieben in PHP)

Siehst du ja an unseren Antworten. Wenn es darum geht, eine Variable von einer PHP-Datei in die andere zu bringen, dann gibt es dazu eigentlich nichts zu sagen, denn sie ist dort einfach vorhanden, wenn du diese andere Datei einbindest. Du hast eben nicht geschrieben, dass du letztlich nach einer Möglichkeit suchst, via HTTP ohne POST einen Wert an ein PHP-Skript zu übergeben. Dein "ohne Formular" in Klammern lässt das allenfalls vermuten, dass du eben HTTP als Protokoll verwendest.

Basti

25

(6 Antworten, geschrieben in PHP)

Hi.

Ich glaube, "RoN" meinte die Übergabe von einer Seite zur anderen ("Dokument"). In dem Fall hängst du die zu übergebenden Werte einfach als Parameter an die Link-Adresse ran:

$foo = 'bar';
$baz = 42;
echo '<a href="index.php?foo=' . $foo . '&baz=' . $baz . '>Klick!</a>';

Im dem Skript, auf den der Link zeigt, greifst du auf die Werte letztlich genauso zu, wie auf Variablen, die per Formular übergeben, nur eben, dass du $_GET bemühst, anstatt $_POST. Also:

if (isset($_GET['foo'])) echo "$foo = $foo";

Ach ja, falls du nicht sicher bist, ob alle Zeichen der zu übergebenden Variable "sauber" sind, dann musst du sie noch durch urlencode() jagen.

http://php.net/manual/en/reserved.varia … iables.get
http://php.net/manual/en/function.urlencode.php

Und ... vielleicht beschreibst du in Zukunft ein bischen genauer, was du willst, dann müssen wir nicht blöd rumraten.

Basti