Forum
Tipps
News
Menu-Icon

HILFEE!!! Variable

die Frage ist schon oft (nicht in diesem Forum) aufgetaucht  aber ich wäre froh um eure Hilfe:

Ich habe vor ein kleines CMS zu programmieren man sollte im Adminbereich folgende Funktionen haben:

- "Navigationskategorien" verwalten
- Inhalte in den "Navigationskategorien" managen
- Administratoren anlegen
- Inhalte einfach erstellen & mit dem Tinymce Editor
  bearbeiten können

Mein Problem ist wie soll ich anfangen, bzw wie geht das mit den Templates? Oder weiss jemand von einer Anleitung wie man ein CMS erstellen kann?

Falls meine Frage unverständlich ist bitte schreiben!

Hoffe auf Hilfen

Thanks Fubu100

PS: Bitte keine dummen Kommentare   

« Letzte Änderung: 10.03.07, 17:01:33 von Fabian Weber »

Antworten zu HILFEE!!! Variable:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
PS: Bitte keine dummen Kommentare

Der erste kam bereits von dir. Also was soll das?


Mein Problem ist wie soll ich anfangen, bzw wie geht das mit den Templates? Oder weiss jemand von einer Anleitung wie man ein CMS erstellen kann?

Für Templates gibt's schöne Lösungen, die sich gut in CMS integrieren lassen. Schau' dir mal die Smarty Template Engine an.

Die Frage nach einer Anleitung ist witzig, und die hab ich auch schonmal in einem anderen Forum gelesen (und beantwortet). Wenn es einen "Bauplan" für ein CMS geben sollte, was wäre an diesem CMS dann neu? Oder anders gesagt: welches herausragende Merkmal dieses CMS sollte Leute dazu bringen, es zu benutzen?

Auch auf die Gefahr hin, dass du das nicht hören willst: das Web ist voll von guten und schlechten CMS, ich würde mal sagen "gesättigt" ;)

greez 8)
JoSsiF

 

Zitat
Mein Problem ist wie soll ich anfangen, bzw wie geht das mit den Templates?

Ein CMS selbst zu schreiben ist im Prinzip sehr einfach, wenn es zum Beispiel mit wenigen Funktionen ausgestattet ist und auf eigenen Funktionen beruhen soll.

Hier eine mögliche Lösung für Templates. Templates zu integrieren ist auch sehr einfach und geht mit folgenden Funktionen, selbstverständlich leicht erweiterbar.

Die PHP Datei:
 
Zitat

$MeinInhalt = "Mein Inhalt" ;

// Funktion zum Einlesen der Templatedatei:

function In ( $File ) {
   $String = file ( $File ) ;
   $String = implode ( "", $String ) ;
   return $String ;
   }

// Funktion zum Bearbeiten:

function Edit ( $Tag, $NewTag, $String) {
   $String = str_replace ( "[".$Tag."]", $NewTag, $String ) ;
   return $String ;
   }

// Funktion zum Ausgeben:

function Out ( $String ) {
   echo $String ;
   }

// Template Einlesen:

$Template = In ( "test.html" ) ;

// Bearbeiten:

$Template = Edit ( "Content", $MeinInhalt, $Template ) ;

// Ausgeben:

Out ( $Template ) ;


Die Templatedatei (test.html ):
 
Zitat
<!-- Anfang Mein Inhalt-->
   [Content]
<!-- Ende Mein Inhalt-->

Ausgabe:
 
Zitat
Mein Inhalt

Viel Erfolg  ;D

Hallo Zusamme Danke für eure Antworten geht jetzt!

Wie ich aber sagen dass es als {banner} die datei banner.gif ausgibt?

Thx Fubu100

« Letzte Änderung: 24.02.07, 20:32:11 von Fabian Weber »

oder geht das gar nicht?

Klar geht das. Hier eine mögliche Lösung anhand meines Beispiels mit Templates:

Die PHP Datei:

Zitat
$Banner= "banner.gif" ;

// Template Einlesen:

$Template = In ( "test.html" ) ;

// Bearbeiten:

$Template = Edit ( "Banner", $Banner, $Template ) ;

// Ausgeben:

Out ( $Template ) ;


Die Templatedatei (test.html ):
Zitat
<!-- Anfang Banner-->
   <img src="[Banner]" title="Banner" border"0" />
<!-- Ende Banner-->

Ausgabe erfolgt wie im Beispiel dann mit Banner.

Gruß Sourcerer  ;D

Danke. Aber wie geht das dann mit smarty?

Thx Fubu100
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ok! Jetzt gibt es aber probleme mit dem Css... wenn ich im template-headerbereich

<style type="text/css">
<!--
.Stil1 {color: #FFFFFF}
-->
</style>

steht, heisst es:

 
Zitat
Fatal error: Smarty error: [in index.tpl line 9]: syntax error: unrecognized tag: color: #FFFFFF (Smarty_Compiler.class.php, line 439)

was soll ich ändern?

THX Fubu100

Das obige problem hat sich geklärt.

Dass ich nicht immer ein neues Thema eröffnen muss frage ich einmal in diesem:

wie kann man inhalte einer mysql-datenbank in einer optionsliste ausgeben? und wie kann ich es dann (in einer anderen .php Datei) abrufen ?

mit

$option = $_POST['option'];  ?

Die abruf-Funktion geht irgendwie so:
mysql_query("select distinct...)
..habe ich zumindest in einem anderen Forum gelesen aber wie genau weiss ich auch nicht.?

THX Fubu100   
« Letzte Änderung: 26.02.07, 14:13:51 von Fabian Weber »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich möchte dich ja nicht schon wieder langweilen mit Verweisen auf Nachschlagewerke und Tutorials. Aber was soll man dir angesichts solcher Fragen anderes antworten?  ???

Die Frage nach dem SQL-SELECT erscheint angesichts der Tatsache, dass du ein CMS programmieren willst, ein wenig lächerlich...

(übrigens lässt sich die Frage an dieser Stelle gar nicht beantworten, da keiner von uns dein Datenmodell samt relevanter Felder kennt)

greez 8)
JoSsiF

Also diesmal kannst du mir gerne auf Nachschlagwerke verweisen:  ;)

ich habe einen ellenlangen phpcode und will den in php ausgeben ( $smarty->assign('inhalt', $inhalt); )

in $inhalt sollte das ganze zeugs drin stehen, aber wenn ich den php-code in einer Variable speichern gibt es jedesmal einen fehler ( egal ob ich " durch \"  ersetze, kann mir jemand sagen wie ich das richtig mache?

Hier de Code, der in einer Variable gespeichert werden soll:

<?php echo "
<form id=\"form1\" name=\"form1\" method=\"post\" action=\"nav.php\">
  <table width=\"481\" height=\"82\" border=\"0\">
    <tr>
      <td width=\"138\" height=\"27\">Navigation erstellen: </td>
      <td width=\"53\">Name: 
        <label>
        <input type=\"text\" name=\"textfield\" />
      </label></td>
      <td width=\"276\"><label>
    <select name=\"option\">
      <option value=\"\">Inhaltsseite</option>"
;

      $db mysql_connect(localhost,name,passwort);
      mysql_select_db(datenbank,$db);
      $result mysql_query("SELECT seiten FROM seiten",$db);

      if ($result) {
      while ($myrow=mysql_fetch_array($result)) {
      echo "<option value="$myrow[seiten]">$myrow[seiten]</option>n";
      }
      }
      echo "</select>;
      </label></td>
    </tr>
<tr>
      <td width=\"138\" height=\"27\">Navigation l&ouml;schen: </td>
      <td width=\"53\"><label></label></td>
      <td width=\"276\"><label>
    <select name=\"option\">
      <option value=\"\">entfernen</option>"
;

      $db mysql_connect(localhost,name,passwortr);
      mysql_select_db(datenbank,$db);
      $result mysql_query("SELECT navigation FROM navigation",$db);

      if ($result) {
      while ($myrow=mysql_fetch_array($result)) {
      echo "<option value="$myrow[navigation]">$myrow[navigation]</option>n\";
      }
      }
      echo \"</select>
      </label></td>
    </tr>
    <tr>
      <td height=\"21\">&nbsp;</td>
      <td>&nbsp;</td>
      <td><label>
        <input type=\"submit\" name=\"Submit\" value=\"Los-&gt;\" />
      </label></td>
    </tr>
  </table>
</form>"
?>
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Und wo ist da der Zusammenhang mit der Zuweisung der Variablen? Du gibst doch alles direkt aus mit echo(). Warum eigentlich? Das hat mit einem Template nicht so sehr viel zu tun.

Ach ja stimmt dummer Fehler jetzt kommt zwar die Ausgabe aber es funktioniert überhaupt nicht...

>>>Siehe<<<!


<?php   
error_reporting(E_ALL); 
define(&#39;SMARTY_DIR&#39;, &#39;/usr/export/www/vhosts/funnetwork/hosting/fubu100w/projekt/Smarty/&#39;);  
require(SMARTY_DIR.&#39;Smarty.class.php&#39;); 
@mysql_connect ("localhost",
"meinbenutzername", "meinkennwort")
or die ("keine Verbindung möglich.
 Benutzername oder Passwort sind falsch");

mysql_select_db("meinedatenbank")
or die ("Die Datenbank existiert nicht.");
$smarty = new Smarty; 
$smarty->assign(&#39;name&#39;, &#39;Progman&#39;);  
$smarty->assign(&#39;clanname&#39;, &#39;L33T HaXX0r Clan&#39;); 

$inhalt = &#39;<form id=\"form1\" name=\"form1\" method=\"post\" action=\"nav.php\">
  <table width=\"481\" height=\"82\" border=\"0\">
    <tr>
      <td width=\"138\" height=\"27\">Navigation erstellen: </td>
      <td width=\"53\">Name: 
        <label>
        <input type=\"text\" name=\"textfield\" />
      </label></td>
      <td width=\"276\"><label>
    <select name=\"option\">
      <option value=\"\">Inhaltsseite</option>";

      $db = mysql_connect("localhost","meinbenutzername","meinpasswort");
      mysql_select_db(datenbank,$db);
      $result = mysql_query("SELECT seiten FROM seiten",$db);

      if ($result) {
      while ($myrow=mysql_fetch_array($result)) {
      echo "<option value="$myrow[seiten]">$myrow[seiten]</option>n";
      }
      }
      echo "</select>;
      </label></td>
    </tr>
<tr>
      <td width=\"138\" height=\"27\">Navigation l&ouml;schen: </td>
      <td width=\"53\"><label></label></td>
      <td width=\"276\"><label>
    <select name=\"option\">
      <option value=\"\">entfernen</option>";

     $db = mysql_connect("localhost","meinbenutzername","meinpasswort");
      mysql_select_db(datenbank,$db);
      $result = mysql_query("SELECT navigation FROM navigation",$db);

      if ($result) {
      while ($myrow=mysql_fetch_array($result)) {
      echo "<option value="$myrow[navigation]">$myrow[navigation]</option>n\";
      }
      }
      echo \"</select>
      </label></td>
    </tr>
    <tr>
      <td height=\"21\">&nbsp;</td>
      <td>&nbsp;</td>
      <td><label>
        <input type=\"submit\" name=\"Submit\" value=\"Los-&gt;\" />
      </label></td>
    </tr>
  </table>
</form>&#39;; 
$query = "SELECT * FROM navigation ORDER BY id"; 
$navigationqry = mysql_query($query) OR die(mysql_error());
$navigation = array(); // leeres Arrayelement erzeugen    
while($row = mysql_fetch_assoc($navigationqry))    
{        
$navigation[] = $row;    


$query = "SELECT * FROM seitenname "; 
$seitennameqry = mysql_query($query) OR die(mysql_error());
$seitenname = array(); // leeres Arrayelement erzeugen    
while($row = mysql_fetch_assoc($seitennameqry))    
{        
$seitenname[] = $row;    


$query = "SELECT * FROM copyright "; 
$copyrightqry = mysql_query($query) OR die(mysql_error());
$copyright = array(); // leeres Arrayelement erzeugen    
while($row = mysql_fetch_assoc($copyrightqry))    
{        
$copyright[] = $row;    
}    
$smarty->assign(&#39;navigationbeitraege&#39;, $navigation); // In Smarty speichern
$smarty->assign(&#39;seitenname&#39;, $seitenname); // In Smarty speichern
$smarty->assign(&#39;copyright&#39;, $copyright); // In Smarty speichern
$smarty->assign(&#39;typ&#39;, &#39;Einstellungen&#39;); // In Smarty speichern
$smarty->assign(&#39;top&#39;, &#39;Heupteinstellungen der Seite&#39;); // In Smarty speichern
$smarty->assign(&#39;inhalt&#39;, $inhalt);
$smarty->display(&#39;admin.tpl&#39;);



?>




Ist dies, weil ich mehrmals mit der Datenbank verbinde und die Verbindung nicht mehr schliesse? 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ist dies, weil ich mehrmals mit der Datenbank verbinde und die Verbindung nicht mehr schliesse? 

Nein.

An was liegt es dann? 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Da hat sich etwas ins Dokument eingeschlichen, was dort nicht hingehört. Oberhalb vom einleitenden HTML-Tag definiert man den Content Type, sonst nichts.

Schau dir das Prinzip der Template-Erstellung am besten nochmal an. So wie du das hier machst, wird das dem Konzept nicht gerecht. Um es konkret auszudrücken: Man schreibt nicht(!) den gesamten HTML-Code in eine Variable, um diese dann an das Template zu übergeben. Das Template an sich enthält das HTML-Gerüst, und du setzt dort praktisch nur einzelne, dynamische Teile rein (z.B. das Ergebnis einer Datenbankabfrage).

greez 8)
JoSsiF

Ach ja... Danke stimmt! Hmm.. Ich muss nächstes mal etwas mehr überlegen, dass ich euch nicht immer ärgere, wegen solchen Kleinigkeiten... bei manchen bin ich sicher schon auf der *blacklist*  ;)

Hehe schon meine nächste Frage  ():-) Ich habe mir jetzt einen Code programmiert und der sollte eigentlich funzen. Wie es aber bei mir öfters der Fall ist, tut er dies nicht: Es heisst dass die Variable $echo nicht definiert ist. Wer will, kann sich den Code mal ansehen: Klick mich!. Ich habe schon verschiedenes probiert mit != '*' etc. jedoch kommt immer ein Fehler. Ich weiss dass ich mich zuerst mal mit den Grundlagen auseinandersetzen sollte, aber ich habe einfach grad die Herzenslust dieses mini-CMS fertig zu programmieren. Immerhin bin ich (für meine Verhältnisse ;D) schon recht weit...

Thanks Fabian Weber   

« Letzte Änderung: 02.03.07, 21:06:18 von Fabian Weber »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Kann man grad schwer nachvollziehen, da man ja die nötige Datenbank usw. nicht hat. Hab auch gar keine Lust, mir den Quellcode durchzulesen, is zu viel, und es is Wochenende ;)

Also poste doch bitte die genaue Fehlermeldung.

greez 8)
JoSsiF

und es is Wochenende ;)

Also poste doch bitte die genaue Fehlermeldung.


Verstehe ich ;);D

Fehlermeldung:
 
Zitat
Notice: Undefined variable: echo in /usr/export/www/vhosts/funnetwork/hosting/fubu100w/projekt/admin/navmake.php on line 111
Zeilen, in denen $echo generiert werden soll:

<?php

 $query 
"SELECT link FROM seiten "
$seitenqry mysql_query($query) OR die(mysql_error());
$seiten = array(); // leeres Arrayelement erzeugen    
while($row mysql_fetch_assoc($seitenqry))    
{        
$seiten[] = $row;    


$echo "$seiten[$seite]";
?>


Thanks Fubu100

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo
Äh kann mich jetzt auch täuschen, aber ist $echo nicht genau so ein name, den man als variable nicht benutzen sollte, da es ja eine FUnktion in PHP ist.
Also nenne mal $echo in was anderes

gruß
der_webi

du hast glaube ich recht... aber wenn ich $echo in $ausgabe (überall) ersetze, heisst es einfach 

Zitat
Notice: Undefined variable: ausgabe in /usr/export/www/vhosts/funnetwork/hosting/fubu100w/projekt/admin/navmake.php on line 103
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo

$echo = "$seiten[$seite]";

gibt es die Variable $seite überhaupt?

Poste mal bitte nur line 103


gruß
der_webi

Ja. hier der Code:


<?php
$name 
$_POST[&#39;name&#39;]; // eingegebener Name
$seite $_POST[&#39;seite&#39;]; //Auswahlliste

// vorgehender Code
else if ($name AND $seite == &#39;*&#39;)
 
{
 
@
mysql_connect ("localhost",
"fubu100w""fabianweber")
or die (
"keine Verbindung möglich.
 Benutzername oder Passwort sind falsch"
);
 
mysql_select_db("fubu100w")
or die (
"Die Datenbank existiert nicht.");
 
$query "SELECT link FROM seiten "
$seitenqry mysql_query($query) OR die(mysql_error());
$seiten = array();    
while($row mysql_fetch_assoc($seitenqry))    
{        
$seiten
[] = $row;    


 
$query "SELECT link FROM seiten"
$seitenqry mysql_query($query) OR die(mysql_error());
$seiten = array();  
while($row mysql_fetch_assoc($seitenqry))    
{        
$seiten
[] = $row;    


$ausgabe "$seiten[$seite]";

//Weiteres Script

$smarty->assign(&#39;inhalt&#39;, $ausgabe);
?>



Thx Fubu100

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

versuche mal dei Variable  $seite auszugeben, dann musst du eben die Zeile 103 auskommentieren.
 Gibt eigentlich nur 2 Möglichkeiten:
1. die Variable $seite existiert nicht
2. das array $seiten ist nich definiert, also setzte auch mal stadtt $seite eine Zahl ein die in Frage kommt.

gruß
der_webi
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

PHP kategorisiert die Fehlermeldungen. Eine "Notice" wie diese ist kein Beinbruch, sondern deutet lediglich auf eine kleine Unsauberkeit hin, die ein guter Programmierer aber natürlich behebt ;)  Übrigens wirst du auf dem Webspace eines Hosters kaum eine Notice angezeigt bekommen, es sei denn du setzt das Error Reporting im Skript manuell.

In dem Fall hier scheint $ausgabe tatsächlich einfach nicht definiert zu sein, weil bei der vermeintlichen Initialisierung kein Wert zugewiesen wird (Heißt: $seiten[$seite] ist leer).

greez 8)
JoSsiF

Aber an der Formular eingabe stimmt doch auch alles?

.....
<select name="seite" id="seite">
<option selected>&nbsp;</option>
{foreach from=$seiten item=seiten}
<option>{$seiten.seiten}</option>
{/foreach}
</select>
......

Oder soll ich nochmals mein Problem schildern?  ::) Ich habe es wahrscheinlich zu wenig genau ausgedrückt... Das problem ist dass $ausgabe nichts ausgibt. Liegt dies daran, dass ich vor der $ausgabe einen Fehler gemacht habe? Thx Fubu100


« Wie installiere ich den Apache Server?Fehler konsole. Chat weißt gehler auf. !!?????????! »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Unreal Engine
Die Unreal Engine ist eine Spiel-Engine der Firma Epic Games. Es handelt sich dabei um eine spezielle Laufzeitumgebung für Computerspiele, welche den Spielverlauf st...

Webbrowser
Siehe auch Browser. ...

Webspace
Webspace, zu Deutsch: Netzplatz, ist ein Speicherplatz, der auf einem Webserver reserviert wird. Dieser wird dann genutzt um dort die Webseite zu speichern. Diese Online-...