Beiträge von Sarkkan

    Ich glaube das Problem liegt an

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword"><</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$eingabe_array</span><span class="syntaxkeyword">)-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">){ <br />    </span><span class="syntaxdefault">$query </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">' AND '</span><span class="syntaxkeyword">; </span><span class="syntaxcomment">//Verknüpfung der einzelnen Worte mit UND<br /></span><span class="syntaxkeyword">}  </span><span class="syntaxdefault"></span>

    Hier müsste ein OR hin, den ansonsten sieht unsere Query nachher vllt so aus:

    SQL
    SELECT 
        * 
    FROM 
        glasseiten 
    WHERE
        inhalt LIKE '%glas%' OR url LIKE '%glas%' 
            AND
        inhalt LIKE '%sand%' OR url LIKE '%sand%'

    und dann müsste die URL "like" Glas sein und der Inhalt "like" sand.

    Arg >__< Ich glaube ich habe den Fehler gefunden.. Ich bin davon ausgegangen das der Offset-Parameter bei strripos automatisch von hinten beginnt und nicht wie bei den anderen vorne..
    Wir finden also nun an Position 100 noch einmal Glas und beim nächsten suchen fangen wir direkt wieder bei Position 100 an da ist ja das Wort Glas direkt wieder^^
    Gerade ne komplett andere Idee, die eigentlich auch viel einfacher ist:

    PHP
    <span class="syntaxdefault">$subPos </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">$subPos </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> stripos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $search</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 10</span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">)))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $searchResult </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $subPos</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span>

    Wir suchen einfach in unserem string wieder vorwärts ob noch mal das Wort Glas vor kommt, wenn ja dann verkürzen wir den String um kurz vor diese Position ^^

    Und nein, leider habe ich so ein Skript spontan nicht :/
    Tut mir Leid :/

    Huhu :)

    • PHP
      <span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL</span><span class="syntaxkeyword">); </span><span class="syntaxdefault"></span>

      Sollte auf keinem Fall in einem Live-System stehen. Aus einer Fehlermeldung kann ich Filesystem, Passwörter und mehr heraus lesen, wenn ich sowas provozieren will :wink:

    • Pfui, wieder deine Art von Affenformular, ich schicke dir gleich mal ein Vernünftiges Beispiel^^
    • Warum stehen die Passwörter Plain in der Datenbank? :O Wenigstens eine md5-Verschlüsselung mit einem Salt sind Minimum, sonst geht das wie bei Sony aus :wink:
    • Cookies? Du schickst dem Besucher / Hacker 2 Cookies mit dem Nutzernamen und der Angabe das er eingeloggt ist? Langzeit-Logins werden meine ich über einen Cookie geregelt, der eine Session-Id enthält^^ So kannst du dann mit diesem Wert nachsehen ob eine Session bereits besteht. Du solltest dann aber wenigstens den User-Agent-String in einem md5-Wert ebenfalls in der Session speichern um noch ein wenig zu verringern, dass man sich mit einem gestohlenen Cookie anmelden kann.
    • goto? Das macht man seit den 80ern nicht mehr :D
    • Beim Ausloggen würde ich die Session einfach zerstören? :)
    • einen vom Server gesendeten Header kann man folgen muss es aber nicht. Wenn ich noch Empfangen möchte was der Server danach mir sagen möchte, dann bleibe ich auf der Seite :) Daher lässt man nach einem header("location: ..."); das Skript sterben ( die() ); Außerdem solltest du nicht direkt mit echo arbeiten. Nach dem ersten echo kannst du nämlich keine Header mehr senden und ggf. soll der Besucher doch Information X dann doch nicht bekommen. Lieber über eine Variabel oder wenn es sein muss mit ob_start() arbeiten.


    Ansonsten fällt mir so spontan nichts ein^^ Nur etwas Allgemeines, arbeite lieber mit einem Template als dir immer alles kreuz und quer zusammen zu basteln und schau dir mal mein Affenformular an:

    PHP
    <span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">if(!isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"action"</span><span class="syntaxkeyword">])){<br />    </span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"notDouble"</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">;<br />    </span><span class="syntaxcomment">// Damit verhindern wir das mehrfach absenden von Formularen<br /></span><span class="syntaxkeyword">}<br /><br />if(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"action"</span><span class="syntaxkeyword">]) && </span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"notDouble"</span><span class="syntaxkeyword">] !== </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">){<br />    <br />    foreach(</span><span class="syntaxdefault">$_POST </span><span class="syntaxkeyword">as </span><span class="syntaxdefault">$key </span><span class="syntaxkeyword">=> </span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">nl2br</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">htmlentities</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">), </span><span class="syntaxdefault">ENT_QUOTES</span><span class="syntaxkeyword">));<br />    }<br />    <br />    </span><span class="syntaxdefault">$error </span><span class="syntaxkeyword">= array();<br />    <br />    if(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"name"</span><span class="syntaxkeyword">] == </span><span class="syntaxstring">""</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$error</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"name"</span><span class="syntaxkeyword">] = </span><span class="syntaxstring">"Sie müssen einen Namen eingeben"</span><span class="syntaxkeyword">;<br />    }<br />    <br />    if(</span><span class="syntaxdefault">filter_var</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"email"</span><span class="syntaxkeyword">], </span><span class="syntaxdefault">FILTER_VALIDATE_EMAIL</span><span class="syntaxkeyword">) === </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$error</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"email"</span><span class="syntaxkeyword">] = </span><span class="syntaxstring">"Bitte geben Sie eine gütlige E-Mail-Adresse ein"</span><span class="syntaxkeyword">;<br />    }<br />    <br />    </span><span class="syntaxcomment">// ...<br />    <br />    // Wenn unser Fehler-Array leer ist:<br />    </span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">sizeof</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$error</span><span class="syntaxkeyword">) == </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"notDouble"</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">;<br />        </span><span class="syntaxdefault">mail</span><span class="syntaxkeyword">();<br />    }<br />}<br /><br />if(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"notDouble"</span><span class="syntaxkeyword">] !== </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">){<br />    <br />    if(</span><span class="syntaxdefault">is_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$error</span><span class="syntaxkeyword">)){<br />        </span><span class="syntaxcomment">// Wenn Fehler ein Array ist, dann geben wir die Fehler aus<br />        // Dies kann natürlich nur dann passieren, wenn <br />        </span><span class="syntaxkeyword">echo </span><span class="syntaxstring">"<ul class=\"errer\"><li>"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">implode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"</li><li>"</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$error</span><span class="syntaxkeyword">).</span><span class="syntaxstring">"</li></ul>"</span><span class="syntaxkeyword">;<br />    }<br />    <br />    echo </span><span class="syntaxstring">'<form><br />            <input type="text" name="name" value="'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"name"</span><span class="syntaxkeyword">].</span><span class="syntaxstring">'" /><br />        <form>'</span><span class="syntaxkeyword">;<br />} else {<br />    echo </span><span class="syntaxstring">'<p>Vielen Dank für Ihre Nachricht..</p>'</span><span class="syntaxkeyword">;<br />}<br /><br /></span><span class="syntaxdefault">?></span>

    Gruß Dustin

    PS: Ich bin Paranoid :wink: Das sollte man im Webbereich aber auch immer sein.

    Beim hochladen einer Datei wirst du in deinem Skript Zugriff auf eine Superglobale (wie $_GET oder $_POST) haben, und zwar auf $_FILES.
    Dies enthält ein Array wie folgt:

    PHP
    <span class="syntaxdefault">array </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nameDesInput"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> array </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"name"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">"NameDerDatei.end"</span><span class="syntaxkeyword">,<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"type"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">"mime/type"</span><span class="syntaxkeyword">,<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"tmp_name"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxstring">"hier/liegt/die/Datei.temporär"</span><span class="syntaxkeyword">,<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"error"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"size"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Dateigröße in Bytes <br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">)<br />)</span><span class="syntaxdefault"> </span>

    Hier haben wir unter anderem das Feld "type", in dem der mime-Type der Datei drinsteht. Nun können wir ganz einfach überprüfen ob es eine xml ist, indem wir uns die xml-mimeTyps ansehen und mit diesen Vergleichen:

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$_FILES</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"userfile"</span><span class="syntaxkeyword">][</span><span class="syntaxstring">"type"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"text/xml"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">||</span><span class="syntaxdefault"> $_FILES</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"userfile"</span><span class="syntaxkeyword">][</span><span class="syntaxstring">"type"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> application</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">xml</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">   </span><span class="syntaxkeyword">...<br />}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $warning</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Es sind nur XML-Dateien erlaubt!"</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

    Gruß Dustin

    Zitat von &quot;Monitsch&quot;

    Welche Version von der/dem DOCTYPE (kommt wohl von DER Doktor :D ) ist denn zu empfehlen und aktuell? Oder kann man keine konkrete feste Antwort in dieser Hinsicht geben? Ich würde am Liebsten gleich mit dem aktuellen anfangen zu lernen, damit alle Funktionen ausgeschöpft werden können! Da ich noch relativ keine Ahnung von Javascript, PHP und so was habe, hat das etwas damit zu tun, was angezeigt werden kann und was nicht?

    Der Doctype bezieht sich wirklich nur auf die Darstellung des HTML's, die erlaubten Attribute und weitere "Kleinigkeiten".
    Der Aktuellste Doctype ist der HTML5-Doctype der seeeeehr schwierig aussieht:

    Code
    <!DOCTYPE html>

    :wink: (Das war es kein Witz^^)
    Mit diesem Doctype sind alle neuen HTML5-Semantik-Elemente erlaubt, jedes Element darf folgende Attribute id, Klasse, data-*, contenteditable, draggable, hidden, role und noch einige mehr sowie Element spezifische Attribute haben. Außerdem gibt es mit HTML5 native (also direkt vom Browser) Unterstützung von Audio- und Videowiedergabe.
    Dies ist aber alles nur relativ, da der Browser diese Sachen auch wirklich unterstützen muss. Bei alten Browsern muss man immer noch ein "Workaround" in der Hinterhand haben.

    Zitat von &quot;Monitsch&quot;

    Was ist der charset und kann ich den problemlos übernehmen?

    Der Charset, zu Deutsch Zeichensatz, gibt an, mit welcher Kodierung Sonderzeichen abgespeichert wurden.
    Hierfür muss die Angabe des entsprechenden meta-Tags mit der Tatsächlichen Kodierung des Dokumentes natürlich übereinstimmen. Es empfiehlt sich den UTF-8 Zeichensatz zu verwenden, da muss man Umlaute nicht kodieren (&auml; anstelle von ä), sondern kann sie direkt verwenden. Dazu einfach

    Code
    <meta charset=utf-8 />

    verwenden und bei Scriptly unten in der Leiste UTF-8 anstelle von ASCII auswählen.

    Zitat von &quot;Monitsch&quot;

    Welchen Sinn hat der Link TAG?

    Er gibt eine externe Ressource an, die du "verlinkst", weil du sie benutzten möchtest.

    Zitat von &quot;Monitsch&quot;

    Noch was anderes:
    Wenn ich in Scriptly validiere, erscheinen Warnungen bei den META TAGs "warning meta not closed", wie schließe ich diese TAGs ordnungsgemäß?!

    Tags die keine Schließenden Tag haben werden durch ein abschließendes / geschlossen:

    Code
    <meta name=... />
    <link href=... />
    <input type=... />
    ...
    Zitat von &quot;Monitsch&quot;

    Gibt es ein Zeichen-Limit bei dem META Content?

    Nein, den gibt es nicht^^ Aber es nützt nichts, wenn man hier jeden Sch*** einträgt. Suchmaschinen achten nur relativ wenig auf diese Angaben, man schaut zwar rein aber der Inhalt der Seite wird wichtiger gewertet.

    Gruß
    Dustin, alias Sarkkan

    Ach mist^^

    PHP
    <span class="syntaxdefault">$subPos </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">;<br />while((</span><span class="syntaxdefault">$subPos </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">strripos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$subPos</span><span class="syntaxkeyword">)) != </span><span class="syntaxdefault">$pos</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$searchResult </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$subPos</span><span class="syntaxkeyword">);<br />    } </span><span class="syntaxdefault"></span>

    Wir sollten vllt den Zeiger auch immer etwas vor rücken, sonst finden wir unendlich mal das letzte Vorkommen^^

    Zitat von &quot;rernanded&quot;

    Fatal error: Maximum execution time of 30 seconds exceeded in ... httpdocs/searchit/glastest.php on line 15


    WAS?! O___O
    30 Sekunden Maximlae Script-Laufzeit?^^ Standard sind meine ich 5 Minuten.. :/ Wo testest du das den?
    Naja.. also entweder hast du jetzt viele Ressourcen hinzugefügt, oder ich habe ne Endlosschleife produziert^^

    Okey :D
    Hier mal mein Versuch, es müsste eigentlich klappen^^ Ansonsten würde ich mich denke ich nachher mal kurz in meiner Pause noch mal drum kümmern^^

    PHP
    <span class="syntaxdefault"></span><span class="syntaxcomment">// Guter Programmierstil: Immer Variabeln initialisieren<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">// Solange unsere Variabel $pos kein False als Inhalt hat lassen wir die Schleife durchlaufen<br />// !== Ist ein Strikter vergleich, dass bedeutet das 0 nicht als false gewertet wird (es könnte ja sein, dass der Suchstring direkt am Anfang steht)<br />// die klammern um $pos = ... bedeuten, dass wir erst die Variabel befüllen und danach erst den neuen Inhalt vergleichen<br /></span><span class="syntaxkeyword">while((</span><span class="syntaxdefault">$pos </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$str</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$end</span><span class="syntaxkeyword">)) !== </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">){<br />    </span><span class="syntaxcomment">// Wenn wir etwas gefunden haben erhöhen wir die neue Suchposition um die Fundstelle + die Länge des Suchstrings<br />    </span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$pos </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">);<br /><br />    </span><span class="syntaxdefault">$searchResult </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$str</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$pos</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">) + </span><span class="syntaxdefault">115</span><span class="syntaxkeyword">);<br />    while((</span><span class="syntaxdefault">$subPos </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">strripos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">)) != </span><span class="syntaxdefault">$pos</span><span class="syntaxkeyword">){<br />        </span><span class="syntaxdefault">$searchResult </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$subPos</span><span class="syntaxkeyword">);<br />    }<br /><br />    echo </span><span class="syntaxstring">'<b>HIER:</b> '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$searchResult</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'<br/>'</span><span class="syntaxkeyword">;<br />}    </span><span class="syntaxdefault"></span>

    Klar wäre es das :)
    Willst du dich da an der Programmierung versuchen? Ich "Übersetzte" dein Vorgehen, markiere Schlagwörter und Verweise schon einmal auf Funktionen und du Programmierst es dann selbst? :)

    In unserer Suchschleife stellen wir erst einmal einen "Substring" her, der -10 Zeichen vor der Fundstelle beginnt und weitere 115 Zeichen einschließt.
    In unserem Substring prüfen wir ob unser Suchwort noch einmal drin vorkommt (Bzw. hier würde sich eine Suche von hinten eher eignen). Wenn es noch einmal vorkommt und die Position des neuen Fundes nicht die selbe ist wie die Eigentliche Suchstelle: verkürzen wir unseren Substring (hierzu haben wir ja schon die benötigten Positionen^^).
    Anschließend geben wir (unabhängig davon, ob wir den Suchstring noch einmal gefunden haben oder nicht) unseren Substring aus^^

    Wenn dir mein Gefassel zu dumm ist, sag bescheid dann helfe ich dir :)

    Gruß
    Dustin

    Dann hat bei dir der Benutzer "web72" auf deinem localhost (mit diesem Passwort?) keine Rechte auf die MySQL-Datenbank zuzugreifen.
    Hast du solch einen Benutzer bereits angelegt? Ansonsten versuch mal die bei der installation von xampp gemachten user zu verwenden oder den Standard-Benutzer (Benutzer: root, Passwort: "" (Also keines)).

    PS: Wer baut den noch Manuell eine Verbindung zu einem MySQL-Server auf? O.o

    Zitat von &quot;webmaster3000&quot;

    Hi

    Sarkkan:
    zu 1
    Kann man machen, wenn man die Tabellen-Tags nicht zweckentfremdet verwenden will. Ich habe mich so entschieden.
    zu 2
    Muss man nicht. wenn man nicht alle Pflichtfelder ausgefüllt hat, wird eine meldung angezeigt. die eingaben der ausgefüllten felder werden übernommen (value=\"$name\")


    Zu 1: ..sowas habe ich doch gar nicht gemeint :/ Es ging mir um die Kompatibilität für den IE und das es auch per normales Block-System ohne Probleme möglich wäre sauber zu stylen.
    Zu 2: Nicht der Benutzer muss seine Angaben noch ein mal machen, stimmt^^ Aber der Programmierer, der deinen Code übernimmt muss sein Formular (wie ich gerade sehe sogar) 3x in das Skript einbauen! :O Wenn ich nun auch noch gerne das Geschlecht abfragen und als Pflichtfeld angeben will müsste ich bei dir das 3x ändern und wenn ich das bei dir richtig sehe noch einmal in eine weitere if-Anweisuung packen. Das ist alles andere als Dynamisch ;)

    Wenn es wirklich dann ein application/xml oder application/xhtml+xml wird der Browser es nicht so richtig als Webseite ansehen sondern als Auszeichnung von Informationen^^
    Wenn es hingegen nur die Schreibweise (von wegen alle Tags werden geschlossen, Attribute brauchen einen Wert) ist, würde es "Professionell" aussehen und du hast später wenn du mal zu JavaScript kommst weniger Probleme.

    Zitat von &quot;Produrax&quot;

    darf man aber nicht!! <!-- m --><a class="postlink" href="http://www.homepage-forum.de/showthread.php?t=54618">http://www.homepage-forum.de/showthread.php?t=54618</a><!-- m -->

    So etwas kann man aber auch anständig schreiben.
    Zu deiner Methode: Finde ich eher kontraproduktiv, weil du den so Besucher verwirrst, der sich die E-Mail-Adresse in sein E-Mail-Programm kopieren will.
    Außerdem hast du dir gerade mehr oder weniger ein Eigentor geschossen, denn auch bei deinem Link ist die E-Mail-Adresse unbrauchbar und würde der Argumentation aus dem Post nach Illegal sein :)

    In der Agentur machen wir das über eine per JavaScript an diese Stelle geschriebene E-Mail Adresse.
    Sollte kein JavaScript da sein benutzten wir die CSS-Verschleierungstechnik, die du ja sicher kennst weil du dir den von dir geposteten Link ja sicher durchgelesen hast :)

    Heyho^^
    Dann will ich doch mal dich mit der harten Wirklichkeit Konfrontieren :p
    (Hoffe entmutige dich damit aber nicht all zu sehr^^)

    1. Zu deinem CSS (weil es mir als erstes Aufgefallen ist): Der IE kleiner 8 versteht immer noch nichts mit deinen Display-Eigenschaften anzufangen.
    Man sollte derzeit doch noch bis auf den 7'ner Rücksicht nehmen :/
    2. Bei deinem Affenformular muss ich ja 2x mein Formular schreiben. Das ist doppelte Arbeit wenn ich mal ein Feld hinzufüge oder Entfernen möchte :/
    3. Du hast da eine geschweifte Klammer falsch gesetzt :/ Da wo das Formular komplett ausgefüllt ist, passiert nicht, komme ich aber zum ersten mal auf deine Seite so würde eine E-Mail verschickt (wenn ich es bei deinem Kommentar einsetzten würde wie du es uns rätst).
    4. Deine Eingaben werden nur auf das nötigste Escaped. Gegen E-Mail-Injection bist du mit dem leider Machtlos und auch Spam ist bei dir sehr Willkommen.
    5. <label>'s sind sooooooo toll, warum verwendet man Sie den nicht? =( Sie erzeugen direkte Verbindungen, erleichtern die Bedienung und sind zum Stylen von Formularen soooo nützlich :(

    Gruß
    Dustin, alias Sarkkan

    Zitat von &quot;rernanded&quot;

    Tja und wie und wo genau einbauen? Da gibts dreimal pos. Und wahrscheinlich muß ich auch ( ) setzen.

    PHP
    <span class="syntaxdefault"></span><span class="syntaxcomment">// Guter Programmierstil: Immer Variabeln initialisieren<br /></span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">// Solange unsere Variabel $pos kein False als Inhalt hat lassen wir die Schleife durchlaufen<br />// !== Ist ein Strikter vergleich, dass bedeutet das 0 nicht als false gewertet wird (es könnte ja sein, dass der Suchstring direkt am Anfang steht)<br />// die klammern um $pos = ... bedeuten, dass wir erst die Variabel befüllen und danach erst den neuen Inhalt vergleichen<br /></span><span class="syntaxkeyword">while((</span><span class="syntaxdefault">$pos </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$str</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$end</span><span class="syntaxkeyword">)) !== </span><span class="syntaxdefault">false</span><span class="syntaxkeyword">){<br />    </span><span class="syntaxcomment">// Wenn wir etwas gefunden haben erhöhen wir die neue Suchposition um die Fundstelle + die Länge des Suchstrings<br />    </span><span class="syntaxdefault">$end </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">$pos </span><span class="syntaxkeyword">+ </span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">);<br />    echo </span><span class="syntaxstring">'<b>HIER:</b> '</span><span class="syntaxkeyword">.(</span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$str</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$pos</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$search</span><span class="syntaxkeyword">) + </span><span class="syntaxdefault">115</span><span class="syntaxkeyword">)).</span><span class="syntaxstring">'<br/>'</span><span class="syntaxkeyword">;<br />}  </span><span class="syntaxdefault"></span>

    Wir wollen die ersten 10 Zeichen vor unserer Fundstelle und 115 weitere Zeichen nach unserem Suchwort.

    Zitat von &quot;rernanded&quot;

    PS Das Suchwort kann ich jeweils ändern. Im Prinzip such ich nach allem was mit Glas (Glaslagerung Glastransport und -logistik) zu tun hat

    Aber deine Schleife sollte 33x das Wort "Glastransport" finden? Oder 33x das Wort "Glas"?
    Je nachdem muss ja dann der Suchstring geändert werden.

    Wenn es daran nicht liegt, dann lehre ich dich doch mal das Debugen :p
    Welche Stellen findet er den nicht? Gibt es unterschiede zu den Gefunden Suchstellen?