Variable über Adresse

  1. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    Hi,
    ich wollte einer Variable einen Wert über die Adresse zuweisen, aber leider funktioniert das nicht.
    Weiss nicht was ich falsch mache.

    Über die Adressleiste gebe ich
    Code:
    index.php?show=news
    ein.
    In der der index.php datei wir dann folgender Code ausgeführt:
    PHP:
            switch($show)
            {
            case 
    "news":
                {
                
    $ergebnis mysql_query"SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0, 7 " );
                
    $anzahl mysql_num_rows$ergebnis );
                while ( 
    $datensatz mysql_fetch_row$ergebnis ) )
                {
                print
    "$datensatz[4]";
            
                }
                }
            }
     
    Luxus_Hirsch, 13.02.2005
  2. Nogger

    NoggerMacUser Mitglied

    Mitglied seit:
    03.08.2004
    Beiträge:
    367
    Zustimmungen:
    0
    Werte aus der HTTP Anfrage werden seit längerem aus Sicherheitsgründen nicht mehr automatisch zu globalen Variablen gewandelt.

    Setze davor ein:

    PHP:
      $show = isset($_GET["show"])  ? (string)$_GET["show"] : "";
    Noch ein Hinweis: Du solltest die Felder des Ergebnisses der Datenbankabfrage über der Spaltennamen ansprechen, und nicht über den numerischen Index. Das ist robuster gegenüber Änderungen des Datenbankschemas.
     
    Nogger, 13.02.2005
  3. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    OK danke.

    Noch eine Frage:
    Wenn ich einen Fehler im PHP Code hatte, wurde mir auf dem PC immer angezeigt in welcher Zeile der Fehler war. Auf dem Mac bleibt die Seite nur weiss. Was muss ich einstellen damit ich auch auf dem Mac den Fehler angezeigt bekomme?
     
    Luxus_Hirsch, 13.02.2005
  4. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Das wird hier erklärt :

    http://de3.php.net/error_reporting

    Das dürfte Deine Lösung sein:

    PHP:
    // Alle PHP-Fehler melden (in PHP 3 kann die Bitmaske 
    // 63 verwendet werden)
    error_reporting(E_ALL);
    Der Standardwert wird in der php.ini definiert und kann von Dir dort verändert werden!
     
    wegus, 13.02.2005
  5. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    Wo find ich dei php.ini denn?
     
    Luxus_Hirsch, 13.02.2005
  6. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    Habs ausprobiert, funktioniert aber leider nicht!
     
    Luxus_Hirsch, 14.02.2005
  7. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    OK
    habs nun raus.

    Noch ne frage.
    Hab hier einen script der soll was in eine MySQL Datenbank eintragen über ein Formular.
    Leider funktioniert es nicht.
    Liegt das an PHP5?
    PHP:
    <?

    if ( isset( 
    $username ) && isset( $datum ) && isset( $uberschrift ) && isset( $newstext ) )
        {
        
    // Überprüfe Benutzereingaben
        
    $dberror "";
        
    $ret in_db_einfuegen$username$datum$uberschrift$newstext$dberror );
        if ( ! 
    $ret )
            print 
    "Fehler: $dberror<BR>";
        else
            print 
    "News gespeichert.";
        }
    else    {
        
    ausgabe_formular();
        }

    function 
    in_db_einfuegen$username$datum$uberschrift$newstext, &$dberror )
        {
        include
    "../config.php";
        
    $link =  mysql_pconnect$dbhost$dbuser$dbpasswd );

        if ( ! 
    $link )
            {
            
    $dberror "Keine Verbindung zu MySQL server";
            return 
    false;
            }
        if ( ! 
    mysql_select_db$dbname$link ) )
            {
            
    $dberror mysql_error();
            return 
    false;
            }
        
    $anfrage "INSERT INTO news ( username, datum, uberschrift, newstext ) 
        values( '
    $username', '$datum', '$uberschrift', '$newstext' )";
        if ( ! 
    mysql_query$anfrage$link ) )
            {
            
    $dberror mysql_error();
            return 
    false;
            }
        return 
    true;
        }

    function 
    ausgabe_formular()
        {
        global 
    $PHP_SELF;
        print 
    "<form action=\"$PHP_SELF\" method=\"POST\">\n";
        print 
    "Username:";
        print 
    "<input TYPE=\"text\" name=\"username\"><p>\n";
        print 
    "Datum:";
        print 
    "<input TYPE=\"text\" name=\"datum\"><p>\n";
        print 
    "Uberschrift:";
        print 
    "<input TYPE=\"text\" name=\"uberschrift\"><p>\n";
        print 
    "Newstext:";
        print 
    "<input TYPE=\"text\" name=\"newstext\"><p>\n";
        print 
    "<input type=\"submit\" value=\"submit!\">\n</form>\n";
        }
    ?>
     
    Luxus_Hirsch, 14.02.2005
  8. farbenmann

    farbenmannMacUser Mitglied

    Mitglied seit:
    29.01.2005
    Beiträge:
    341
    Zustimmungen:
    7
    DU kannst die Variablen auch so wie im ersten Beispiel weitergeben idem in deiner PHP.INI der Punkt Register Globals = on eingestellt wird . ist aber aus Sicherheitsgründen standardmäßig ausgeschalten .

    Gruss der Farbenmann
     
    farbenmann, 14.02.2005
  9. Luxus_Hirsch

    Luxus_Hirsch Thread StarterMacUser Mitglied

    Mitglied seit:
    15.01.2005
    Beiträge:
    74
    Zustimmungen:
    0
    OK

    und wie siehts mit meinem Script aus, funktioniert der wegen PHP 5 nicht??
     
    Luxus_Hirsch, 16.02.2005
  10. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    PHP 4 und 5 sind weitgehend kompatibel ( zumindest abwärts). Die Chancen um Hinweise auf Skriptfehler zu bekommen erhöhen sich durch folgende Maßnahmen:

    (1) "funktioniert nicht" ist keine Fehlerbeschreibung! Genauer:

    Was geht nicht.
    An welcher Stelle machst Du das fest.
    Was hast Du probiert.
    Hast Du eine vermutung.

    (2) Wirf kein ganzes Skript mit dem Hinweis "geht nicht" hier herein. Versuch den Fehler einzugrenzen und bring dann hier ein kurzes Skript mit genauer Beschreibung des Fehlers.

    Die php.ini findest Du, indem Du in Deinem Documents-Verzeichnis folgende Datei erzeugst und im Browser betrachtest:

    PHP:
    <?
      
    phpinfo();
    ?>
    Da wird Dir der Pfad angezeigt. Gibt es dort keine php.ini, so werden Standardwerte angenommen. Du kannst eine php.ini.default dorthin kopieren und die Werte anpassen.


    Zu Deinem Skript:

    Ist register_globals==on ? Bekommst Du auch mit obigem Skript heraus! Wenn nicht, dann sind dies POST-Variablen so nicht sichtbar. ACHTUNG:
    register_gloabls nur in Intranets auf ON setzen, NICHT im WEB!
     
    wegus, 16.02.2005
Die Seite wird geladen...
Ähnliche Themen - Variable über Adresse
  1. flohaase
    Antworten:
    2
    Aufrufe:
    967
    flohaase
    26.09.2013
  2. timroh
    Antworten:
    1
    Aufrufe:
    978
  3. bluedisc
    Antworten:
    2
    Aufrufe:
    725
    bluedisc
    02.05.2013
  4. Shark Master

    variable $text

    Shark Master, 28.10.2010, im Forum: Web-Programmierung
    Antworten:
    16
    Aufrufe:
    961
    falkgottschalk
    31.10.2010
  5. knooby
    Antworten:
    4
    Aufrufe:
    3.700