Beiträge von Basi

    Hey wo wir hier mal von Zahlen gesprochen haben, hier eine Möglichkeit zu prüfen ob es sich um eine Kommazahl oder eine Nichtkommazahl handelt:

    PHP
    <span class="syntaxdefault"><br /><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">is_int</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">)){</span><span class="syntaxcomment">/* trifft zu */</span><span class="syntaxkeyword">}<br />  if(</span><span class="syntaxdefault">is_int</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">3.7</span><span class="syntaxkeyword">)){</span><span class="syntaxcomment">/* trifft nicht zu */</span><span class="syntaxkeyword">}<br /><br />  if(</span><span class="syntaxdefault">is_float</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">)){</span><span class="syntaxcomment">/* trifft nicht zu */</span><span class="syntaxkeyword">}<br />  if(</span><span class="syntaxdefault">is_float</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">3.7</span><span class="syntaxkeyword">)){</span><span class="syntaxcomment">/* trifft zu */</span><span class="syntaxkeyword">}<br /><br /> </span><span class="syntaxdefault"></span>

    Ähm...

    Wenn du mit foreach trim() anwendest dann wird das nicht auf das eigentliche Array, sondern nur auf eine Kopie angewendet, sprich nachdem die Schleife durchgelaufen ist hat sich am Array nichts geändert, schreibe ich ein & dazu dann ändert dieser trim() Befehl das Array und nicht die Kopie.

    Nabend,

    ich habe eine Funktion gebaut die automatisch Dateien aus einem Ordner ausliest und diese entweder als Liste oder als Liste mit Links ausgibt.

    Die Funktion hat folgende Parameter:

    Pfad:
    Pfad angeben, '.' spricht das gleiche Verzeichnis an, mit ../ ein Verzeichnis zurück.

    Dateinamen:
    Endungen die ausgelesen werden sollen, nur Dateien mit den angegebenen Endungen werden verarbeitet. Durch Komma trennen.

    Attribute:
    Durch Komma getrennt sämtliche Attribute die Links / Listenelemente besitzen sollen, zuerst gibt man die Attribute für die Listenelemente mit, dann durch Komma getrennt die Attribute für die Links. Gibt man nur die Liste aus, aber trotzdem Attribute für die Links mit werden diese ignoriert.

    Ausnahmen:
    Kompletter Dateiname inklusive Endung um die Datei nicht mit einzubeziehen, durch Komma trennen.

    Mode:
    Ist dieser letzte Parameter auf true gesetzt wird das ganze als Liste mit Links ausgegeben, wenn nicht dann nur als Liste : )

    PHP
    <span class="syntaxdefault"><br />  genDataList</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PFAD</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> ENDUNGEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> KLASSENNAMEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> AUSNAHMEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MENU</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>

    Als Beispiel:

    PHP
    <span class="syntaxdefault"><br />  genDataList</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'inhalt/'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'html,htm,php'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'class="menuListenElement",target="_blank" class="menuLink"'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'guestBookScript.php, anmerkungen.htm'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>

    Aus dem Ordner Inhalt werden alle .html, .htm und .php Dateien ausgelesen, die Listenelemente bekommen die Attribute class="menuListenElement", die Links bekommen die Attribute target="_blank" class="menuLink". Die Dateien guestBookScript.php und anmerkungen.htm werden nicht ausgelesen da sie evtl. wichtige, nicht für den Benutzer gedachte Daten enthalten.


    Hier der Code:

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  </span><span class="syntaxkeyword">function </span><span class="syntaxdefault">genDataList</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dir</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$dataTypes</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$attributes </span><span class="syntaxkeyword">= </span><span class="syntaxstring">''</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$exception </span><span class="syntaxkeyword">= </span><span class="syntaxstring">''</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$menu </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">)<br />  {<br /><br />    if(!</span><span class="syntaxdefault">$dir</span><span class="syntaxkeyword">) return </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">;<br /><br />    </span><span class="syntaxdefault">$types </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">','</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$dataTypes</span><span class="syntaxkeyword">);<br />    foreach(</span><span class="syntaxdefault">$types </span><span class="syntaxkeyword">as &</span><span class="syntaxdefault">$type</span><span class="syntaxkeyword">)<br />    {<br />      if(</span><span class="syntaxdefault">$type</span><span class="syntaxkeyword">)<br />      {<br />        </span><span class="syntaxdefault">$type </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$type</span><span class="syntaxkeyword">);<br />      }<br />    }<br /><br />    </span><span class="syntaxdefault">$exception </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">','</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$exception</span><span class="syntaxkeyword">);<br /><br />    foreach(</span><span class="syntaxdefault">$exception </span><span class="syntaxkeyword">as &</span><span class="syntaxdefault">$ex</span><span class="syntaxkeyword">)<br />    {<br />      if(</span><span class="syntaxdefault">$ex</span><span class="syntaxkeyword">)<br />      {<br />        </span><span class="syntaxdefault">$ex </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ex</span><span class="syntaxkeyword">);<br />      }<br /><br />    }<br /><br />    </span><span class="syntaxdefault">$h </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">opendir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dir</span><span class="syntaxkeyword">);<br />    if(!</span><span class="syntaxdefault">$h</span><span class="syntaxkeyword">) return </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">;<br /><br />    if(</span><span class="syntaxdefault">$dir </span><span class="syntaxkeyword">== </span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">)<br />    {<br />      unset(</span><span class="syntaxdefault">$dir</span><span class="syntaxkeyword">);<br />    }<br /><br />    while (</span><span class="syntaxdefault">false </span><span class="syntaxkeyword">!== (</span><span class="syntaxdefault">$f </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">readdir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$h</span><span class="syntaxkeyword">)))<br />    {<br />      </span><span class="syntaxdefault">$d </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$f</span><span class="syntaxkeyword">);<br /><br />      if(</span><span class="syntaxdefault">in_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$d</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$d</span><span class="syntaxkeyword">)-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">], </span><span class="syntaxdefault">$types</span><span class="syntaxkeyword">) AND !</span><span class="syntaxdefault">in_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$f</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$exception</span><span class="syntaxkeyword">))<br />      {<br />        </span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">[] = </span><span class="syntaxdefault">$f</span><span class="syntaxkeyword">;<br />      }<br />    }<br /><br />    if(!</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">)<br />    {<br />      return </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">;<br />    }<br /><br />    </span><span class="syntaxdefault">$return </span><span class="syntaxkeyword">= </span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /><br />    switch(</span><span class="syntaxdefault">$menu</span><span class="syntaxkeyword">)<br />    {<br />      case </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">:<br />        </span><span class="syntaxdefault">$attributes </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">','</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$attributes</span><span class="syntaxkeyword">);<br />        foreach(</span><span class="syntaxdefault">$data </span><span class="syntaxkeyword">as &</span><span class="syntaxdefault">$dat</span><span class="syntaxkeyword">)<br />        </span><span class="syntaxdefault">$return </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">'<li '</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$attributes</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]) .</span><span class="syntaxstring">'>'</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$dat </span><span class="syntaxkeyword">.</span><span class="syntaxstring">'</li>'</span><span class="syntaxkeyword">;<br />      break;<br /><br />      case </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">:<br />        </span><span class="syntaxdefault">$attributes </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">','</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$attributes</span><span class="syntaxkeyword">);<br />        foreach(</span><span class="syntaxdefault">$data </span><span class="syntaxkeyword">as &</span><span class="syntaxdefault">$dat</span><span class="syntaxkeyword">)<br />        {<br />          </span><span class="syntaxdefault">$d </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$dat</span><span class="syntaxkeyword">);<br />          </span><span class="syntaxdefault">$return </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">'<li '</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$attributes</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]) .</span><span class="syntaxstring">'><a href="'</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$dir </span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$dat </span><span class="syntaxkeyword">.</span><span class="syntaxstring">'" '</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$attributes</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]) .</span><span class="syntaxstring">'>'</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$d</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]) .</span><span class="syntaxstring">'</a></li>'</span><span class="syntaxkeyword">;<br />        }<br />      break;<br />    }<br /><br />    return </span><span class="syntaxdefault">$return</span><span class="syntaxkeyword">;<br /><br />  }<br /><br /></span><span class="syntaxdefault">?><br /></span></span>

    (Habe den PHP Code mal etwas vereinfacht für euch)

    Am einfachsten lässt sich eine Seite wie folgt gestalten:

    Ohne PHP:

    Ordner: css (CSS Dateien), img (Bilder)

    Mit PHP:

    Ordner: css (CSS Dateien), img (Bilder), script (für PHP Scripte, aber auch JavaScript)

    Darin kann man ja z.B. Unterverzeichnisse erstellen:

    img -> inhalt, design

    Zitat von &quot;Privatier-Rolf&quot;

    Zunächst das Seminar ist toll. Ich habe verschiedene Kapitel durchgearbeitet. Jetzt bin ich bei der Auslagerung der Steuerung des Boxmodels in die css-Datei gescheitert. Eine Programmierung für die Box auf der Html-Seite funktioniert einwandfrei; aber das ist ja nicht der gewollte Effekt. Es muss doch einen HTML-Befehl geben, in dem der css-Datei gesagt wird, sage mir wo und wie die Box erscheinen soll. Für einen Hinweis, wie das zu realisieren ist, wäre ich dankbar. Privatier-Rolf

    Ey... sorry... ich weiß nicht was du meinst.

    Meinst du wie du deinem HTML Dokument sagen kannst wo die externe CSS Datei liegt?

    Code
    <link href="pfad/dateiname.css" type="text/css" rel="stylesheet" />

    Meinst du wie du einer Box ein Aussehen geben kannst?

    Nicht böse gemeint,

    aber könntest du es bitte unterlassen 4 x hintereinander zu posten, dafür haben wir den Edit Button,

    auch deine große, blaue Schrift nervt mich persönlich tierisch, wir lesen alles was du schreibst, auch wenn es "normal" groß ist,

    danke schön.

    Die Frage ist recht kompliziert, warum geht

    Code
    img[alt=bild]{...}

    genau so wie

    Code
    img[alt="bild"]{...}

    ?

    Und ich frage mich wie du darauf kommst das es mit " auch geht, dem 1. Beitrag nach zu urteilen geht es doch eben nicht oder?

    Also ich weiß ja nicht wie euch das geht,

    aber diese Seite würde ich mir nicht durchlesen!

    Rote Schrift auf rotem Hintergrund muss nicht wirklich sein O.o

    Einfach die Schriftgröße von h1 auf 0 setzen ist auch nicht gerade geschickt, man sieht es. So könnte man das besser lösen:

    Der Div .cantSee wird einfach nach links aus dem Bild geschoben ;) (Das stört das Layout weiter nicht!)

    Zitat von &quot;Sarkkan&quot;
    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">[...]<br /><</span><span class="syntaxdefault">input type</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"submit"</span><span class="syntaxdefault"> name</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"submit"</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"absenden"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">/><br />[...]<br />if(empty(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'submit'</span><span class="syntaxkeyword">)]){<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">'Formular abgesendet'</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

    Was ist denn heute nur los mit euch allen? :D

    Nein das Formular ist in deinem Falle eben NICHT abgesendet. Du hast das ! vor dem empty vergessen.

    Dein )]) müsste auch ])) heißen.

    Des weiteren sollte in dem Falle nicht geprüft werden ob das Feld ausgefüllt ist, sondern so:

    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxstring">'absenden' </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'submit'</span><span class="syntaxkeyword">]) { echo </span><span class="syntaxstring">'Formular abgesendet!'</span><span class="syntaxkeyword">; }<br /> </span><span class="syntaxdefault"></span>

    Ansonsten können böswillige Daten eingeschleust werden.

    Entschuldige Peter, ich will dir nicht zu nahe treten, aber gerade am Anfang ist es schwierig die { den } zuzuweisen, deshalb poste ich noch einmal deinen Code so, wie man es gut erkennen kann (hau mich ruhig dafür : D)

    PHP
    <span class="syntaxdefault"><br />   if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1 </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $kontrolle</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   if </span><span class="syntaxkeyword">(</span><span class="syntaxstring">""</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $vorname</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   echo </span><span class="syntaxstring">"Leere Felder zählen nicht...."</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   else<br />   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   echo </span><span class="syntaxstring">"Der eingetragen Name lautet: "</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$vorname</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">   </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span>

    Wenn du deinen und meinen Code vergleichst merkst du auch das deiner nicht ganz korrekt ist, du schließt die Abfrage $kontrolle==1 bevor du das else von $vorname=="" verwendest, Leute passt auf wie ihr das verschachtelt.

    Ich habe spaßenshalber auch mal die Klammern mit Strichen verbunden um klar zu machen wer zu wem gehört.

    Des weiteren ist es geschickt statt

    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$vorname</span><span class="syntaxkeyword">==</span><span class="syntaxstring">""</span><span class="syntaxkeyword">) <br /> </span><span class="syntaxdefault"></span>

    folgendes zu schreiben

    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"" </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">$vorname</span><span class="syntaxkeyword">)<br /> </span><span class="syntaxdefault"></span>

    Aus folgendem Grund:

    Schreibt ihr aus Versehen nur ein =, so wird im 1. Fall der Variable $vorname der Wert "" (also gar nichts) zugewiesen, im zweiten Fall sähe das so aus:

    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"" </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$vorname</span><span class="syntaxkeyword">)<br /> </span><span class="syntaxdefault"></span>

    Und das ergiebt eine Fehlermeldung, will heißen ihr merkt es sofort.

    Zitat von &quot;Sören&quot;


    Eine andere Möglichkeit wäre über Session.
    Wenn die Session gestartet wird, der Besucher also auf die Seite kommt, setzt eine Session-Variable.
    Dann wird bei jedem Seiten-Aufruf überprüft, ob er in der Session schon auf der Seite da (ob die Variable gesetzt ist). Wenn ja wird er nicht nochmal eingetragen, wenn nein wird er eingetragen.
    Problem ist nur, wenn der Besucher zwischendurch den Browser ausmacht (oder selbiger abstürzt), wird er zweimal gezählt.

    Wie du selbst sagst, wenn jemand Bösartiges vorhat macht er den Browser neu an bzw. hat eh 5 Browser auf bzw. hat eh einen Bot der das macht.

    Am Besten eignet sich folgende Methode:

    1. IP speichern
    2. Cookie setzen

    Ich habe mal ein Programm geschrieben das Besucher auch mit neuer IP erkennt, dies habe ich nur anscheinend gelöscht, und wenn ich es neu schreibe gebe ich es nur per PN weiter.