Beiträge von Afrael

    Natürlich. Die IP ist in der PHP-Variable $_SERVER['REMOTE_ADDR'] gespeichert. Datum erzeugst du am besten mit einer Kombination aus time() und date() bei der Ausgabe.
    Abspeichern tust du sie am besten in einer mySQL-Datenbank, schau dir dazu Tutorials an.


    Ich geb Dir 10 € wenn Du mir die Möglichkeit schaffst Deinem Lehrer virtuell in den Arsch zu treten wegen dieser komplett kontraproduktiven Aufgabenstellung.

    Dito.
    Wenn das ganze in nur ein Dokument soll, solltet ihr mit Ankern arbeiten und diese postionieren. Dann erscheinen die verschiedenen Bereiche beim Anklicken an der gleichen Stelle (vll kanns jemand der anwesenden besser erklären?)

    Bist du sicher, dass du den Code an der richtigen Stelle eingefügt hast? Schau mal in den HTML-Quelltext (Ansicht, Quelltext anzeigen in den meisten Browsern). Siehst du da deinen Quelltext? (notfalls mit Strg+F suchen). Wenn nein, hast du ihn wohl an der falschen Stelle eingefügt. Ansonsten versuch mal, http://banners.webmasterplan.com/view.asp?ref=******&site=****&b=8 direkt im Browser aufzurufen. Wenn du das Bild nicht siehst, läuft bei webmasterplan was schief.
    Was die Bannerrotation angeht, würde ich mich zuerstmal überzeugen, ob die AGB der Firma das erlauben. Wenn ja, müsste hier im Forum diverse Beispiel für Bannerrotation rumfliegen, Suchfunktion benutzen.

    Das Problem scheint zu sein, dass $strReturnhtml leer ist, das Headerzeugs ist erstmal egal. Tu mal folgendes oben ins Script:
    error_reporting(E_ALL);
    ini_set("display_errors",1);
    So sollte es dann aussehen

    PHP ungleich SSI (diese funktionieren, wenn überhaupt, nur in Dokumenten mit der Erweiterung .shtml). Je nachdem, welche Anforderungen du hast, solltest du nach "PHP include menü" googlen und von da weitergucken.

    Du musst die Datei mit der Endung .php, nicht .htm speichern. Wenn es dann immer noch nicht klappt, ist PHP auf deinem Server nicht aktiviert und du musst zum Testen einen anderen Webspace verwenden oder xampp lokal installieren.

    Ich verstehe den Sinn der ganzen Konstruktion nicht wirklich, aber okay. Auf dein erstes Beispiel bezogen
    Du machst ein
    UPDATE tabelle SET order_id=order_id+1 WHERE order_id >= 2
    Das verschiebt alle Datensätze von 2 bis zum Ende der Tabelle quasi um eins nach hinten. Dann setzt du Datensatz 4 mit der order_id 2 ein.
    Hoffe, ich habe die Frage richtig verstanden.

    Das mag minimal sein aber es ist unnötig. Mit einfachen Anführungszeichen und . ist die Struktur klarer und es ist schneller ohne irgendwelche Nachteile.

    Sorry, aber ich finde

    PHP
    $sql="SELECT foo FROM bar WHERE id='".$id."'";


    übersichtlicher als

    PHP
    $sql='SELECT foo FROM bar WHERE id=\''.$id.'\'';

    dass stimm auch wieder. Warum kann man eigentlich js ausschalten und php nicht. JS kann keine Benutzerdaten lesen und ein cookie keinen ausführbahren code enthalten. wozu muss man den Webmastern dann das leben schwer machen?

    *klugdung* Nun, wenn der Webmaster dumm genug ist, die Cookies ungefiltert als Code zu übernehmen (warum auch immer man so etwas hirnrissiges machen sollte), kann man als Angreifer über die eigenen Cookies durchaus Code ausführen.
    Beispiel:

    PHP
    <?php 
    if (userIsAdmin())
    {
    setcookie("usergroup", "admin", time()+3600);
    }
    if (file_exists($_COOKIE['usergroup'].".php")) 
       include ($_COOKIE['usergroup'].".php");
    ?>


    Was die E_NOTICE angeht, finde ich ein bisschen komisch, denn ich bekomme keinerlei Notices oder irgendwelche Art von Fehlermeldungen angezeigt.


    Jap, ist richtig, weil du sauber codest :) Würdest du einfach $username=$_GET['username']; schreiben, hättest du eine E_NOTICE, wenn $_GET['username'] nicht initialisiert ist;

    Zitat

    Was die isset() und empty() angeht, habt ihr beide natürlich recht. Ich habe versucht den Code ein wenig sinnvoller zu gestalten. So sieht er nun aus:

    PHP
    $username = (isset($_GET['username']) and !empty($_GET['username'])) ? $_GET['username'] : 'false';
    $password = (isset($_GET['password']) and !empty($_GET['password'])) ? $_GET['password'] : 'false';
    if ($username and $password != 'false') {

    Ist diese Methode nun besser oder habt ihr einen besseren Vorschlag?


    Ich fand das, was du da hattest, schon richtig so, bis auf die Sache mit dem empty, die ist wie gesagt überflüssig.

    PHP
    $username = isset($_GET['username']) ? $_GET['username'] : '';
    $password = isset($_GET['password'])  ? $_GET['password'] : '';


    So würd ichs machen.

    Ungetestet:

    Andere Frage, warum guckst du nicht über die Datenbank, wo da Links gesetzt sind?


    -Die Überprüfung mit isset, empy etc. ist absolut unnötig und somit zeitraubend.


    Ich glaub, da werden wir beide uns nie einig :P Fakt ist, dass in diesem Fall die Prüfung auf !empty tatsächlich überflüssig ist. Du setzt $username ja im Zweifelsfalle sowieso auf leer, da ist es egal, ob vielleicht schon leer ist.
    Fakt ist außerdem, dass man eine E_NOTICE kriegt, wenn man isset nicht verwendet. Und ich mag meine Variablen lieber initialisiert.

    Zitat


    -Die Ansage: "Connection Failed" ist Unsinn, vielmehr ist das Passwort falsch.


    Äh... die mysql_query scheitert ja schon, nicht die Ergebnisse. Das mit Connection Failed dürfte dann stimmen.
    @Threadersteller
    Das muss <br /> statt <br \> heißen ;)
    Ach, und zur Verbesserung der Performance solltest du in

    PHP
    SELECT `username`, `password` FROM `test` WHERE `username` ='$username' and `password` ='$password'


    ein LIMIT 1 hinzufügen, du hast ja nur einen Benutzer mit diesem Benutzernamen.
    Ansonsten seh ich auch keine Möglichkeit einer Injection.

    Weil ich nicht weiß, wie ausführlich ich das hier beschreiben darf. Das meiste, was ich meinte, kann nur passieren, wenn man Zahlen per GET empfängt, nicht sicherstellt, dass es Zahlen sind, und sie ohne Anführungsstriche in die Query einbaut.
    SELECT * FROM table WHERE id=$_GET['id'] zum Beispiel. Und das würde dann irgendwann auf ein SQL-Injection Tutorial hinauslaufen.
    Hätte gerne die Meinung eines Mods, bevor ich mich auf sowas einlasse :/

    Jein. Ich bin mir ziemlich sicher, dass es spätestens dann illegal wird, wenn echtes Geld beteiligt ist (ein Spiel mit Premiumaccounts z.B.). Wenn die Leute sich zum Beispiel ingame Punkte mit einem Autorefresher holen können, werden sie sich keine Premiumaccounts kaufen, dadurch verliert die Firma ebenso Geld wie Musikfirmen beim Raubkopieren. Kann das jemand bestätigen?