Beiträge von Sören

    Da gibts ne schöne Funktion für: eval

    PHP
    1. $ergebnis = eval($_POST['input']);


    Die führt PHP-Code in Strings aus.


    Du solltest dir aber vorher hundertprozentig sicher sein, dass wirklich nur Rechenaufgaben eingegeben werden, sonst kann jeder PHP-Code einschleusen und ausführen lassen
    z.B. per RegEx auf Zahlen, Leerzeichen und Rechenzeichen.


    Ich hatte da auch mal irgendwann was aufwendigeres programmiert und gepostet, ist aber glaub ich schon recht lange her.
    Edit: Habs gefunden

    Hm, ich meinte zwar eigentlich was, was auch funktioniert, wenn man nicht angemeldet ist (damit man schön mit einem Klick sehen kann, ob neues geschrieben wurde), aber danke.
    Muss ich halt meine Faulheit überwinden und mich anmelden, um Beiträge zu lesen ^^

    Ich hab die Erfahrung gemacht, dass der Preisunterschied wirklich sehr groß ist.
    Hab mir vor ein paar Monaten auch einen PC zusammengebaut, ein Marken-PC hätte mich um die 200€ mehr gekostet, wobei ich die Einzelteile allerdings auch im Internet bestellt hab, das ist günstiger als im Laden.
    Zum Vergleichen der Anbieter hat mir die Seite http://preisvergleich.hardwareluxx.de/ weitergeholfen, da kannst du die einzelnen Teile suchen und dann findest du dort die Anbieter nach Preis geordnet.
    Der ganze Kram lässt sich auch recht einfach selbst zusammenbauen, da man nicht wirklich viel falsch verbinden kann und den Teilen meistens Anleitungen beiliegen, andernfalls kannst es natürlich auch von einem Laden zusammenbauen lassen.


    Welche Teile gut sind musst du nicht unbedingt wissen, gibt im Internet ziemlich viele Bauvorschläge (z.B. hier).
    Ich habe meinen PC nach einem Bauvorschlag aus einem c't Sonderheft zusammengebaut. (wenn du willst, kann ich dir die Bauvorschläge geben)


    Ich würde an deiner Stelle allerdings noch ein paar Monate warten, da im Moment die Festplattenpreise immer noch ziemlich hoch sind, es sei denn, du hast zufällig noch ne Festplatte zuhause oder kannst die aus deinem alten PC weiterverwenden.

    Hilfreich wäre der Code der Mutterklasse von webshop (artikel).


    Ich vermute, dass deiner Eigenschaft $pdf in webshop keine Instanz von pdf zugewiesen wird. Das musst du also im Konstruktor von webshop tun:

    PHP
    1. <span class="syntaxdefault"> public </span><span class="syntaxkeyword">function </span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dateiname</span><span class="syntaxkeyword">)<br /> {<br /> </span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdf </span><span class="syntaxkeyword">= new </span><span class="syntaxdefault">pdf</span><span class="syntaxkeyword">();<br /> </span><span class="syntaxdefault">parent</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dateiname</span><span class="syntaxkeyword">);<br /> } </span><span class="syntaxdefault"></span>


    ($pdf ist beim ersten Aufruf eine uninitialisierte Variable, also auch kein Objekt ("non-object"). Es kann also nicht auf etwaige Methoden zugegriffen werden ("Call to member function").

    Versuchs mal ohne die Verkettung.
    Da beim Includen sowieso der enthaltene Code ausgegeben / ausgeführt wird, musst dus nicht in ein echo schreiben. Das echo gibt vermutlich noch den Rückgabewert von include() aus (in diesem Falle vermutlich true, also 1, da die Datei erfolgreich eingebunden wurde).

    PHP
    1. <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php <br /></span><span class="syntaxkeyword">if (</span><span class="syntaxdefault">file_exists</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"de/news1.html"</span><span class="syntaxkeyword">)) { <br /> echo </span><span class="syntaxstring">'<li>'</span><span class="syntaxkeyword">;<br /> include(</span><span class="syntaxstring">"de/news1.html"</span><span class="syntaxkeyword">);<br /> echo </span><span class="syntaxstring">'</li>'</span><span class="syntaxkeyword">;<br />} <br /></span><span class="syntaxdefault">?></span></span>

    Der Browser übernimmt beim Neuladen vorher eingegebene, noch nicht abgeschickte Formulardaten, was ja normalerweise nützlich ist.
    Ich hab das auch schon mal ohne Erfolg versucht zu verhindern.


    Vielleicht klappts ja, wenn man per JS versucht, das unabhängig von onload zurückzusetzen, beispielsweise durch Anbinden an ein anderes Event, wie Mausbewegegung.


    Aber eigentlich ist das doch auch nicht schlimm, oder?

    &quot;drPHIP132&quot; schrieb:

    Du hast es wohl nicht mitbekommen :P. Ich habe mich in der letzen Zeit mit AJAX beschäftigt und ich glaube sogar es zu verstehen :):):):):):)
    (Den code habe ich sogar schon vor Augen für einen Chat :D )


    Auch mit Ajax würde da sehr viel Traffic entstehen, ob du jetzt ständig neue Ajax-Abfragen sendest oder auf das PHP-Skript wartest, das ständig die Datenbank überprüfst.


    Zum Chat die FAQ von all-inkl.com:

    &quot;[url schrieb:

    http://all-inkl.com/wichtig/faq/[/url]"]10.) Darf ich bei Ihnen einen Chat installieren?


    Ein auf unseren normalen Webhostingpaketen installierter Chat ist aufgrund des schwer einschätzbaren Lastbedarfs grundsätzlich nicht erlaubt.

    Du wirst den Administrator der einzubindenden Seite vorher um Erlaubnis fragen müssen und auch deutlich kenntlich machen, das es nicht dein Inhalt, sondern nur ein iFrame ist.


    Hast du denn schon eine Idee, wie du das mit der Chat-Funktion lösen willst?
    Das wird mit PHP nämlich schwierig, da HTTP ein Zustandsloses Protokoll ist und du somit immer wieder, entweder mit Ajax eine Abfrage stellen oder die Datenbank auf Aktualiesierungen überprüfen musst, was sehr viel Traffic produziert und daher auch von vielen Providern nicht erlaubt ist.


    Die Idee allgemein fände ich aber auch gut.

    In der if-Abfrage wird ganz einfach überprüft, ob der Browser FormData kennt, zuerst wird geprüft, ob FormData existiert (wenn es existiert ist der erste Teil der if-Abfrage true) und dann, ob es eine Funktion ist.


    Das FormData-Objekt kann in einem XMLHttpRequest key/value-Paare von Formularen (also die Werte der Input-Felder, einschließlich Dateien) senden.
    Daher werden data sozusagen die Daten deines Formulars zugewiesen (was eben auch hochzuladende Dateien seien können).
    Diese Daten werden dann eben beim senden der Ajax-Anfrage mitgeschickt.
    Zitat aus DerWaldschrats Quelle:

    &quot;[url=https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest#Using_FormData_objects schrieb:

    Mozilla Developer Network[/url]"]Using FormData objects


    The FormData object lets you compile a set of key/value pairs to send using XMLHttpRequest. Its primarily intended for use in sending form data, but can be used independently from forms in order to transmit keyed data. The transmitted data is in the same format that the form's submit() method would use to send the data if the form's encoding type were set to "multipart/form-data".

    Für diese Art der Schleife gibt es auch eine eigene Schleife: die for-Schleife. Bei dir würde das dann so aussehen:

    PHP
    1. <span class="syntaxdefault"><?php<br /><br />$fd</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">fopen</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"linksammlung.txt"</span><span class="syntaxkeyword">, </span><span class="syntaxstring">"r"</span><span class="syntaxkeyword">);<br /><br />echo</span><span class="syntaxstring">"<table border=\"1\">"</span><span class="syntaxkeyword">;<br /><br />for (</span><span class="syntaxdefault">$nummer </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">1</span><span class="syntaxkeyword">; </span><span class="syntaxdefault">$inhalt</span><span class="syntaxkeyword">= </span><span class="syntaxdefault">fgets</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$fd</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">4096</span><span class="syntaxkeyword">); </span><span class="syntaxdefault">$nummer</span><span class="syntaxkeyword">++)<br />{<br />list(</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$beschreibung</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">$inhalt</span><span class="syntaxkeyword">);<br /><br />echo </span><span class="syntaxstring">"<tr>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" <td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" $nummer"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" </td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" <td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" <a href=\"$url\"> $url </a>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" </td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" <td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" $beschreibung "</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" </td>"</span><span class="syntaxkeyword">;<br />echo </span><span class="syntaxstring">" </tr>"</span><span class="syntaxkeyword">;<br /><br />}<br />echo </span><span class="syntaxstring">" </table>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?></span>


    Der erste Teil der Schleife ($nummer = 0) wird am Anfang einmal ausgeführt, der zweite Teil ($inhalt= fgets($fd, 4096)) ist wie bei der while-Schleife die Abbruchbedingung und $nummer++ wird nach jedem Schleifendurchlauf ausgeführt.
    (siehe PHP-Kurs)

    lauras Methode wird so nicht funktionieren.
    Es wird in der if-Abfrage zuerst die OR-Verknüpfungen ausgewertet, welche immer true ergeben, da Zeichenketten, die nicht '0' und dann erst das Ergebnis mit $file['type'] verglichen.
    Die if-Abfrage gibt also nur false zurück, wenn $file['type'] entweder false, 0, '0', ein leeres Array (array()), ein leerer String oder null ist.


    Beispiel:

    PHP
    1. <span class="syntaxhtml"><pre><br /><span class="syntaxdefault"><?php<br />function abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    return $val </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'image/png'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/jpeg'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/gif'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/x-icon'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/bmp'</span><span class="syntaxkeyword">);<br />}<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"'image/png' or 'image/jpeg' or 'image/gif' or 'image/x-icon' or 'image/bmp' ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'image/png'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/jpeg'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/gif'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/x-icon'</span><span class="syntaxdefault"> or </span><span class="syntaxstring">'image/bmp'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\n\nabfrage('image/jpg') ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'image/jpg'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage('a') ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'a'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage(2) ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage(true) ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage('0') ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'0'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage(0) ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"\nabfrage(false) ergibt:\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">abfrage</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">?><br /></span></pre></span>

    Ausgabe: