Beiträge von cottton

    isset() liefert einen Wahrheitswert zurück , und dies ist falls die Variable gesetzt wurde 1.


    Verwirrend erklärt.

    isset() liefert einen Wahrheitswert (boolean) zurück. Der Rückgabewert ist also true oder false.
    Durch die Verkettung wie zB

    PHP
    echo "<li>Anliegen: ".isset($_GET['anliegen']);


    wird aus dem (zB) true ein int 1.


    Also

    Das Umkopieren in Variablen ist hier auch unnötig.


    Kann man sich streiten.
    Aber was liest sich besser: Deine Variante, oder

    Btw: ich empfehle kein empty(). Besser: strlen()
    Warum? Name "0" wäre leer, also empty(0) === true.
    siehe: [erledigt]POST-Variablen nie empty?

    Wichtig:
    Benutzereingaben (GET, POST, Datenbankeinträte, Dateiinhalte ect ect) maskiert ausgeben um XSS (cross site scripting) zu vermeiden.
    Wie? htmlspecialchars()
    Am Bsp.:

    PHP
    <p>Vorname:<br />
        <input type="text" name="vorname" value="<?php echo htmlspecialchars($vorname); ?>" size="120" maxlength="150"/>
    </p>
    
    
    
    
    <p>Nachname:<br />
        <input type="text" name="nachname" id="nachname" value="<?php echo htmlspecialchars($nachname); ?> ?>" size="120" maxlength="150"/>
    </p>

    Ich empfehle kein empty() zu benutzen.
    Hast ja selbst gesehen, dass man davon mal Kopfschmerzen bekommen kann.

    Im Fall hier würde ich strlen() nutzen

    PHP
    foreach ($_POST as $key => $value)
        {
          if (strlen($value) < 1) 
          {
            echo "leer<br>";
          } else {
            echo "nicht leer<br>";
          }
        }


    Bei Arrays nutze ich count($array) > 0 oder count($array) < 1.

    empty() ist meiner Meinung nach zu schwammig.
    Vergleiche mit == übrigens auch. siehe: Der Feine Unterschied: != und !==

    Zum Overhead - warum es langsamer wird, je mehr Dateien geladen werden:
    - Client (Browser) ruft Webseite vom Server ab
    - Server antwortet mir Quellcode der Webseite
    - Client verarbeitet Webseiten-Quellcode und "findet" dabei Dateien, die für die Seite benötigt werden (externe Links wie zB CSS, JS, ect oder auch google analytics, twitter ...)
    - Client ruft externe Links ab/auf

    Via HTTP1.1 (oder 1.0 ? weiß grad nicht) werden pro Serveraufruf - also hier pro Datei - eine Verbindung vom Client zum Server geöffnet.
    Via (google)SPDY / HTTP2.0 soll in Zukunft nur noch eine Verbindung (zum gleichen Host) genutzt werden.
    Aber selbst dann sind es immer noch mehrere Dateien/Quellen/Code der verarbeitet werden muss.

    Es gibt Möglichkeiten alles "so zu belassen" wie es momentan ist und trotzdem nur 1 CSS, 1 JS (...) File zu übertrage.
    Ich persönlich fand google pagespreed sehr gut. Dazu brauchst Du aber bissl Geduld und Zugriff auf den Server natürlich.

    Nitamud ich glaub nicht. Denn Serverseitig wird ja sicherlich per PHP die Sql-db ausgelesen.
    Wenn die Verbindung offen bleibt (wenn ich long polling richtig verstanden hab), dann müsste ja das PHP script eine Endlosschleife sein.
    Das wäre evtl unnötig. Aber es gibt ja bei jedem Problem mehrere Lösungen.

    Meine 2 Ansätze wären:
    per JS prüfen, ob die Daten die gleichen sind die beim letzten call erhalten wurden
    oder
    per PHP prüfen, ob die Daten die gleichen sind die beim letzten call gefunden wurden -- wenn ja, dann antworte mit (Bsp) einem code 0

    PHP seitig könntest Du die Daten vom letzten call in eine SESSION ablegen.
    Beim nächsten call holst Du die Daten aus der db, vergleichst ob diese die gleichen sind wie in der SESSION.
    Wenn ja -> daten müssen nicht gesendet werden,
    wenn nein -> update SESSION mit aktuellen daten und sende daten

    Das mit dem JS - das wird geladen: http://immo-poll.de/595-b44edd2b21…7e79fc35.js.jgz
    und das css: http://immo-poll.de/595-6ee04cb87a…53d28a2.css.jgz
    (das tu ich mir aber nicht wirklich an :D )

    Ich habs mir mal die form (<form>) angesehen und verstehe grad nicht, ... hast Du das zusammengeklickt?
    Wenn ja, mit was?
    zB das Feld "von" heißt "von=" ect

    Was Du über $_POST reinbekommst, ist in etwa:

    Code
    Array
    (
        [variant] => A
        [von=] => 
        [mail] => 
        [telefon==] => 
        [objektart] => Wohnung
        [betreff=] => 
        [validation] => Tzo4OiJzdGRDbGFzcyI6Mjp7czo2OiJmaWVsZHMiO2E6NDp7czo1OiJOYW1lKiI7Tzo4OiJzdGRDbGFzcyI6MTp7czo4OiJyZXF1aXJlZCI7YjoxO31zOjY6IkVtYWlsKiI7Tzo4OiJzdGRDbGFzcyI6MTp7czo4OiJyZXF1aXJlZCI7YjoxO31zOjk6Ik9iamVrdGFydCI7Tzo4OiJzdGRDbGFzcyI6MTp7czo4OiJyZXF1aXJlZCI7YjoxO31zOjExOiJCZW1lcmt1bmdlbiI7Tzo4OiJzdGRDbGFzcyI6MTp7czo4OiJyZXF1aXJlZCI7YjoxO319czo3OiJmb3JtX2lkIjtzOjMyOiJlZTRhMDBlNDVhMDZlYTkzMTg4ZWIxYzc1NjIyNmE3NSI7fQ==
    )


    "von=", "telefon==" und "betreff=" sind also vermurkst.

    Das hier sollte das Prinzip sein, was Du brauchst (ungetestet)


    Guck Dir mal an, was bei der Testausgabe steht - also wie/was da reinkommt.
    Die form ruft sich hier selbst auf, was bei Deiner Seite evtl auch gut passen könnte.
    Das Feld "nachricht" gibt es übrigens gar nicht.
    Und das Feld "bemerkungen" wurde als Betreff genutzt (glaub ich), was evtl für "murx" sorgt =)

    Das sind ja 2 verschiedene Themen.
    Ein HowTo kenn weiß ich grad nicht, aber wenn Du nach den Sachen einzeln suchst, wirst Du sicher was finden.

    Ajax Turri ham wir hier on Board.
    Und via Ajax stößt Du dann halt ein (PHP) Script an, welches die Request prüft, und ausführt.

    Es ist eigtl einfacher, wenn Du sagst, was nicht funktioniert =)

    Lass Dich vom Äußeren nicht täuschen. Das Layout kann billig aussehen. Drin ist dann aber ein komplettes Forum mit allem drum und dran.

    Ein "kleines" Forum mit Grundfunktionen kann:
    - "schnell" gehen, wenn Du bereits fertige Codes nutzt/einbaust
    - lange dauern, wenn Du alles komplett selbst schreibst und dabei verstehen willst, was eigentlich passiert.

    Man sollte beides können.
    Also fängst Du am besten an Dir Codebeispiele zu suchen, diese anzupassen und einzubauen (paar Monate),
    und später (nach 1 oder 2 Jahren) verstehst Du dann was in den Funktionen passiert und versuchst sie nachzubauen/selbst zu schreiben.

    BOM http://de.wikipedia.org/wiki/Byte_Order_Mark

    Zitat

    Es ist Sache der Anwendungssoftware, ...


    So wie ich das verstehe, sind am Anfang Deiner Dateien (Scripte) das BOM für UTF-8.
    Was ich mir vorstellen kann: dein Editor/Tool mit dem Du die Files gespeichert hast hängt es vorne an.
    Interessant zu lesen ist:

    Zitat

    und in PHP vor Version 6[1] mit Standardeinstellungen[2] führt die BOM zur Ausgabe von Zeichen an den Browser, so dass ohne „output buffering“ keine HTTP-Header mehr geändert werden können.


    Evtl kannst Du bei Deinem Editor/Tool das vorne anhängen abstellen (Einstellungen)

    ON DUPLICATE KEY UPDATE

    vorweg: macht man nicht, wenn KEY auto increment id (int) ist, da sonst "id gaps" (Lücken) enstehen.

    Das hier sollte es tun:

    SQL
    INSERT INTO 
        `table`
    (`id, `text`) 
    VALUES
    (:id, :text)
    ON DUPLICATE KEY UPDATE
    `text` = :text

    damit kann man sich zB auch eine Query sparen - wobei das nicht ganz stimmt.
    Man spart sich eher eine Anfrage an den Sql-Server. ON DUPLICATE KEY UPDATE arbeitet nämlich in der Art:
    - INSERT ausführen (AUTO_INCREMENT++)
    - kann nicht INSERT, da DUPLICATE KEY ?` -> dann UPDATE ausfürhen

    @Peter2014 Verstehe die Frage nicht: Wenn nichts gefunden default Wert nehmen
    :D
    Das mit den Klammern sollte michelle eigtl nur zeigen, dass man in SQL mit Klammer arbeiten kann, wie in anderen Sprachen auch.
    Aber auch IFs ect sind möglich.
    Weiß jetzt nicht ob das passt, aber das einfachste IF in einer SQL Abfrage wäre zB

    SQL
    SELECT 
        IF(`col_name` > 0, `col_name`, 'col ist nicht größer als 0') AS `col_name`
        -- WENN( BEDINGUNG , DANN, SONST) GENANNT `soundso`