Basilius-Network

Das offizielle Forum zum Basilius-Network und aller Komponenten.
Aktuelle Zeit: Di 7. Sep 2010, 20:21

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Schleifen und Variablen in Kombination
BeitragVerfasst: So 8. Jul 2007, 20:05 
Offline
Administrator

Registriert: Do 24. Mai 2007, 21:18
Beiträge: 35
Wohnort: Riehen (CH)
Engelsreich-Charakter: Charakter vorhanden
Charakternamen: Sefardius, Schlumpf, Testi
Viele von euch kennen sicherlich die Möglichkeit, mittels Schleife einen String zu erweitern. Ganz normal und völlig unbedenklich, solange man ein paar Regeln beachtet. Vor allem, wenn es um MySQL-Querys geht und register_global in eurer php.ini fahrlässigerweise auf "on" steht.

Ein Beispiel:
Code:
for($i = 0; $i < $max; $i++) {
  $string .= $array[$i];
}


Was das Beispiel macht, muss ich nicht erklären, sondern nur die Gefahr, die davon ausgeht. Man kann, solange register_global auf "on" steht, die Variablen am Anfang eines Scriptes als User manipulieren. Dabei reicht es, selbst ein Cookie zu setzen, das zum Beispiel "$string" bereits mit einem Wert füllt. Wird nun $string in ein Query eingepflanzt, so kann das böse Folgen haben. Nebenbei wird auch noch eine Notiz geworfen, solange error_reporting() auf E_ALL steht. Um dem entgegen zu treten, reicht es, die Variable vor der Schleife zu deklarieren. Dabei gibt es zwei Möglichkeiten:
Code:
$string = '';
for($i = 0; $i < $max; $i++) {
  $string .= $array[$i];
}


Und:
Code:
for($i = 0, $string = ''; $i < $max; $i++) {
  $string .= $array[$i];
}


Beide sind gleichwertig, für welche ihr euch entscheidet ist eure Sache.

PS: Die Notiz, die geworfen wird, klingt in etwa so:
Zitat:
Notice: Undefined variable: string in ~/test.php on line 7


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de