Seite 9 von 15 ErsteErste ... 5678910111213 ... LetzteLetzte
Ergebnis 161 bis 180 von 288

Thema: Allgemeiner Fragenthread II

  1. #161
    Wieso sollte man in PHP array() verwenden? Sollte man es der Lesbarkeit zu liebe tun oder kann ich mir die Linien sparen? (mal ausgenommen man gibt die Variable in einer Funktion zurück und die Array könnte leer bleiben)

    Geändert von Drakes (12.07.2008 um 21:33 Uhr)

  2. #162
    Ganz simpel, in erster Regel ist die "Funktion" (ist eig. keine richtige Funktion, sondern ein festes Element) dafür da um einer Variable einen Anfangswert zu geben, bzw. ein Array einer Funktion zu übergeben:
    PHP-Code:
    tuWas(Array('wert''wer2''wert3')); 
    Auch wenn in PHP Variablen nicht direkt deklariert werden müssen, brauchen gerade wenn man einem Array in einer Schleife Werte hinzufügen möchte diese ein Anfangswert der PHP mitteilt das die Variable auch existiert und das es sich um ein Array handelt.
    PHP-Code:
    $tmp = Array();
    while(
    $row mysql_fetch_assoc($result)) {
          
    $tmp[] = $row;


  3. #163
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Ganz simpel, in erster Regel ist die "Funktion" (ist eig. keine richtige Funktion, sondern ein festes Element) dafür da um einer Variable einen Anfangswert zu geben, bzw. ein Array einer Funktion zu übergeben:
    PHP-Code:
    tuWas(Array('wert''wer2''wert3')); 
    Auch wenn in PHP Variablen nicht direkt deklariert werden müssen, brauchen gerade wenn man einem Array in einer Schleife Werte hinzufügen möchte diese ein Anfangswert der PHP mitteilt das die Variable auch existiert und das es sich um ein Array handelt.
    PHP-Code:
    $tmp = Array();
    while(
    $row mysql_fetch_assoc($result)) {
          
    $tmp[] = $row;

    Ich weiss nicht, aber dein Beispiel hat bei mir auch ohne $tmp = array(); funktioniert. (bzw. ein konvergentes Beispiel)

  4. #164
    Tut es nur augenscheinlich.
    Schreib mal ein error_reporting(E_ALL); an den vor die Schleife, du wirst eine "Notice"-Fehlermeldung bekommen.

    Desweiteren bei dem Beispiel oben werden ja Daten aus der db eingelesen, wenn nun, aber keine gefunden werden, würde das Array $tmp gar nicht erst angelegt werden und wenn du es später dann später z.B. in einer foreach schleife abarbeiten willst, würdest du nicht nur eine E_NOTICE bekommen sondern eine E_WARNING, die besagt das foreach eben ein Array erwartet und nicht eine Variable vom Typ null.

  5. #165
    Huhu.
    Nun, ich habe eine einfache Frage zu einem Query, es geht um folgenden :

    PHP-Code:
    $sql "INSERT INTO `spieler` SET `y` = '".$_SESSION['y']."' WHERE `id` = '".$_SESSION['spieler_id']."'"
    Beim Ausführen sagt der Browser mir folgendes :
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id` = '6'' at line 1

    Ich frage mich, warum er das sagt.
    Vielleicht bin ich gerade blind und sehe den einfachen Fehler nicht, aber meine Augen zeigen mir, dass ich nach dem Einbinden der ID in den Query ein ' stehen habe und die anderen " als Abgrenzungen zum String gebraucht werden.
    Wieso kriege ich diesen Fehler?

    EDIT : Jaaa. INSERT mit UPDATE vertauscht xD

    Geändert von Tessio (17.09.2008 um 12:09 Uhr)

  6. #166
    Zudem niemals Variablen (Vorallem Request-Variablen) ungeparsed an n' Query anhängen.
    Desweiteren sind die ' bei numerischen Werten unnötig .

  7. #167
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Zudem niemals Variablen (Vorallem Request-Variablen) ungeparsed an n' Query anhängen.
    Desweiteren sind die ' bei numerischen Werten unnötig .
    Request-Variablen sind (neben $_REQUEST natürlich) $_POST, $_GET, $_COOKIE und $_FILES (sowie deren $HTTP_*_VARS Pendants). $_SESSION besteht nicht aus Daten, die der User übermittelt hat, daher sollte es kein zu großes Problem sein, sie direkt zu benutzen. Natürlich wäre folgendes sauberer:
    PHP-Code:
    $sql sprintf("UPDATE `spieler` SET `y` = '%s' WHERE `id` = %d"mysql_real_escape_string($_SESSION['y']), $_SESSION['spieler_id']); 
    Hier wird sichergestellt, dass $_SESSION['spieler_id'] eine Zahl ist und $_SESSION['y'] wird vorher mit mysql_real_escape_string() behandelt, um ' zu escapen. Aber wenn man davon ausgeht, dass die Variablen bereits beim Setzen verifiziert wurden, ist das unnötig. Denn wenn jemand die Session-Variablen, die aufm Server gespeichert werden, verändern kann, hat man noch ganz andere Probleme.

  8. #168
    Da man die MySQL-Api mit neueren MySQL-Versionen eh nicht mehr benutzen sollte, sondern die MySQLi API oder PDO, kann man ggf. auch auf Statemants zurück greifen und somit auf escaping verzichten:
    http://de3.php.net/manual/de/mysqli.prepare.php
    http://de3.php.net/manual/de/pdo.prepare.php

  9. #169
    Zitat Zitat von dead_orc Beitrag anzeigen
    Request-Variablen sind (neben $_REQUEST natürlich) $_POST, $_GET, $_COOKIE und $_FILES (sowie deren $HTTP_*_VARS Pendants). $_SESSION besteht nicht aus Daten, die der User übermittelt hat, daher sollte es kein zu großes Problem sein, sie direkt zu benutzen.
    Da sollte man sich nicht vertun. Ich hatte schon mal Probleme, weil ich die Request URI in der Datenbank speichern wollte, und die halt ein ' enthielt. Lieber absichern, als nachher Lücken offen haben

  10. #170
    Wie definiere ich in meiner .css Link-Farben (Hover, Active, Visited...) für einzelne DIVs? Die in #navi sollen andere Farben als die in #main haben.
    Hab mal ein bisschen rumprobiert, bin aber nicht wirklich zu einem Ergebnis gekommen.

  11. #171
    Code:
    #navi a:link {
        color:....;
    }
    
    #navi a:visited {
        ....
    }
    
    [...]
    
    #main a:link {
        ....
    }
    
    [...]
    Einfacher geht es eig. nicht^^. Nur meine ich das du bei den pseudo-classen eine feste Reihenfolge einhalten musst, wenn nicht habe ich Blödsinn gelernt xD.

    /edit: *zurück edetier*

    Geändert von Xardas der Dunkle (27.09.2008 um 13:11 Uhr)

  12. #172
    Zitat Zitat von Wetako Beitrag anzeigen
    Wie definiere ich in meiner .css Link-Farben (Hover, Active, Visited...) für einzelne DIVs? Die in #navi sollen andere Farben als die in #main haben.
    Hab mal ein bisschen rumprobiert, bin aber nicht wirklich zu einem Ergebnis gekommen.
    a:hover meint Xardas 1mal noch.

    Edit: sorry, steht ja #main.

    Geändert von Drakes (27.09.2008 um 11:37 Uhr)

  13. #173
    Zitat Zitat von Drakes Beitrag anzeigen
    a:hover meint Xardas 1mal noch.
    Ich editier das mal schnell rein...

  14. #174
    *verwirrt bin*
    Zitat Zitat
    Die in #navi sollen andere Farben als die in #main haben.
    Fragt er, wieso ändert ihr dann das #main a:link auf #main a:hover o_Ô?
    Das war doch nur ein Beispiel.

    Wenn ihr es so genau haben wollt:
    Code:
    #navi a:link {
        ...
    }
    
    #navi a:active {
       ...
    }
    
    #navi a:visited {
       ...
    }
    
    #navi a:hover {
       ...
    }
    
    #main a:link {
        ...
    }
    
    #main a:active {
       ...
    }
    
    #main a:visited {
       ...
    }
    
    #main a:hover {
       ...
    }

  15. #175
    Sorry, ich schätze, wir haben uns beide verlesen

  16. #176

  17. #177
    Hab da noch mal 'ne Frage, die nicht unbedingt einen eigenen Thread benötigt, imo.

    Hat vllt. irgendwer 'nen Plan, warum der IE (7. 6, denke ich, dann wohl auch) diese Seite falscht anzeigt?
    Also der BG wird etwas nach unten verschoben, 1, 2 Pixel.

  18. #178
    erstmal:
    Du arbeitest mit tranparenten png Dateien.
    Der IE unterstützt sowas nicht.

    Und wenn nur das Deisgn um 1,2 Pixel nach unten verschoben ist, solltest du dich freuen und dies so lassen.
    Es ist allgemein bekannt, dass der IE bei CSS Mist baut.

    Ansonsten versuch mal im Body
    padding:0px;
    margin:0px;
    einzutragen. AFAIR benutze der IE einen Standardrahmen um die Webseite.

  19. #179
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    erstmal:
    Du arbeitest mit tranparenten png Dateien.
    Der IE unterstützt sowas nicht.

    Und wenn nur das Deisgn um 1,2 Pixel nach unten verschoben ist, solltest du dich freuen und dies so lassen.
    Es ist allgemein bekannt, dass der IE bei CSS Mist baut.

    Ansonsten versuch mal im Body
    padding:0px;
    margin:0px;
    einzutragen. AFAIR benutze der IE einen Standardrahmen um die Webseite.
    IE 7 unterstützt zum Glück transparente png-Bilder.

    Code:
    * {
       margin: 0;
       padding: 0;
       }
    Ist meinerseits eigentlich immer empfohlen. Manche Browser setzen zudem automatisch Rahmen um <img>'s.(Das ist aber OT)

    Und eigentlich ist der Allgemeine Fragethread dafür gedacht nicht extra ein Thema eröffnen zu müssen.

    Edit:
    probiers doch bei body mit
    Code:
    background: url(../images/bg.jpg) top left repeat;
    Edit2:
    War das falsche Hintergrundbild, müsste wohl eher bei .header_left sein:
    Code:
    background: url(../images/bg.jpg) top;
    Aber ich hab nicht das Gefühl, dass das wirklich das Problem ist.

    Geändert von Drakes (01.10.2008 um 12:22 Uhr)

  20. #180
    Gibt es etwas zu beachten, damit sich dynamisch generierte div's im IE voll ausbreiten? Das obere Fenster ist statisch und wird ja eigentlich auch richtig angezeigt. Ich hab mal Rahmen rein gemacht zur Veranschauung:
    http://drakes.dr.ohost.de/pz/ (man muss die Werbung wegklicken und dann neuladen -.-)
    Zudem wär es toll wenn mir jemand sagen könnte was der Opera zu meckern hat, ich verstehs nicht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •