Umfrageergebnis anzeigen: findet ihr die idee sinnvoll?

Teilnehmer
73. Du darfst bei dieser Umfrage nicht abstimmen
  • Ja

    56 76,71%
  • Nein

    7 9,59%
  • Vielleicht

    10 13,70%
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 23 von 23

Thema: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

  1. #16
    Registered User
    Registriert seit
    Jan 2001
    Beiträge
    4.852
    Renommee
    1000
    Fehler, bei dem man mitunter lange sucht: Verwechslung zwischen == und ===
    if (strpos($a, $b) === 0) { ... }
    Wenn man wissen will, ob ein Zeichen an Position 0 steht, muss man === verwenden, weil (strpos() == 0) sowohl für strpos() === 0 als auch für strpos() === FALSE (wenn das Zeichen nicht gefunden wurde) WAHR sein würde!
    www.gimpusers.de - GIMP-Tutorials und -Infos

  2. #17
    Registered User
    Registriert seit
    Jan 2001
    Beiträge
    330
    Renommee
    51
    variablen die im script benutzt werden, muessen erst definiert werden, auch wenn sie nur abgefragt werden...

    // das erzeugt einen fehler:
    for( $x = 0; $x < 3; $x++ )
    {
    $str .= 'bla';
    }
    echo $str;
    // ....

    // so ists richtig
    $str = '';
    for( $x = 0; $x < 3; $x++ )
    {
    $str .= 'bla';
    }
    echo $str;


    moeglichkeit nicht definierte variablen trotzdem ohne fehlermeldung abzufragen ist isSet


    if( !isset($foo) )
    {
    echo 'Unbekannte Variable : $foo '
    }


    blabla, man sowas in verstaendliche worte zu fassen ist gar nich mal so einfach...

  3. #18
    Registered User
    Registriert seit
    Dec 2001
    Beiträge
    843
    Renommee
    238

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    > // das erzeugt einen fehler:

    kein fehler, just a notice
    "Selbst ein Weg von tausend Meilen beginnt mit einem Schritt."

  4. #19
    CoAdministrator
    Registriert seit
    Oct 2000
    Beiträge
    734
    Renommee
    479

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    Das mit dem .= ist vielleicht verwirrend.
    Mit einem = sieht es so aus
    PHP-Code:
    // das erzeugt einen fehler:
    for( $x 0$x 3$x++ )
    {
    $str $str+'bla';
    }
    echo 
    $str;
    // Ausgabe: Notice: Undefined variable: str in test.php on line 4

    // so ists richtig
    $str '';
    for( 
    $x 0$x 3$x++ )
    {
    $str .= 'bla';
    }
    echo 
    $str;
    //Ausgabe "blablabla" 
    Nur eine Ergänzung
    Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin)
    ---
    BuHa Files - Der Blog
    BuHa Wiki - Tutorials und mehr

  5. #20
    Registered User
    Registriert seit
    Apr 2008
    Beiträge
    3
    Renommee
    10

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    fehlende varibalen in funktionen?
    Viele vergessen die verwendeten Varibalen nicht "global" zu setzen.
    Hier ein Bespiel:

    Code:
    	function generate_log($string) { 
    		global $us_haendler_logs;
    		global $REMOTE_ADDR;
    		$time = mktime();
    		mysql_query("INSERT INTO $us_haendler_logs ( id , ip , time , action ) VALUES ( '' , '$REMOTE_ADDR' , '$time' , '$string' )");	
    	}
    Die Remote Adresse (also IP des Nutzers) muss global gemacht werden um sie zu nutzen. Ebenso wie meine Sql-Tabelle welche in der config festgelegt wurde ($us_haendler_logs).

  6. #21
    Registered User
    Registriert seit
    Apr 2008
    Beiträge
    3
    Renommee
    10

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    Komplexe Formulare erstellen / auswerten.
    Problem: dynamische Varbiblennamen bei Formularen, aber wie?
    Lösung:

    Code:
    <form action="index.php" method="post">
    <?
    $result = mysql_query("SELECT * FROM tabelle_mit_produkten");
    while($out = mysql_fetch_array($result)) {
     ?>
     <input type="text" size="9" name="menge_<? echo $out[produkt_id]; ?>">
     <?
    }
    ?>
    <input type="hidden" name="berechnen" value="1">
    <input type="submit" value="Bestellung berechnen">
    </form>
    <?
    
    if($_POST[berechnen] == 1) {
    
     $result = mysql_query("SELECT * FROM tabelle_mit_produkten");
     while($out = mysql_fetch_array($result)) {
      $formular_inhalt = "menge_" . $out[produkt_id];
      echo $_GET[$formular_inhalt];
      // oder in array schreiben: $cr8_array .= $_GET[$formular_inhalt] . "<br>";
    
     }
    
     //echo $cr8_array;
    }
    Geändert von ta_sys (25.04.2008 um 14:39 Uhr)

  7. #22
    Technischer Administrator
    Registriert seit
    Sep 2002
    Beiträge
    3.729
    Renommee
    1560

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    Ich moechte dir nicht zu nahe treten aber deine Tipps und Code-Beispeile sind schrecklich. Du solltest noch viel lesen und programmieren bevor du Tipps an andere weitergibst, weil vor allem Anfaenger deine Tipps ernst nehmen und verwenden koennten.

    So hat man PHP-Code vielleicht vor Urzeiten geschrieben aber heute ist das schon lange nicht mehr der Fall.

    Zitat Zitat von ta_sys Beitrag anzeigen
    Die Remote Adresse (also IP des Nutzers) muss global gemacht werden um sie zu nutzen. Ebenso wie meine Sql-Tabelle welche in der config festgelegt wurde ($us_haendler_logs).
    Seit PHP 4.1 unterstuetzt PHP die sogenannten Superglobals, welche sich von jedem Scope aus nutzen lassen koennen und nicht erst per 'global' sichtbar gemacht werden muessen.

    Several predefined variables in PHP are "superglobals", which means they are available in all scopes throughout a script. There is no need to do global $variable; to access them within functions or methods.
    http://at2.php.net/manual/en/languag...perglobals.php

    Diese solltest du auch verwenden, da $REMOTE_ADDR etc. schon lange obsolet ist.

    Wenn du schon alle Tabellennamen in einem File stehen haben willst dann verwenden Konstanten und keine Variablen dafuer. Dafuer sind diese auch gedacht, da diese in Funktionen auch sichtbar sind und nicht erst per global eingebunden werden muessen.

    Optimalerweise befinden sich alle SQL-Queries aber in einer Datei und lassen sich sehr leicht per Search&Replace anpassen falls das notig ist und Tabellennamen werden nicht durch konstanten ersetzt. Das was du machst (den SQL-Code in allen Dateien zu verstreuen) ist typischer Spaghetti-Code und absolut nicht zu empfehlen. So hat man Web-Anwendung vor vielen Jahren geschrieben und daher kommt auch der schlechte Ruf, den PHP hat. Leider gibt es auch heute noch viele Leute, welche das so machen.

    Sieh dir mal das MVC-Pattern an. Das Symfony Book hat eine gute allgeimeine Erklaerung dazu und zeigt beispielshaft wie man dies in PHP umsetzen kann:
    http://www.symfony-project.org/book/...Symfony-s-Code

  8. #23
    Technischer Administrator
    Registriert seit
    Sep 2002
    Beiträge
    3.729
    Renommee
    1560

    Re: Die häufigsten Fehler (vor dem Eröffnen eines neuen Beitrags lesen => Regeln!)

    Zitat Zitat von ta_sys Beitrag anzeigen
    Komplexe Formulare erstellen / auswerten.
    Problem: dynamische Varbiblennamen bei Formularen, aber wie?
    Was sind denn dynamische Variablennamen bzw. was ist der Sinn davon.

    Dieses Code-Snippet ist IMHO uebrigens auch bedenklich. Du mischt HTML und SQL-Queries und gibst Inhalt, welchen du vom Client erhalten hast ungefiltert aus. Das hat Sicherheitsprobleme zur Folge, da so jeder HTML und JavaScript-Code in deiner Website einbinden kann. Das ganze nennt sich XSS [1].

    [1] http://www.cgisecurity.com/articles/xss-faq.shtml

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. FAQ und Regeln - VOR dem Posten lesen !
    Von Tharkun im Forum UNIX/Linux
    Antworten: 9
    Letzter Beitrag: 08.11.2003, 23:57
  2. Eröffnen eines Halflife-Servers ?
    Von Nautilus im Forum Technisches Off-Topic
    Antworten: 14
    Letzter Beitrag: 23.04.2003, 17:05
  3. Antworten: 2
    Letzter Beitrag: 06.07.2001, 15:04
  4. Benachritigung beim Löschen eines Beitrags
    Von Astfgl im Forum Board Fragen
    Antworten: 11
    Letzter Beitrag: 28.08.2000, 14:46

Berechtigungen

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