Php Abfrage funktioniert nur auf Webspace

L

Lukas Frehner

Guest
Hallo zusammen

Ich habe mir ein kleines Script gebastelt. Auf meinem alten Webspace läuft dies ohne Probleme, bei mir auf meinem lokal installierten Xampp-System geht es nicht.

Hier das Script:

test1.html:
CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form id="formA" name="formA" method="post" action="kor.php">
<label>a
<input name="forma" type="text" id="forma" tabindex="1" />
</label>
<br />
<label>b
<input name="formb" type="text" id="formb" tabindex="2" />
</label>
<br />
<label>c
<input name="formc" type="text" id="formc" tabindex="3" />
</label>
<p>
<input type="submit" name="Submit" value="Korrigieren" />
</p>
</form>
</body>
</html>



kor.php:

CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php

/* Punkt (a), Basel */
$Basel = "Basel";
$basel = "basel";

if ($forma == $basel || $forma == $Basel) {
echo ("<p>Korrekt, A ist $Basel</p>");
}
else {
echo ("<p>Falsch, A ist nicht $forma sondern $Basel</p>");
}

/* Punkt (b), Köln */
$Köln = "Köln";
$köln = "köln";

if ($formb == $Köln || $formb == $köln) {
echo ("<p>Korrekt, B ist $Köln</p>");
}
else {
echo ("<p>Falsch, B ist nicht $formb sondern $Köln</p>");
}

/* Punkt (c), Rotterdam */
$Rotterdam = "Rotterdam";
$Rdam = "R'dam";

if(strtolower($formc) == strtolower($Rotterdam) || strtolower($formc) == strtolower($Rdam)) {
echo ("<p>Korrekt, C ist $Rotterdam</p>");
}
else {
echo ("<p>Falsch, C ist nicht $formc sondern $Rotterdam</p>");
}

?>

</body>
</html>



Hier ein Link zum lauffähigen Script: http://wastam.lens.hl-users.com/test1.html (richtige Antworten Natürlich: Basel, Köln, Rotterdam)

Was für einen Fehler habe ich gemacht? Ich habe Xampp auch schon 2 mal neuinstalliert.

Vielen Dank für eure Hilfe.

Lukas
 
Wenn du xamp installierst sind wohl per default die register_globals off und deine Variablen wie $forma leer.
Entweder in der PHP-Ini umstellen oder besser die post-Variablen korrekt abfragen.
 
Aha, gut, und wie stelle ich die register_Global um? Habs jetzt im ordner xampp/php/php.ini umgestellt auf "On" aber es wird in der phpinfo() immernoch als off dargestellt.

Auserdem, wie rufe ich die Postvariable korrekt ab? Besten Dank und schönes wochenende

Lukas
 
QUOTE (Berater @ Sa 30.06.2007, 11:35) Aha, gut, und wie stelle ich die register_Global um? Habs jetzt im ordner xampp/php/php.ini umgestellt auf "On" aber es wird in der phpinfo() immernoch als off dargestellt.

Auserdem, wie rufe ich die Postvariable korrekt ab? Besten Dank und schönes wochenende

Lukas

Hast Du den Apache neu gestartet?
 
jop, hab ihn neu gestartet, aber es passiert nichts. ich habe auch vorsichtshalber mal beide php.ini geändert( 4+5 ).

Wie würde ich denn die variable korrekt abfragen?

Lukas
 
nur ne dumme Randnotiz: Bei Xampp liegt die relevante php.ini im apache Verzeichnis
 
QUOTE (Maik @ Sa 30.06.2007, 15:21) nur ne dumme Randnotiz: Bei Xampp liegt die relevante php.ini im apache Verzeichnis

Danke Maik, sowas habe ich mir schon fast gedacht, doch ich habe in Modules geschaut anstatt im Bin verzeichnis. Jetzt läuft das ganze wie geschmiert.

Doch trotzdem, wie könnte ich das ohne register_global machen?

Einen schönen Abend wünsche ich euch

Lukas
 
Hallo zusammen

Ich würde Register_Globals nie auf ON stellen da es ein zu grosses Sicherheitsrisiko ist.
Besser ist, dass Scrip umzuprogrammieren.

Wenn Du die register_global auf OFF lässt kannst Du Deine Variablen z.B. so ansprechen:

$_GET['varibal'];
$_POST['variable'];
$_SESSION['variable'];
$_FILES['variable'];

usw.

Wobei Du $_POST bei Formulare verwendest welche Du mittelst Post versendest und $_GET
bei Formulare welche Du mittels GET versendest => noch logisch oder :)

Wenn Du z.b. eine URL hast welche so ist: http://www.xxxxy.ch?aktion=login

Dann kannst Du die Variable aktion so ansprechen:

$_GET['aktion'];

ok?

Gruss Marco

 
Ich lege dir gern SelfPHP ans Herzen.
wink.gif

Dein verwendetes Skript schaut wirklich scheußlich aus, so dass ich sagen muss: versuch dich in die Grundlagen einzulesen.

http://www.selfphp.info
 
QUOTE (Marvin @ Sa 30.06.2007, 19:12) Ich lege dir gern SelfPHP ans Herzen.
wink.gif

Dein verwendetes Skript schaut wirklich scheußlich aus, so dass ich sagen muss: versuch dich in die Grundlagen einzulesen.

http://www.selfphp.info

Das würde ich ja gerne, am liebsten würde ich es über eine datenbank laufen lassen, und einfach ausgeben, aber ich habe keine zeit mich in der Materie zu vertiefen.

Lukas
 
Zurück
Oben