• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

no direct access Problem

  • Ersteller Ersteller DiVaO
  • Erstellt am Erstellt am
D

DiVaO

Guest
Ich baue mir im Moment ein eigenes Forum mit PHP und stehe vor einem Problem bei dem mir Google nicht weiterhilft. Ich habe eine PHP Datei mit der man einen Beitrag bearbeiten kann (edit.php). Mit POST wird er dann weitergegeben an die save.php, wo die Änderung in der Datenbank gespeichert wird.

Hier ein Ausschnitt aus den Dateien:

edit.php
PHP:
$sql = "SELECT
		content,
		id,
		topic
	FROM
		posts
	WHERE
		topic = " . mysql_real_escape_string($_GET['topic']) ."
	AND
		id = " . mysql_real_escape_string($_GET['post']) ."";
						
	$result = mysql_query($sql);
	while($row = mysql_fetch_assoc($result)) {
	echo "
		<form method='post' action='save.php?topic=".$_GET['topic']."&post=".$_GET['post']."'>
		<textarea name='newcontent'>".$row['content']."</textarea><br /><br />
		<input type='submit' value='Speichern' />
		</form>";
	}

save.php
PHP:
$sql = "UPDATE
		posts
	SET 
        	content = '".mysql_real_escape_string($_POST["newcontent"])."'
	WHERE
		topic = '".$_GET["topic"]."'
	AND
 		post_id = '".$_GET["post"]."'";

Jetzt habe ich beispielsweise das topic 1 und den post 5. mit edit.php?topic=1&post=5 kann ich diesne bearbeiten. Dann kann ich mit dem Klick auf den Button die Eingabe an die save.php?topic=1&post=5 senden, nur leider wird mir da nichts angezeigt außer no direct access.

Habe noch nie vorher gesehen dass sowas auftritt und auch keine Ahnung wieso.. wo liegt das Problem?

Grüße
 
In der save.php vermischst Du die POST- und GET-Arrays. Das Formular schickt seine Daten per POST ab, folglich solltest Du auch die POST-Variablen verwenden. URLs mit & sollten auch noch escaped werden, also &amp; schreiben.
 
In der save.php vermischst Du die POST- und GET-Arrays. Das Formular schickt seine Daten per POST ab, folglich solltest Du auch die POST-Variablen verwenden. URLs mit & sollten auch noch escaped werden, also &amp; schreiben.

Danke, Fehler behoben. :)
 
Zurück
Oben