modules.php?&eid=B funzt nicht
Michael D.
- php
0 Cheatah0 Michael D.0 Michael D.0 Siechfred0 Michael D.0 Tom0 Michael D.0 Tom1 Tobias Kloth0 Tom
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ählen Sie einen Buchstaben um die enthaltenen Begriffe aufzulisten:</center><br><br><center>[ <a href="modules.php?eid=A">A</a> |
<a href="modules.php?&eid=B">B</a> |
<center><form action="modules1.php" method="post"><input type="text" size="20" name="query"> <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
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
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
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-)>
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
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...
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
Moin Siechfred
Schönen Dank, wenigstens ein Link zum nach schlagen.
Is doch schon mal was....
Gruss Michael
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
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
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
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
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