PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei mit comment.php?show aufrufen


michi--
29.11.2009, 21:47:17
Hallo!

da es mein erster Beitrag in diesem Forum ist, möchte ich mir kurz vorstellen. Mein Name ist Michael, bin 20 Jahre alt und komme aus Bayern. Bin Auszubildender im 1. Jahr zum Fachinformatiker - Anwendungsentwickler.

Deshalb habe ich zwei kleine Anliegen in PHP, die mich schon länger beschäftigen:

1. Anliegen:

z. B. habe ich eine Datei comment.php in der werden alle Informationen aufgelistet und in comment.php?show dann die detaillierten Informationen.

Das Problem habe ich hierbei, da die Texte/Tabellen in comment.php auch in comment.php?show angezeigt werden, aber ich diese trennen möchte.


Momentan löse ich es mit dem folgendem Code:

<?php
echo "Test";


if(isset($HTTP_GET_VARS['show']))
{
//code
}
?>


2. Anliegen:

Und zwar habe ich eine audit.php-Datei, Ich möchte aber gerne, dass die Ausgabe nach dem Speichern "<td align=\"center\"><b><font color=\"#339966\">Der Eintrag wurde erfolgreich gespeichert</font></b></td>
" auf einer neuen Seite dargestellt wird in audit.php ohne das Formular,aber mit den header.inc.php und footer.inc.php.

Ich möchte aber nicht, dass z. B. auf audit.php?save weitergeleitet wird. Sondern die Ausgabe direkt nach dem Klick auf Speichern! erfolgt.


<?php
include('../inc/header.inc.php');
include('../inc/mysql.inc.php');
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data">

<table width="100%">
<tr>
<td align="center" class="background">Audit Modus - Einstellungen</td>
</tr>
<?php
if(isset($_POST['submit_audit']))

{
mysql_query("update eit_config set config_value = '".$_POST['audit_mode']."' where config_name = 'audit_mode'");

echo "<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align=\"center\"><b><font color=\"#339966\">Der Eintrag wurde erfolgreich gespeichert</font></b></td>
</tr>";

}


$sql = mysql_query("select config_value from eit_config where config_name = 'audit_mode'");
$row = mysql_fetch_assoc($sql);
?>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center">Audit Modus aktivieren: <input type="checkbox" name="audit_mode" <?php if($row['config_value'] == "on") { echo "checked=\"checked\""; } ?>" /></td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit_audit" value="Speichern!" /></td>
</tr>
</table>
</form>
<?php

include('../inc/footer.inc.php');

?>


Hoffentlich sind meine Vorstellungen zu programmieren.
Ich wäre sehr dankbar, wenn jemand von euch eine Lösung parat hätte.

Gruss,

Michael

rarios
30.11.2009, 01:36:11
Hallo!

da es mein erster Beitrag in diesem Forum ist, möchte ich mir kurz vorstellen. Mein Name ist Michael, bin 20 Jahre alt und komme aus Bayern. Bin Auszubildender im 1. Jahr zum Fachinformatiker - Anwendungsentwickler.

Hallo und Herzlich Willkommen!

Ich erkenne momentan nicht ganz Deine eigentlichen Fragen.

Du kannst doch prinzipiell einfach per

if ((isset($_GET['var'])) AND (!empty($_GET['var'])))
{ echo "Da ?var gegeben ist und var nicht leer ist, wird das hier angezeigt." }
else {
echo "Da dies nicht der Fall ist, wird dies hier angezeigt.";
}
So kannst Du auch Formulare bei Ausgaben ausschließen und jegliche Ausgabe steuern.

cortex
30.11.2009, 09:08:33
willkommen im forum,

a) zu deinem ersten anliegen: was ist denn nun das problem?

b) $HTTP_GET_VARS ist als deprecated gekennzeichnet; ebenso <font>. ich hoffe, dass das nicht aus den lehrinhalten deiner ausbildung stammt.

c) zur zweiten sache: gibt's hier (http://www.selfphp.de/forum/showthread.php?t=22503) evtl. parallelen?


Hoffentlich sind meine Vorstellungen zu programmieren.


das sollte man schon hinbekommen .-


[...] wenn jemand von euch eine Lösung parat hätte.


schau dir bitte unsere forenregeln (http://www.selfphp.de/forum/announcement.php?f=12) an. eine lösung parat haben klingt nicht nach hilfe zu selbsthilfe.

cx

michi--
30.11.2009, 17:06:45
Danke rarios, das kann ich in einem anderen Skript von mir anwenden, aber ich habe mich unverständlich ausgedrückt für das erste Anliegen, sorry!

Und zwar ob es in PHP möglich ist, einen anderen Textinhalt im Browser auszugeben, wenn z. B. index.php aufgerufen wird, als in index.php?abcd, so dass die Ausgabe voneinander komplett unterschiedlich sind wenn ich die index.php?abcd aufrufe, die aber nicht die Ausgaben aus der index.php (wenn ich diese so im Browser in der Adresszeile aufrufe), enthält.


b) $HTTP_GET_VARS ist als deprecated gekennzeichnet; ebenso <font>. ich hoffe, dass das nicht aus den lehrinhalten deiner ausbildung stammt.
Okay, danke. Ich werde dann wohl auf $_GET['xyz'] umstellen müssen :-) Die Informationen stammen nicht aus der Ausbildung. Für <font> bzw. alle Style/Class verwende ich normalerweise CSS, aber da das Script und die CSS-Datei noch nicht fertig sind habe ich es im Beispiel-Script verwendet ;)
zu a): siehe oben.
zu c): Ja, ich habe irgendwo mal gesehen, dass es nach dem Absenden eines Formulares möglich ist eine neue Ausgabeseite zu kreieren. Deshalb kann es zur 1. Sache parallen geben.

cortex
30.11.2009, 17:17:41
da das Script und die CSS-Datei noch nicht fertig sind


ich würde stets vermeiden, mit irgendwelchen provisorien zu arbeiten; bei komplexen projekten verliert man diese irgendwann aus den augen / aus dem sinn.

styles lassen sich übrigens wie folgt inline zuweisen:

<HTM-element style='css-eigenschaft: wert'

[...] einen anderen Textinhalt im Browser auszugeben, wenn z. B. index.php aufgerufen wird, als in index.php?abcd [...]

du musst lediglich die GET-var auswerten.

ich habe irgendwo mal gesehen, dass es nach dem Absenden eines Formulares möglich ist eine neue Ausgabeseite zu kreieren. Deshalb kann es zur 1. Sache parallen geben.

mit serverseitiger programmierung lässt sich einiges anstellen .-

cx

michi--
30.11.2009, 17:53:33
du musst lediglich die GET-var auswerten.
cx

Also als Beispiel habe ich eine index.php angelegt mit folgendem Bsp.: Code:
<?php
//Page index.php
echo "index.php wird aufgerufen <br />";

//page index.php?show
if(isset($_GET['show']))
{ echo "index.php?show wird aufgerufen<br />"; }

//page index.php?detail
if(isset($_GET['detail']))
{ echo "index.php?detail wird aufgerufen<br />"; }

?>

Wenn ich nun die index.php?show oder index.php?detail aufrufe, wird immer die Ausgabe aus echo "index.php wird aufgerufen <br />"; angehängt und das möchte ich eben nicht.
Das ist momentan das einzige Problem was ich habe, vllt. ist die Lösung einfach nur sehr simpel und mir fällt diese nicht ein. Ich hab hier im Forum zwar auch schon gesucht, aber keine passende Lösung gefunden.


Danke für den Hinweis, cortex. Bei größeren Projekten ist das klar - mehr Programmierer auch evtl. an einem Projekt usw...

Die inline Zuweisung von Styles habe ich auch schon z. B. in Links verwendet

panametrics
30.11.2009, 18:15:49
Hallo michi,

nun eigentlich liegt Deine Lösung auf der Hand, nach dem Try&Error Prinzip:

Arbeite alle Eventualitäten ab, die über GET/POST kommen könnten, und falls keine der Variaten zutrifft, gehe mit "else" an den Rest ran.

Natürlich kannst Du hier auch mit "Case/Switch" arbeiten.

<?php

if(isset($_GET['show']) )
{
//page index.php?show
echo "index.php?show wird aufgerufen<br />";
}
elseif(isset($_GET['detail']))
{
//page index.php?detail
echo "index.php?detail wird aufgerufen<br />";
}
else
{
//Page index.php
echo "index.php wird aufgerufen <br />";
}

?>
Hoffe das ist das, was Du suchst?

PS: Alle Eingaben über GET/POST immer schön escapen! ;-)

cortex
30.11.2009, 18:16:42
das solltest du nun wirklich selbst hinbekommen... nun gut - 2 einfache möglichkeiten:

a) benutze eine switch- oder if- / elseif- / else-anweisung.
b) arbeite mit return

schau dir ggfs. die entsprechenden kapitel im handbuch an.

cx

michi--
30.11.2009, 19:57:43
Danke panametrics und cortex für eure Ideen, das war genau das, was ich gesucht hatte ;)
Den Rest kann ich jetzt selber programmieren.

Gruss,

Michael