| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

28-01-2010, 22:16
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
Script funktioniert nicht mehr
Hallo,
meine Homepage wurde auf einen neuen Server transferiert und seit dem funktioniert mein Script zum anzeigen von Übungsleitern nicht mehr richtig.
Es wird immer nur die Hauptseite angezeigt.
Ich habe das Script mal angehängt. Vielleicht weiß ja einer woran das liegt.
Mfg
Md
|

28-01-2010, 22:19
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
(Ohne reingeschaut zu haben - ) vermutlich register_globals=off, zum x-ten.
Informiere dich über das Stichwort.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

28-01-2010, 23:01
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
ja da hast du wohl recht, habe mich jetzt informiert, dass Variabel nicht mehr so übergeben werden können. Habe jetzt aber noch nichts gefunden wie das jetzt gehen soll bei meinem Script..
Ich programiere nciht so häufig und bin daher darin nicht so fit...
Kann mir einer bei meinem script weiterhelfen?
Also ich lese aus der Datenbank eine Zahl aus und die soll an die Variabel "site" weiter gegeben werden und dann per Link die Seite entsprechend der Variabel aufgebaut werden.
|

28-01-2010, 23:09
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
auf PHP: Beschreibung der php.ini-Direktiven des Sprachkerns - Manual steht "Bitte lesen Sie auch das Sicherheits-Kapitel über die Benutzung von register_globals für weitere Informationen."
Dort steht "Seit PHP 4.1.0 stehen superglobale Arrays wie $_GET, $_POST, $_SERVER, etc. zur Verfügung. Weitere Informationen können Sie dem Abschnitt zu superglobals entnehmen."
Wo ist also das Problem? Etwas mehr Eigeninitiative wäre schön, wenn dir schon jemand das exakte Stichwort zur Lösung des Problems liefert.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 09:58
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
Also das Problem ist ja wohl, das eine Variable nicht mehr an die nächste Seite übergeben wird.
Bei mir soll das über einen Link geschehen:
<a href="ueleiter.php?site=<?=$line[id]?>">
Dann wird im Script über eine If-Abfrage geprüft welchen Wert $site hat, aber durch den Link wird die neue zuweisung der Variable nciht gemacht.
Wie schaffe ich das jetzt über den Link?
Bei php.com habe ich nur Beispiele für Formulare bekommen.
Gruß
Md
|

29-01-2010, 10:00
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
URL-Parameter landen im $_GET-Array, also in deinem Falle $_GET["site"].
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 10:08
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
ich habe jetzt vor meine SQL Abfrage folgendes gesetzt:
PHP-Code:
if(!isset($site))
{
$site="index";
}
if($site == index)
{
Anzeige der Übersicht mit Links: <a href="ueleiter.php?site=<?=$line[id]?>">
}
else
{
$site = $_GET["site"];
$query = "SELECT * FROM ueleiter WHERE id=$site";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result))
{
...
...
Aber er zeigt immer nur noch die "index" Seite an.
|

29-01-2010, 10:09
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Sieh dir die ersten vier Zeilen an. Dort wird index schon als Fallback gesetzt.
Übrigens: SQL Injection, mysql_real_escape_string sind Stichworte, mit denen du dich auseinandersetzen solltest.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 10:22
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
Zitat:
Zitat von AmicaNoctis
Sieh dir die ersten vier Zeilen an. Dort wird index schon als Fallback gesetzt.
Übrigens: SQL Injection, mysql_real_escape_string sind Stichworte, mit denen du dich auseinandersetzen solltest.
|
Ja das Fallback mache ich ja, damit die Seite auf jedenfall was anzeigt; wie schreibe ich das denn jetzt um, dass mein Script wieder funktioniert?
Die Stichworte werden ich mir mal durchlesen.
|

29-01-2010, 10:25
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Wie oft noch? Du sollst $_GET["site"] statt $site verwenden. $site wird doch nirgends deklariert, außer wenn register_globals gesetzt ist, dann wird es "automagisch" deklariert, aber die Zeiten sind halt vorbei, weil man damit bösen Schabernack machen konnte.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 10:27
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
ok, das ist natürlich eine große Sicherheitslücke...das übersteigt jetzt recht schnell meine Zeit und Muse.
|

29-01-2010, 10:34
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Murderdeath
das übersteigt jetzt recht schnell meine Zeit und Muse.
|
Warum? Suchen und Ersetzen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 10:42
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
Wenn ich also in der Query abfrage statt:
PHP-Code:
$query = "SELECT * FROM ueleiter WHERE id=$site";
PHP-Code:
$query = "SELECT * FROM ueleiter WHERE id=$_GET['site']";
schreibe bekomme ich nur eine Fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /ueleiter.php on line 131
Ich bin halt nicht mehr so in der Materie drin.
|

29-01-2010, 10:44
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Murderdeath
PHP-Code:
$query = "SELECT * FROM ueleiter WHERE id=$_GET['site']";
|
Man benutzt keine Variablen in Zeichenketten.
PHP-Code:
$query = "SELECT * FROM ueleiter WHERE id='"
. mysql_real_escape_string($_GET['site'])
. "'";
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

29-01-2010, 10:51
|
|
Murderdeath
Registrierter Benutzer
|
|
Registriert seit: Dec 2002
Beiträge: 165
|
|
Zitat:
Zitat von AmicaNoctis
Man benutzt keine Variablen in Zeichenketten.
PHP-Code:
$query = "SELECT * FROM ueleiter WHERE id='"
. mysql_real_escape_string($_GET['site'])
. "'";
|
Ja das habe ich jetzt gemacht, aber ich sehe immer nur noch die Indexseite?
muss ich noch was ändern?
Ich habe das Script nochmal angehängt.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|