Sudoku mit nur einer Überprüfung

Du MUSST session_start() vor den HTML-Code setzen! Sonst funktioniert die Session nicht. Das ist nicht optional. Was soll das onclick-Event beim Submit-Button, wenn da ohnehin nix ausgeführt wird? Das könnte sogar einen Java-Script-Fehler produzieren. Die ganzen Minus-Zeichen dürften dort fehlerhaft zumindest aber überflüssig sein.
 
Das session_start ist schon oben aber es kommt trotzdem Fehler.

Und die Striche waren nur Platzhalter da ich den Javascript code gelöscht habe. Ach und erzeugen keine Fehler hab grad in der Konsole nachgeschaut. Kann se aber gerne auch entfernen ;)


so hier genau nach euren Wünschen:
PHP:
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sudoku</title>
<link rel="STYLESHEET" type="text/css" href="sudoku.css">
<script type="text/javascript"></script>
</head>
<body>




<div id=sudoku>
<table width="266" height="117" border=0>
<tr>
<td><center>
<table width="266" height="117" border=0>
<tr>
<td><center>
<h1 class=sudoku>Sudoku</h1>
</center></td>
</tr>
<tr>
<td><center>
</center></td>
</tr>
<tr>
<td class="sudoku">
<?php


function getSudoku ()
{
$anzahl_benoetigter_zeichen = 162; //Anzahl der Zeichen
$inhalt_datei = "sudoku.txt"; //Die Zeichen aus der Datei in einer variablen speichern
$zeichen_dokument = filesize ($inhalt_datei); //Die Anzahl der Zeichen in der Variablen bestimmen
$moegliche_sudokus_z = $zeichen_dokument / $anzahl_benoetigter_zeichen; //Anzahl der möglichen Sudokus
$rand = rand(0, $moegliche_sudokus_z); //Zufällige Zahl aus .....
$handle = fopen ($inhalt_datei, "r"); //Öffnet den Inhalt und setzt Dateizeiger an den Anfang
$position_zeiger = $anzahl_benoetigter_zeichen * $rand; //Berechnet die Stelle für den Dateizeiger
fseek ($handle, $position_zeiger, SEEK_SET); //Platziert den Dateizeiger
$contents = fread ($handle, $anzahl_benoetigter_zeichen); //Holt die benötigten Zeichen für ein Sudoku
fclose ($handle);
return $contents;
}


$sudokustr = getSudoku ();
$sudoku = explode(";", $sudokustr);
$_SESSION['sudoku'] = $sudoku;
if (isset($_POST['submit']))
{
$_SESSION['sudoku'] = $_POST['submit'];
var_dump ($_SESSION['sudoku']);
}

var_dump($_SESSION['sudoku']);
echo "<form method=post>";
echo "<table cellspacing=0 cellpadding=1 border=0 bgcolor=#000000>";
$count = 0;
for ($zeile = 0; $zeile < 9; $zeile++)
{
echo "<tr>";
for ($kasten = 0; $kasten < 9; $kasten++)
{
echo "<td><div class=cell>";
$data = "";
if ($kasten == 2 || $kasten == 5) //Nach 2 und nach 5 Kästchen dicker Strich
{
$border = "border-right:2px solid #000000;";
} else {
$border = "";
$border = "";
}
if ($zeile == 2 || $zeile == 5) //Nach der 2ten und nach der 3ten dicker Unterstrich auf der ganzen Zeile
{
$border .= "border-bottom:2px solid #000000;";
}
if (intval($_SESSION['sudoku'][$count]) > 0 )
{
$data = "value='" . $_SESSION['sudoku'][$count] . "' readonly style='background:#6E6E6E; " . $border . "'";
} else {
$data = "style='" . $border . "'";
}
echo "\r\n<input valign=middle type=text id=i" . $count . " name=" . $count . " " . $data . " size=5 maxlength=1
class=cell onkeyup='fontsize(this, this.value)'>\r\n"; //überflüssiges entfernen
echo "</div></td>";
$count ++;
}
echo "</tr>";
}
echo "</table>";
echo "<input type='submit' value='OK' name='submit' >";
echo "</form>";
var_dump ($_POST['submit']);





?>
<script language="JavaScript" type="text/javascript">
function neuesFenster() {
window.open(
"function_****.php",
"Loesung",
"width=400,height=300,resizable=1,scrollbars=1,menubar=1,toolbar=1,location=1,status=1" );
}
</script></td>
</td>
</tr>
<tr>
<td height=28 valign=bottom><center>
<form method=post>
<input type="button" value="Lösung zeigen" onClick="">
<input type="button" value="Prïüfung" onClick="">
<input type="submit" value="Neues Sudoku" onClick"">
<input type="button" value="Fertig" onClick="">


<div id=bild>
<img src="bilder/Android.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild2>
<img src="bilder/Android2.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild3>
<img src="bilder/Android3.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild4>
<img src="bilder/Android4.png" alt="Das Bild kann leider nicht angezeigt werden O.o" width="135">
</div>
<div id=bild5>
<img src="bilder/hintergrund.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>

</body>
</html>


Hab es auch mal mit unset probiert um die gespeicherten am Ende wieder zu löschen aber selber Fehler.

edit:
Ok teil 1 gelöst die Übertragung funktioniert jetzt die Berechnung ich wollte hier auf array_count_values setzen dann wären aber doppelte zahlen in den Zeilen möglich :D Habt ihr ne andere Idee ?


Achja der Fehler war:
Vorher:
PHP:
if (isset($_POST['submit']))
{
$_SESSION['sudoku'] = $_POST['submit']; <-- daher kamen die 2 mal OK
var_dump ($_SESSION['sudoku']);
}
Nachher:
PHP:
if (isset($_POST['submit']))
{
$_SESSION['sudoku'] = $_POST;
var_dump ($_SESSION['sudoku']);
}
edit2:
Bin schon ein ganzes stück weiter und hab heute auch erstmal genug ^^

Hier der Code:
PHP:
<?php session_start(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sudoku</title>
<link rel="STYLESHEET" type="text/css" href="sudoku.css">
<script type="text/javascript"></script>
</head>
<body>




<div id=sudoku>
<table width="266" height="117" border=0>
<tr>
<td><center>
<table width="266" height="117" border=0>
<tr>
<td><center>
<h1 class=sudoku>Sudoku</h1>
</center></td>
</tr>
<tr>
<td><center>
</center></td>
</tr>
<tr>
<td class="sudoku">
<?php
ini_set('memory_limit', '-1');

function getSudoku ()
{
$anzahl_benoetigter_zeichen = 162; //Anzahl der Zeichen
$inhalt_datei = "sudoku.txt"; //Die Zeichen aus der Datei in einer variablen speichern
$zeichen_dokument = filesize ($inhalt_datei); //Die Anzahl der Zeichen in der Variablen bestimmen
$moegliche_sudokus_z = $zeichen_dokument / $anzahl_benoetigter_zeichen; //Anzahl der möglichen Sudokus
$rand = rand(0, $moegliche_sudokus_z); //Zufällige Zahl aus .....
$handle = fopen ($inhalt_datei, "r"); //Öffnet den Inhalt und setzt Dateizeiger an den Anfang
$position_zeiger = $anzahl_benoetigter_zeichen * $rand; //Berechnet die Stelle für den Dateizeiger
fseek ($handle, $position_zeiger, SEEK_SET); //Platziert den Dateizeiger
$contents = fread ($handle, $anzahl_benoetigter_zeichen); //Holt die benötigten Zeichen für ein Sudoku
fclose ($handle);
return $contents;
}


$sudokustr = getSudoku ();
$sudoku = explode(";", $sudokustr);
$_SESSION['sudoku'] = $sudoku;
if (isset($_POST['sudoku']))
{
$_SESSION['sudoku'] = $_POST;
//var_dump ($_SESSION['sudoku']);
}

//var_dump($_SESSION['sudoku']);
echo "<form method=post>";
echo "<table cellspacing=0 cellpadding=1 border=0 bgcolor=#000000>";
$count = 0;
for ($zeile = 0; $zeile < 9; $zeile++)
{
echo "<tr>";
for ($kasten = 0; $kasten < 9; $kasten++)
{
echo "<td><div class=cell>";
$data = "";
if ($kasten == 2 || $kasten == 5) //Nach 2 und nach 5 Kästchen dicker Strich
{
$border = "border-right:2px solid #000000;";
} else {
$border = "";
$border = "";
}
if ($zeile == 2 || $zeile == 5) //Nach der 2ten und nach der 3ten dicker Unterstrich auf der ganzen Zeile
{
$border .= "border-bottom:2px solid #000000;";
}
if (intval($_SESSION['sudoku'][$count]) > 0 )
{
$data = "value='" . $_SESSION['sudoku'][$count] . "' readonly style='background:#6E6E6E; " . $border . "'";
} else {
$data = "style='" . $border . "'";
}
echo "\r\n<input valign=middle type=text id=i" . $count . " name=" . $count . " " . $data . " size=5 maxlength=1
class=cell onkeyup='fontsize(this, this.value)'>\r\n"; //überflüssiges entfernen
echo "</div></td>";
$count ++;
}
echo "</tr>";
}
echo "</table>";
echo "<input type='submit' value='OK' name='sudoku' >";
echo "</form>";

$array_pruefen = array(1,2,3,4,5,6,7,8,9);

//--------------------------Ende Tabellenerstellung----------------------------------------------
//------------------------------------Zeilen-----------------------------------------------------
$a = 0;
while ($a < 9 )
{
$zeilaaaa1[] = $_SESSION['sudoku'][$a];
$a++;
}

$b = 9;
while ($b < 18 )
{
$zeilaaaa2[] = $_SESSION['sudoku'][$b];
$b++;
}

$c = 18;
while ($c < 27 )
{
$zeilaaaa3[] = $_SESSION['sudoku'][$c];
$c++;
}

$d = 27;
while ($d < 36 )
{
$zeilaaaa4[] = $_SESSION['sudoku'][$d];
$d++;
}

$e = 36;
while ($e < 45 )
{
$zeilaaaa5[] = $_SESSION['sudoku'][$e];
$e++;
}

$f = 45;
while ($f < 54 )
{
$zeilaaaa6[] = $_SESSION['sudoku'][$f];
$f++;
}

$g = 54;
while ($g < 63 )
{
$zeilaaaa7[] = $_SESSION['sudoku'][$g];
$g++;
}

$h = 63;
while ($h < 72 )
{
$zeilaaaa8[] = $_SESSION['sudoku'][$h];
$h++;
}

$i = 72;
while ($i < 81 )
{
$zeilaaaa9[] = $_SESSION['sudoku'][$i];
$i++;
}
//--------------------------Ende Zeilen----------------------------------------------------------
//------------------------------Spalten----------------------------------------------------------

$aa = 0;
while ($aa < 73 )
{
$spalteeee1[] = $_SESSION['sudoku'][$aa];
$aa = $aa + 9;
}


$bb = 1;
while ($bb < 74 )
{
$spalteeee2[] = $_SESSION['sudoku'][$bb];
$bb = $bb + 9;
}

$cc = 2;
while ($cc < 76 )
{
$spalteeee3[] = $_SESSION['sudoku'][$cc];
$cc = $cc + 9;
}

$dd = 9;
while ($dd < 77 )
{
$spalteeee4[] = $_SESSION['sudoku'][$dd];
$dd = $dd + 9;
}

$ee = 4;
while ($ee < 78 )
{
$spalteeee5[] = $_SESSION['sudoku'][$ee];
$ee = $ee + 9;
}

$ff = 5;
while ($ff < 79 )
{
$spalteeee6[] = $_SESSION['sudoku'][$ff];
$ff = $ff + 9;
}

$gg = 6;
while ($gg < 80 )
{
$spalteeee7[] = $_SESSION['sudoku'][$gg];
$gg = $gg + 9;
}

$hh = 7;
while ($hh < 81 )
{
$spalteeee8[] = $_SESSION['sudoku'][$hh];
$hh = $hh + 9;
}

$ii = 8;
while ($ii < 82 )
{
$spalteeee9[] = $_SESSION['sudoku'][$ii];
$ii = $ii + 9;
}

$spalteeee = array ($spalteeee1, $spalteeee2, $spalteeee3, $spalteeee4, $spalteeee5, $spalteeee6, $spalteeee7, $spalteeee8, $spalteeee9);
//------------------------------Ende Spalte----------------------------------
$array_pruefen = array(1,2,3,4,5,6,7,8,9);

echo "<pre>";
var_dump ($spalteeee);
echo "</pre>";
$result = array_diff($array_pruefen, $spalteeee[1]);
print_r($result);

















//var_dump ($spalteeee1);
?>
<script language="JavaScript" type="text/javascript">
function neuesFenster() {
window.open(
"function_****.php",
"Loesung",
"width=400,height=300,resizable=1,scrollbars=1,menubar=1,toolbar=1,location=1,status=1" );
}
</script></td>
</td>
</tr>
<tr>
<td height=28 valign=bottom><center>
<form method=post>
<input type="button" value="Lösung zeigen" onClick="">
<input type="button" value="Prüfung" onClick="">
<input type="submit" value="Neues Sudoku" onClick"">
<input type="button" value="Fertig" onClick="">


<div id=bild>
<img src="bilder/Android.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild2>
<img src="bilder/Android2.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild3>
<img src="bilder/Android3.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>
<div id=bild4>
<img src="bilder/Android4.png" alt="Das Bild kann leider nicht angezeigt werden O.o" width="135">
</div>
<div id=bild5>
<img src="bilder/hintergrund.png" alt="Das Bild kann leider nicht angezeigt werden O.o">
</div>

</body>
</html>



Das heist morgen noch um die schleifen ne if Abfrage und sie erst ausführen lassen wenn ich den Button klick.. sollte easy sein was ich aber denk ich mal das problem sein wird ist die falschen Kästchen rot zufärben :D
 
Zuletzt bearbeitet von einem Moderator:
Zurück