6Gb in der Error.log nach absenden des Formulars?!

lauder

Grünschnabel
Tag erstmal,

wie man im Titel schon lesen kann, habe ich es irgendwie geschafft, 6Gb in meine Error.log schreiben zu lassen, nachdem ich ein Formular an den dafür vorhergesehenen PHP-Code geschickt habe.
Wahrscheinlich auch nicht verwunderlich, ich arbeite erst seit gut 3 Wochen mit PHP 5.3 und habe mich jetzt schon in ein etwas grösseres Projekt gewagt. Eigentlich ist es immer noch das alte: HTML-Formular abschicken, auswerten und in die Datenbank schreiben. Im kleineren Umfang kein Problem, aber das hier ist ein ziemlich grosses Fomular, ich hoffe ihr könnt mir als Neulig die Fehler auweisen die das Script hat.
Zur kurzen erläuterung: Man gibt 3 Titeln ein, das Studio, die Anzahl Episoden, Status, usw.
Die Anzahl Episoden lasse ich dann in einer Schleife durchlaufen, die so oft einen Eintrag in die dafür vorhergesehen Tabelle erzeugt, wie es Anzahl Episoden gibt. Für den Titel der Episode wird einfach eines der 3 Titel verwendet.

PHP:
<?php
//Variabeln entgegen nehmen
$otitle = $_POST['original_title'];
$jtitle = $_POST['japan_title'];
$etitle = $_POST['english_title'];
$studio = $_POST['studio'];
$eps	= $_POST['eps'];
$status = $_POST['status'];
$type	= $_POST['type'];
$season = $_POST['season'];
$year	= $_POST['year'];
$genres	= $_POST['genres'];
$manif	= $_POST['manif'];
$des	= $_POST['description'];

var_dump($otitle, $jtitle, $etitle, $studio, $eps, $status, $type, $season, $year, $genres, $manif);

/*Verbindung*/
$con = new mysqli ('localhost', 'dbuser' ,'pw' , 'db');

/*Datum und Zeit ermitteln für 'Created'*/
$created = date("d.m.Y H:i");

/*Session-ID ermitteln für Benutzernamen 'Created_by'*/
$user = session_id();
if ($username = $con->prepare("SELECT username FROM nr1_session WHERE session_id = '$user'"))
{
	$username->execute();
	$username->bind_result($username);	
}

/*Genres auslesen*/
for ($i=0;$i<=count($_POST['genres']);$i++) 
{ 
  $genres = $genres[$i]; echo " ";
}

/*Manifestationen auslesen*/
for ($j=0;$j<=count($_POST['manif']);$j++)
{
	$manif = $manif[$j]; echo " ";
}

/*Anime-Daten speichern*/
$con->query("INSERT INTO anime ('original_title', 'japan_title', english_title', 'genres', 'studio', 'season', 'year', 'state', 'type', 'manifestations', 'description', 'created', 'created_by')
VALUES 
('$otitle', '$jtitle', '$etitle', '$genres', '$studio', '$season', '$year', '$status', '$type', '$manif', '$des', '$created', '$username')");

/*Episoden erstellen*/
$k=0;
do {
	$k++;
	$con->query("INSERT INTO anime_stream ('ep_nr','ep_title') VALUES ('$k', '$otitle')");
}while ($k!=$eps);

$con->close();
?>

Code:
<form method="post" action="/dadada">
<table>
  <tr><td width="100">Originaltitel:</td><td><input type="text" name="original_title" size="45"></td></tr>
<tr><td width="100">Japanischer Titel:</td><td><input type="text" name="japan_title" size="45"></td></tr>
<tr><td width="100">Englischer Titel:</td><td><input type="text" name="english_title" size="45"></td></tr>
<tr><td width="100">Studio</td><td width="266"><input type="text" name="studio" size="45"></td></tr>
<tr><td width="100">Episoden</td><td><input type="text" name="eps" size="45" /></td></tr>
<tr>
  <td width="100">Status:</td>
	<td>
      <select name="status" size="1">
        <option value="1" select="selected">Freigegeben</option>
        <option value="0">Gesperrt</option>
      </select>
	</td>
</tr>
<tr>
	<td width="100">Typ:</td>
    <td>
    	<select name="type" size="1">
       	  <option value="series" select="selected">Serie</option>
          <option value="OVA_Special">OVA/Special</option>
          <option value="Movie">Movie</option>
        </select>
    </td>
</tr>
<tr>
	<td>Saison</td>
    <td>
    	<select name="season" size="1">
		  <option value="Winter">Winter</option>
    	  <option value="Frühling">Frühling</option>
    	  <option value="Sommer">Sommer</option>
    	  <option value="Herbst">Herbst</option>
		</select>
	</td>
</tr>
<tr>
	<td>Jahr</td>
    <td>
		<select name="year" size="1">
    	  <option value="1980">1980</option>
    	  <option value="1981">1981</option>
    	  <option value="1982">1982</option>
    	  <option value="1983">1983</option>
    	  <option value="1984">1984</option>
    	  <option value="1985">1985</option>
    	  <option value="1986">1986</option>
    	  <option value="1987">1987</option>
    	  <option value="1987">1987</option>
    	  <option value="1988">1988</option>
    	  <option value="1989">1989</option>
    	  <option value="1990">1990</option>
    	  <option value="1991">1991</option>
    	  <option value="1992">1992</option>
    	  <option value="1993">1993</option>
    	  <option value="1994">1994</option>
    	  <option value="1995">1995</option>
    	  <option value="1996">1996</option>
    	  <option value="1997">1997</option>
    	  <option value="1998">1998</option>
    	  <option value="1999">1999</option>
    	  <option value="2000">2000</option>
    	  <option value="2001">2001</option>
    	  <option value="2002">2002</option>
    	  <option value="2003">2003</option>
    	  <option value="2004">2004</option>
    	  <option value="2005">2005</option>
    	  <option value="2006">2006</option>
    	  <option value="2007">2007</option>
    	  <option value="2008">2008</option>
    	  <option value="2009">2009</option>
    	  <option value="2010">2010</option>
    	  <option value="2011">2011</option>
    	  <option value="2012">2012</option>
    	  <option value="2013">2013</option>
    	  <option value="2014">2014</option>
	</select>
    </td>
</tr>
</table>
<table width="100%">
<tr width="100">
<p>Genres</p>
<td width="12%"><input type="checkbox" name="genres[]" value="Adventure">Abenteuer</td>
<td width="12%"><input type="checkbox" name="genres[]" value="Action">Action</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Adult">Adult</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Comedy">Comedy</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Cyberpunk">Cyberpunk</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Drama">Drama</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Ecchi">Ecchi</td>
<td width="8%"><input type="checkbox" name="genres[]" value="Fantasy">Fantasy</td>
<td width="18%"><input type="checkbox" name="genres[]" value="Harem">Harem</td>
</tr>
</tr>
<tr>
<td width="12%"><input type="checkbox" name="genres[]" value="Historical">Historical</td>
<td width="12%"><input type="checkbox" name="genres[]" value="Horror">Horror</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Josei">Josei</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Magic">Magic</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Martial_Art">Martial_Art</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Mecha">Mecha</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Military">Military</td>
<td width="8%"><input type="checkbox" name="genres[]" value="Musik">Musik</td>
<td width="18%"><input type="checkbox" name="genres[]" value="Mystery">Mystery</td>
</tr>
<tr>
<td width="12%"><input type="checkbox" name="genres[]" value="Psychological">Psychological</td>
<td width="12%"><input type="checkbox" name="genres[]" value="Romance">Romance</td>
<td width="10%"><input type="checkbox" name="genres[]" value="School">School</td>
<td width="10%"><input type="checkbox" name="genres[]" value="SciFi">SciFi</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Seinen">Seinen</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Shoujou">Shoujou</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Shoujou_Ai">Shoujou_Ai</td>
<td width="8%"><input type="checkbox" name="genres[]" value="Shounen">Shounen</td>
<td width="18%"><input type="checkbox" name="genres[]" value="Shounen_Ai">Shounen_Ai</td>
</tr>
<tr>
<td width="12%"><input type="checkbox" name="genres[]" value="Slice_of_Life">Slice of Life</td>
<td width="12%"><input type="checkbox" name="genres[]" value="Splatter">Splatter</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Sport">Sport</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Superpower">Superpower</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Vampire">Vampire</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Violence">Violence</td>
<td width="10%"><input type="checkbox" name="genres[]" value="Yaoi">Yaoi</td>
<td width="8%"><input type="checkbox" name="genres[]" value="Yuri">Yuri</td>
</tr>
</table>
<table>
<tr>
<p>Manifestationen</p>
<td><input type="checkbox" name="manif[]" value="Series">Serie</td>
<td><input type="checkbox" name="manif[]" value="OVA_Special">OVA/Special</td>
<td><input type="checkbox" name="manif[]" value="Movie">Movie</td>
<td><input type="checkbox" name="manif[]" value="Manga">Manga</td>
<td><input type="checkbox" name="manif[]" value="Game">Game</td>
</tr>
</table>
<table>
<textarea maxlenght="2000" rows="5" cols="70"></textarea>
</table>
<input type="submit" value="absenden" />
</form>
 
Zuletzt bearbeitet:
Du vergibst die ID von Hand? Warum nimmst du kein Autoincrement-Feld bei MSQL?

Ansonsten, was steht denn so im Error.log?
 
Stimmt... Ich hatte das vor kurzem abgeändert und vergessen, dass ich dank dem neuen Aufbau den ich gemacht habe, einfach ein auto_inc machen machenn. Ich kam leider nicht dazu die Error.log zu lesen, weil es gut 30min gedauert hätte, dass von meinem Server runter zu laden und als ich das mal gemacht habe, ist der Editor abgestürzt.
 
Irgendwie musst du doch da ran, um herauszufinden was da geloggt wird. Das sollte dir einen Hinweis geben, woran e liegen könnte.
Die 30Minuten Download-zeit sollte es dir Wert sein, denn mit Suchen und probieren brauchst du länger.

Ansonsten, lösche (umbenennen) deine Log-Datei, übe ein wenig und schau dir dann die Neue an.
 
Ich habe jetzt den Teil mit der ID-Implementierung rausgenommen und auto_increment gemacht, daraufhin nochmal das Formular ausgefüllt, abgeschickt und die Error.log angeschaut. Irgendwas läuft jetzt wohl besser, die Error.log ist auf normalgrösse geblieben. Die meisten Fehler die ich von dem Formular nun erhalten habe, gleichen dem hier: PHP Notice: Undefined index: original_title
 
Jepp, das sagt aus, dass $_POST kein Feld original_title hat
PHP:
$otitle = $_POST['original_title'];

Du solltest jeweils mit isset() prüfen ob ein Eintrag vorhanden ist und sonst ein Default-Wert nehmen
PHP:
$otitle = isset($_POST['original_title']) ? $_POST['original_title'] : '';
 
Okay, ich versteh schon. Allerdings bringt mich das gerade etwas durcheinander, ich habe ja im Formular ein Feld als original_title benannt und das Feld dann auch ausgefüllt abgeschickt.
 
Gesagt getan. Das Ergebnis ist "NULL", was also heisst das nichts vom Formular in das Script kommt, wenn ich das richtig verstehe. Gibt's da einen Anhaltspunkt wie ich herausfinden kann woran das liegt?

Edit: Peinlicher Fehler, die Methode beim Formular war noch auf "get" gestellt.
Er nimmt nun die Eingaben entgegen. Allerdings schreibt er nach wie vor nichts in die 2 Tabellen.
 
Zuletzt bearbeitet:
Wenn ich mir jetzt dein erstes Posting anschaue: JA

HTML:
<form method="get" action="/dadada">
Du sendest über GET und fragst nachher POST ab. Das ist nicht dasselbe. Du findest deine Werte also in $_GET.

Und umbedingt prüfen ob das Formular abgesendet wird, bevor du ein INSERT erstellst
 
Zurück