Michael D.: modules.php?&eid=B funzt nicht

Moin Moin

Ich bräuchte mal von euch erfahrenden PHP Scriptern einen Tip.

Ich habe auf meiner Webside mir ein Lexikon installt.

Vom Script sieht das so aus...

index.php

<center>W&auml;hlen Sie einen Buchstaben um die enthaltenen Begriffe aufzulisten:</center><br><br><center>[ <a href="modules.php?eid=A">A</a>&nbsp;|&nbsp;
<a href="modules.php?&eid=B">B</a>&nbsp;|&nbsp;
<center><form action="modules1.php" method="post"><input type="text" size="20" name="query">&nbsp;&nbsp;<input type="hidden" name="eid" value="2"><input type="submit" value="Suche">

modules.php

<?php
include("admin/zugang.inc.lexikon.php");
$sql="SELECT * FROM lexikon WHERE abc = '$eid'";
$ergebnis = mysql_query($sql,$verbindung);

Klicke ich nun auf einen Buchstaben bekomme ich als Ausgabe

@-Zeichen

setze ich ein echo $eid;

bekomme ich immer nur @-Zeichen  als Ausgabe....

nun hab ich das Script erweitert

<?php
   if (! isset($_POST['eid'])){
}
else
{
    $eid=$_POST['eid']*1;
   }
?>

keine Aenderung.....

wo liegt das Problem ????????????

Gruss Michael

  1. Hi,

    $sql="SELECT * FROM lexikon WHERE abc = '$eid'";
    Klicke ich nun auf einen Buchstaben bekomme ich als Ausgabe
    @-Zeichen
    setze ich ein echo $eid;
    bekomme ich immer nur @-Zeichen  als Ausgabe....

    an welcher Stelle hast Du denn die Variable $eid initialisiert?

    if (! isset($_POST['eid'])){

    Da sind keine POST- sondern GET-Parameter.

    wo liegt das Problem ????????????

    In Deiner Zeichensetzung?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Moin Cheatah

      Hilf mir auf die Sprünge, was heisst Initialisiert ?

      Ich übergebe doch nur den Buchstaben A modules.php?=A

      und lasse es durch die if else Schleife laufen...

      Gruss Michael

      1. Hi

        du solltest dich nochmal mit den Grundlagen beschäftigen.

        z.B. Unterschied zwischen GET und POST und wie man auf diese Variablen zugreift.

        Hilf mir auf die Sprünge, was heisst Initialisiert ?

        Wenn du das nicht weißt, solltest du die Finger mindestens so lange vom Programmieren lassen, bis du es weißt.

        so long
        Ole
        (8-)>

        --
        Stickstoff eignet sich nicht für Handarbeiten.
        1. Hello,

          Hilf mir auf die Sprünge, was heisst Initialisiert ?

          Ein bisschen Google, ein bisschen MSN, ein wenig Wikipedia...
          http://de.wikipedia.org/wiki/Variable_(Programmierung)

          Bitteschön

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

    2. So hab mal ein echo auf $eid gesetzt und siehe da er wirft mir 0 aus, anstatt den Wert A der doch ueber modules.php?=A gesendet wurde.
      In der Variablen wird doch der Buchstabe gesetzt, versteh ich nicht...

      1. Hell-O!

        So hab mal ein echo auf $eid gesetzt und siehe da er wirft mir 0 aus, anstatt den Wert A der doch ueber modules.php?=A gesendet wurde.

        Du hast offenbar immer noch nicht den Unterschied zwischen der Datenübertragung via GET oder POST nachgelesen. Und wenn du einmal beim Nachlesen bist, empfehle ich noch das Kapitel Vordefinierte Variablen in PHP, dort $_GET und $_POST.

        Siechfred

        1. Moin Siechfred

          Schönen Dank, wenigstens ein Link zum nach schlagen.

          Is doch schon mal was....

          Gruss Michael

        2. Hello,

          Du hast offenbar immer noch nicht den Unterschied zwischen der Datenübertragung via GET oder POST nachgelesen. Und wenn du einmal beim Nachlesen bist, empfehle ich noch das Kapitel Vordefinierte Variablen in PHP, dort $_GET und $_POST.

          Und ich empfehle ihm noch 'SQL Injection' in die Forumssuche einzutippen, und im Manual das Kapitel mysql_real_escape_string() http://de.php.net/manual/en/function.mysql-real-escape-string.php und get_magic_quotes_gpc() http://de.php.net/manual/en/function.get-magic-quotes-gpc.php nebst weiterführender Links zu lesen

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

          1. Und das hab ich getan, gegurgelt und was gefunden und eingebaut...

            <?php
            if (! isset ($_GET['eid'])) {
               die ("eid nicht uebergeben.");
            } else {
                  if (ini_get('magic_quotes_gpc')) {
                     $eid=stripslashes($_GET['eid']);
                  } else {
                     $eid=($_GET['eid']);
                  }
            }
            ?>

            und löpt

            1. Hello,

              Und das hab ich getan, gegurgelt und was gefunden und eingebaut...

              <?php
              if (! isset ($_GET['eid'])) {
                 die ("eid nicht uebergeben.");
              } else {
                    if (ini_get('magic_quotes_gpc')) {
                       $eid=stripslashes($_GET['eid']);
                    } else {

              $eid=mysql_real_escape_string($_GET['eid']);  ## wenn der Wert ins Query für soll
                                                                       ## deine DB rein soll

              }
              }
              ?>

              und löpt

              Und nochmals die eindringliche Warnung aus meiner Antwort...

              Das kann sonst viel Schaden anrichten

              Harzliche Grüße vom Berg
              http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau

              1. Hallo Tom,

                } else {
                           $eid=mysql_real_escape_string($_GET['eid']);

                Das was Michael an dieser Stelle gepostet hat, war schon richtig - die von dir genannte Zeile muss _zusätzlich_ nach dem else-Teil rein.

                Grüße aus Nürnberg
                Tobias

                1. Hello,

                  Hallo Tom,

                  } else {
                             $eid=mysql_real_escape_string($_GET['eid']);
                  Das was Michael an dieser Stelle gepostet hat, war schon richtig - die von dir genannte Zeile muss _zusätzlich_ nach dem else-Teil rein.

                  Danke für die Zusatzinfo.

                  Er muss sich aber sowieso mit dem Thema auseinandersetzen. Es ist komplexer, als man auf den ersten Blick denkt!

                  Und diese Maskierung muss eigentlich erst direkt vor der Übergabe der Werte an das SQL-Statement eingefügt werden, denn innerhalb des Scriptes wird man wohl besser mit Rohdaten arbeiten.

                  Harzliche Grüße vom Berg
                  http://www.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau