PHP, echo und " "

L

Lukas Frehner

Guest
Hallo nochmals

Ich habe noch ein kleines Problem:

Ich habe meinen Code von einigen wochen schonmal vorgestellt und jetzt habe ich alles auf eine Datenbank umgestellt:

Code seite1.php:
CODE
<form id="formA" name="formrhein" method="POST" action="auswertung.php">
<?php
$db = new SQLiteDatabase('flusse.db');
$sql = 'SELECT * FROM rhein';
$ergebnis = $db->query($sql);
while ($zeile = $ergebnis->fetchObject()) {
$kennung = $zeile->kennung;
$name = $zeile->name;
$formvab = $kennung;

echo "<label>$kennung )<input type=text name=$formvab /></label><br />";
}

?>
<input name="auswertung.php" type="submit" id="auswertung.php" value="Eingaben kontrollieren" />
</form>



code auswertung.php

CODE <?php

$db = new SQLiteDatabase('flusse.db');
$sql = 'SELECT * FROM rhein';
$ergebnis = $db->query($sql);
while ($zeile = $ergebnis->fetchObject()) {

$kennung = $zeile->kennung;
$name = $zeile->name;
$nameby = $HTTP_POST_VARS['kennung'];

echo "$nameby";

if(strtolower($nameby) == strtolower($name))
{
echo ("<p>Korrekt, $kennung ist $name</p>");
}
else {
echo "<p>FALSCH! $kennung ist nicht $nameby sondern $name</p>";
}

}


?>



Aber das ganze funktioniert nicht. die Variable $http_post_vars['kennung'] kommt nicht an. Ich denke weil bei seite1.php beim formular die " " vergessen wurden. Doch wenn ich die hinmache bekomme ich eine Fehlermeldung der von der Echo. Wie kann ich das beheben?

Vielen Dank für die Hilfe:

Lukas
 
escapen
du kannst
echo " hallo \"peter\" bla blabla"; schreiben
und die ausgabe sieht dann wie folgt aus
hallo "peter" bla blabla
 
Danke, das hat jetzt geklappt, aber die Variable kommt trotzdem nicht in die ausgabe.php rüber? wo liegt das problem? (ich habe schon von $Post_... auf $_Post... umgestellt
wink.gif
)

Lukas
 
setz noch ein

<input name="" type="hidden" value="<?php echo $kennung;?>" />


direkt vor

<input name="auswertung.php" type="submit" id="auswertung.php" value="Eingaben kontrollieren" />

dann sollte es klappen!
 
@siegfried was sol das bringt.
@berater schreib mal in die datei
print_r($_POST);
dann solltest du theoretisch dein post-array sehen.
zudem solltest du unten auch schreiben wenn möglich
<input name="submit" type="submit" id="submit" value="Eingaben kontrollieren" />
 
Danke, jetzt weiss ich dass diese Postübergabe überhaupt funktioniert. Nun, was mach ich jetzt mit dieser array? das ganze sieht jetzt so aus:

QUOTE Array ( [cool1] => der arzt [cool2] => das haus [coola] => Lahn [submit] => Eingaben kontrollieren )


Boah, dieses Projekt ist wirklich eine schwere Geburt
wink.gif


Lukas
 
verwende $_POST statt $HTTP_POST_VARS

1. ist glaub ich http-post-vars ab php 5 gar nicht mehr unterstützt,

2. sind die http_post_vars nicht überall verfügbar (obwohl das bei dir kein problem sein sollte)


wie auch immer


verwende $_POST['kennung']
 
QUOTE (gnarf @ So 8.07.2007, 18:05) [...] 1. ist glaub ich http-post-vars ab php 5 gar nicht mehr unterstützt, [...]

Die register_long_arrays ($HTTP_*_VARS) werden erst ab PHP 6 nicht mehr unterstützt, PHP 5 kann damit noch umgehen.
 
hast recht. ist prinzipiell möglich ! kann aber per php.ini aktiviert werden oder nicht. viele provider deaktivieren das.

aber wie auch immer. HTTP_*_VARS sind schon lange nicht mehr empfohlen und ich glaube trotzdem dass hier das problem liegt ! also probiers mal.

lg

marcus
 
QUOTE (Berater @ Fr 6.07.2007, 20:38) Danke, jetzt weiss ich dass diese Postübergabe überhaupt funktioniert. Nun, was mach ich jetzt mit dieser array? das ganze sieht jetzt so aus:


Boah, dieses Projekt ist wirklich eine schwere Geburt
wink.gif


Lukas


QUOTE Array ( [cool1] => der arzt [cool2] => das haus [coola] => Lahn [submit] => Eingaben kontrollieren )


k das ist nun dein POST-array was übergeben wird
und nun kannst du wie folgt drauf zugreifen


CODE
echo $_POST['cool1'].'<br />';
echo $_POST['cool2'].'<br />';
echo $_POST['coola'].'<br />';

//und noch ein beispiel

if($_POST['submit'] == 'Eingaben kontrollieren'){
echo 'da wurde doch glat das formular übergeben :)';
}




so wenn sonst noch was ist frag
 
Das ganze sollte aber automatisch geschehen. Weil sonst könnte ich bei meiner alten Handarbeit bleiben.

Lukas
 
CODE
foreach($_POST AS $key){

echo $key.'<br />';

}



meinst du sowas?
falls ja nen bissel hirnschmalz reinstecken
smile.gif
 
QUOTE (DZVO @ Di 10.07.2007, 09:14)
CODE
foreach($_POST AS $key){

echo $key.'<br />';

}



meinst du sowas?
falls ja nen bissel hirnschmalz reinstecken
smile.gif


Danke, werde es mir dann ansehen. Sobald ich wieder Zeit habe. Dieses Script war eigentlich zum schnellen und einfachen Auswendiglernen von Ortschaften gedacht
wink.gif
aber jetzt braucht es doch viel Zeit...

einen schönen Tag, Lukas
 
So, mit benutzung meines Hirnschmalzes, video2brain und selfphp hab ich es soweit gebracht, dass es läuft, ja es läuft zu gut;) Der code siht jetzt so aus:

CODE <?php

$db = new SQLiteDatabase('flusse.db');
$sql = 'SELECT * FROM rhein';
$ergebnis = $db->query($sql);
while ($zeile = $ergebnis->fetchObject()) {

$kennung = $zeile->kennung;
$name = $zeile->name;
$nameby = $_Post['$kennung'];


foreach($_POST AS $a => $b){

if(strtolower($b) == strtolower($name)) {
echo ("<p>Korrekt, $kennung ist $name</p>");
}
else {
echo ("<p>FALSCH! $kennung ist nicht $b sondern $name</p>");
}



}

}







?>


Die Ausgabe so:
Korrekt, 1 ist Hoek van holland

FALSCH! 1 ist nicht rotterdam sondern Hoek van holland

FALSCH! 1 ist nicht Zürich sondern Hoek van holland

FALSCH! 1 ist nicht Eingaben kontrollieren sondern Hoek van holland

FALSCH! 2 ist nicht Hoek van holland sondern Rotterdam

Korrekt, 2 ist Rotterdam

FALSCH! 2 ist nicht Zürich sondern Rotterdam

FALSCH! 2 ist nicht Eingaben kontrollieren sondern Rotterdam

FALSCH! a ist nicht Hoek van holland sondern Lahn

FALSCH! a ist nicht rotterdam sondern Lahn

FALSCH! a ist nicht Zürich sondern Lahn

FALSCH! a ist nicht Eingaben kontrollieren sondern Lahn


Ich habe die Schleifen jetzt in allen möglichen Varianten zusammengeflickt, aber ich kriegs nicht hin, dass:

1. form mit erstem datenbankeintrag
2. form mit zweitem datenbankeintrag etc.

konntrolliert wird...

Lukas
 
Danke erstmals, dass du dir überhaupt die Mühe machst es zu verstehen!

Also ich habe datenbank, die sieht so aus:

id, kennung, name
0, 1, Hoek van Holland
1, 2, Rotterdam
2, a, Lahn
etc...

Dann habe ich das formular lesetest:
CODE
<form id="formA" name="formrhein" method="POST" action="auswertung.php">
<?php
$db = new SQLiteDatabase('flusse.db');
$sql = 'SELECT * FROM rhein';
$ergebnis = $db->query($sql);
while ($zeile = $ergebnis->fetchObject()) {
$kennung = $zeile->kennung;
$name = $zeile->name;
$formvab = $kennung;

echo "<label>$kennung )<input type=text name=\"cool$formvab\" /></label><br />";
}

?>
<input name="submit" type="submit" id="submit" value="Eingaben kontrollieren" />
</form>



Da kommt immer die Kennung vor das formulaer und als name "cool$*EIGENTLICH-DB-KENNUNG*"

So, wenn man jetzt auf eingaben kontrollieren drückt, sollte die auswertung.php kommen und jeweils das Feld mit der kennung cool1 mit name1 konntrollieren
cool2 mit name2
cool3 mir name3
coola mit namea

Als antwort sollte dann nur kommen:

Korrekt, 1 ist Hoek van holland
oder
FALSCH! 1 ist nicht rotterdam sondern Hoek van holland

ich hoffe du hasst verstanden.

Lukas
 
Zurück
Oben