PHP PHP variable übergeben

berto

Lt. Junior Grade
Registriert
Juni 2011
Beiträge
440
hallo Leute,

ich bin noch ziemlich neu beim Programmieren habe jedoch viel spaß daran, also hoffe ich auf eure Hilfe.

ich habe mir zu einem Kleinen Projekt gemacht, eine "Hangman"-Anwendung zu programmieren.
man gibt im ersten HTML-Formular das zu erratende Wort ein und mit den submit button kommt man auf eine php-seite, die ersteinmal mit Hilfe einer leeren Tabellenzeile angibt, wie lange das Wort ist.

Mein Problem liegt beim nächsten Schritt: wenn ich einen Buchstabe eingebe und auf den Ratenbutton klicke, hätte ich mir gedacht ich verweise auf eine weitere, leicht modifizierte PHP seite, die auch angibt, welche Buchstaben schon benutzt wurden. Die bereits benutzten Buchstaben kann ich ja über die URL weitergeben, aber wie gebe ich das zu erratende Wort weiter, ohne ein weiteres Formular zu benutzen?

lg und danke im Voraus
 
Wenn es um das lernen von php im allgemeinen geht sind session schonmal sehr gut.

Ansonsten könntest Du überlegen ob Du dich gleich an Datenbank-Anbindung ranwagen willst und z.B. alle Wörter in einer mySQL-Datenbank ablegen.

Ist auch einfacher als man denkt und man lernt gleich ein wenig den Umgang mit Datenbanken.
 
ok, danke ich habe jetzt die Variable mit einer Session-Variable übergeben, allerdings ergibt sich jetzt ein weiteres Problem: ich fürchte hier habe ich einen Denkfehler, den ich bis jetzt nicht gefunden habe.
<code>
for ($x=0; $x<$lang; $x++) {
if ($ziel[$x] = $_POST["raten"]) {
echo '<td>' . $_POST["raten"] . '</td>';
}
else echo "<td>&nbsp;&nbsp;&nbsp;</td>";
</code>

//$lang ist die länge des Wortes
//$ziel ist ein array, aus den einzelnen Buchstaben
//und ich wollte, dass denn der eingegebene Buchstabe in den richtigen Feldern geschrieben wird, und sonst soll die Zelle leer bleiben.
 
Zuletzt bearbeitet:
nimm doch zwei arrays
eins mit dem lösungswort und eins mit leeren elementen oder "_"-Zeichen
trifft ein buchstabe im lösungswort zu, zeigst du den buchstaben nicht an sondern ersetzt das "_"-Zeichen an der entsprechenden Position im zweiten array
dann zeigst du das zweite array an

das zweite array und die versuche natürlich auch in der session immer speichern
 
ok, super danke, da hab ich doch einfach ein zweites "=" vergessen :-)
die idee mit den 2 arrays klingt auch gut, die werde ich auch einmal ausprobieren.

danke nocheinmal
lg
Ergänzung ()

ok, jetzt habe ich noch eine(hoffentlich letzte) Frage:
nämlich mit der lösung zu den 2 arrays. Ich hätte jetzt das zweite array( $ausg) so definiert:
PHP:
$ausg=array();
	for ($x=0; $x<$lang; $x++) {
		if ($_POST["raten"] == $ziel[$x]) {
			$ausg[$x] = $_POST["raten"];
		}
	}

das liefert allerdings offset-fehler in diesem Block:
PHP:
for ($x=0; $x<$lang; $x++) {			
		echo "<td>" . $ausg[$x] . "</td>";
	}
Habt ihr einen Vorschlag wie ich das lösen könnte?
 
Zuletzt bearbeitet:
Entweder du initialisiert das Array $ausg oder du fragst bei der Ausgabe mit isset ab, ob der Buchstabe schon erraten wurde.
 
Du musst schauen, ob $ausg[$x] im jeweiligen Schleifendurchlauf existiert. Das ist ja bei deiner Lösung nicht immer der Fall. isset($ausg[$x])

Alternativ kannst du es vorher komplett initialisieren.

Noch ein paar Hinweise:

Deine Variablen sind nicht gut benannt. $lang liest sich wie die Abkürzung für language. Wenn schon, dann $laenge oder $length. Englisch ist üblicher.

Das gleiche gilt für $x. Zählvariablen werden traditionell $i, $j, usw. benannt. Alternativ wäre hier auch $stelle oder $position denkbar.

Über Arrays kann man bequem mit foreach iterieren.
 
ok danke werde ich nocheinmal versuchen

ok blöde frage: wie kann ich den array initialisieren?
 
Zuletzt bearbeitet:
Zurück
Oben