Loading...   Upload Image

Askme mit MySQLTutorials » PHP/MySQL Tutorials » Askme mit MySQL

Verfasst von Alice am 18.04.2009 - wurde schon 3981 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
1x bewertet
Schwierigkeit: einfach
Kommentare: [ 1 ]

Tag - Schlagwort PHP Tag - Schlagwort MySQL

Askme mit MySQL - Tutorial

Im Wishbook wurde ein Tutorial gewuenscht, dass aufzeigt, wie man ein Askme erstellt, wo nicht alles in einer einzigen Datei steckt ...

Ich bin zwar der Meinung, dass man sich nicht unnoetig viel Gepaeck aufladen sollte, aber nun denn ...

Unser Askme wird aus insgesamt 11 Dateien bestehen, nein kein Schreibfehler, wunderschoene 11 Dateien -.-
Wer es deutlich handlicher moechte, der liest hier bitte nicht weiter, sondern widmet sich dem Tutorial Ask and answer, da kommt am Schluss genau das Selbe in gruen bei raus, nur eben in einer einzigen Datei!

Was wird benoetigt?


- PHP / MySql Grundkenntnisse
- 1 MySql Datenbank
- Webspace der PHP unterstuetzt

Wie schauts aus?


- Askme
- Admin => Login
- Admin => Uebersicht
- Admin => Antworten

Step 1 - Die Datenbank


Als erstes erstellen wir eine neue Tabelle in der Datenbank(mit PHPMyAdmin)
CREATE TABLE IF NOT EXISTS `askme` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `frage` text NOT NULL,
  `antwort` text NOT NULL,
  `f_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `a_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `status` enum('B','U') NOT NULL DEFAULT 'U',
  `ip` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
);


Step 2 - DB Verbindung | config.inc.php



Config.inc.php heisst unsere Datei mit der wir eine Verbindung zur Datenbank herstellen
<?php // config.inc.php

//---------------------------
$host = "localhost";        // Adresse des Datenbankservers, fast immer localhost
$user = "";    // Dein MySQL Benutzername
$pass = "";    // Dein MySQL Passwort
$dbase = "";  // Name der Datenbank
//---------------------------

$connection = mysql_connect("$host","$user","$pass") OR DIE ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection) OR DIE ("Auswahl der Datenbank nicht moeglich."); 

?>


Step 3 - ask_me.php



Die Datei ask_me.php listet alle bisher gestellen Fragen, welche beantwortet wurden, auf...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 

<head>
<title>Grafixx - Askme</title> 

<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" type="text/css" href="style.css" />

</head>
<body>

<div id="ram">
<h1 id="header">Grafixx - Askme</h1>
<br />
<?php 

include('config.inc.php');      // DB-Verbindung einbinden
include('function.php'); 		// Funktion einbinden

$pfad = $_SERVER['PHP_SELF'];	// generiert aktueller Pfad zur Datei 

//------------------------------------------------------------------------

echo"<h1>Frag mich ...</h1>";

// ALLE fragen zaehlen
$alle = "SELECT id FROM askme";
$result_a= mysql_query($alle, $connection) or die (mysql_error()); 
$total = mysql_num_rows($result_a);

// ALLE unbeantworteten fragen zaehlen
$unbe = mysql_query("SELECT id, frage, ip FROM askme WHERE status='U'");
$unbeantwortet = mysql_num_rows($unbe);


// ---------------------------------- Fragen auslesen --------------------------------------------

$show = "id, 
         DATE_FORMAT(f_date, '%d.%m.%Y') AS f_datum, 
         DATE_FORMAT(a_date, '%d.%m.%Y') AS a_datum, 
         frage,
         antwort";
            
$result = mysql_query("SELECT $show FROM askme WHERE status='B'");  // DB Abfrage aller Eintrage mit status = B
       
$beantwortete = mysql_num_rows($result); // Anzahl der beantworteten Fragen

	if ($total == '1'){
    	echo "<p>Es wurde bisher <strong> $total</strong> Frage gestellt";
	}else{
    	echo "<p>Es wurden bisher <strong> $total</strong> Fragen gestellt";
	} 

	if($unbeantwortet == '1'){
	    echo ", <br /><strong> $unbeantwortet </strong> Frage davon ist noch unbeantwortet ...</p>";
	}else{
	    echo ", <br /><strong> $unbeantwortet </strong> Fragen davon sind noch unbeantwortete ...</p>";
	} 

// ------------------- Formular zum Fragen einbinden -----------------------------------------------

	include('ask.php');

// -------------------------------------------------------------------------------------------------


	echo "<h1>Frage &amp; Antwort ...</h1><br />"; // Headline ausgeben


// ---------------------- Seitennavigationsdaten --------------------------------------------------

$links_per_page = "5";      // Anzahl der Links die Pro Seite angezeigt werden sollen
$p = "5";                  // Anzahl der Links die in der Seitenavigation ausgegeben werden

include('navigation.php'); // Seitennavigation einbinden

// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------

// Pruefen ob Fragen vorhanden
    if(!$result || mysql_num_rows($result)<1) {
           echo "<p>Es sind bisher noch keine Fragen vorhanden ...</p>\n";
    } else {
    
	// Datenbank-Abfrage -----------------------------------------------
	$abfrage = mysql_query("SELECT $show FROM askme WHERE status='B' ORDER BY id DESC LIMIT $start,$links_per_page");

	while ($row=mysql_fetch_array($abfrage)) { // Ausgabe der Fragen ...
		extract($row); 
		
		echo "<div class=\"line\">\n";
		echo "<strong>Frage:</strong><br />";
	
	    echo $frage; // Frage ausgeben
	
	    echo "<br /><br />";
	    echo "<strong>Antwort:</strong><br />";
	    
	    echo $antwort; // Antwort ausgeben
	
		echo "<div align=\"right\">";
		echo "Gestellt am <strong>".$f_datum."</strong> | Beantwortet am <strong> ".$a_datum."</strong></div>\n";
	
		echo "</div>\n <br />\n ";
		
	} // close while
	
} // close nix vorhanden

 echo "<div id=\"navigation\">\n";

 echo "<span class=\"pages\">Seite $go von $pages</span>\n";

 echo $link_string; // Ausgabe der Seitennavigation
	
 echo "</div> \n";
?> 

<h3>Grafixx - Askme © <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?> | <a 

href="login.php">Login</a></h3>

</div>

</body>
</html>


Step 4 - ask.php



In unsere Datei ask_me.php wird die Datei ask.php mittels include() Befehl eingebunden, die Datei ask.php ist dafuer zustaendig, dass Fragen gestellt werden koennen ...
<?php // ask.php

// ---------------------------------- Wenn LOS gedrueckt --------------------------------------------

if (isset($_POST['go'])){ // sofern submit gedrueckt
    
    $ask = clean_it($_POST['frage']); // Uebergebene Daten bereinigen
      
      if (empty($_POST['frage'])) { 
        echo "<div class=\"tut\"><h1>Error ...</h1>\n"; 
        echo "<p>Wenn du keine Frage stellst, kann ich dir auch nicht antworten ...</p></div>\n";
    }else{
    
        $visitorip = $_SERVER['REMOTE_ADDR']; // ip auslesen
        
        // pruefen ob IP schon eine Frage gestellt hat in den letzen 5 Minuten
		$check_ip = mysql_query("SELECT id FROM askme 
								 WHERE f_date > DATE_SUB(NOW(), INTERVAL 5 MINUTE) AND ip = '$visitorip'");
		
		if(mysql_num_rows($check_ip) == 0){ // Wenn mit der IP noch keine Frage gestellt wurde

        	// Datenbankeintrag
        	$eintragen = mysql_query("INSERT INTO askme (id, ip, frage, f_date) 
        		          			  VALUES ('','$visitorip','$ask',now())"); 
        
        	// Wenn Frage erfolgreich in DB eingetragen
        	if ($eintragen){
        
        	    echo "<div class=\"error\"><h2>Wunderbar ...</h2>\n"; 
        	    echo "<p>Die Frage wurde erfolgreich eingereicht ... </p></div>\n";
            
        	}else{ // Wenn nicht erfolgreich in DB eingetragen
        	
        	    echo "Da lief was schief ...\n";
        	}
        
	    }else{ // Fehler ausgeben, wenn schon gefragt 
    
	        echo "<div class=\"error\"><h1>Error ...</h1>\n"; 
	        echo "<p>Du hast schon ein Frage in den letzten 5 Minuten gestellt ...<br /><br />\n";
	        echo "Bitte versuch es spaeter nochmal ;)<br /></p>\n </div>\n";    
	    } // close Fehlerausgeben
	        
    }// close empty

}// close isset submit

if(!$eintrag){

//-------------------------------------------------------------- Formular um Frage zu stellen
?>

<form method="post" action="">
<p>Frag auch du mich etwas ... <br />
<input type="text" name="frage" size="50"/>&nbsp; 
<input type="submit" value="Los!" name="go" /></p>
</form>

<?php } // close eintrag
?>


Step 5 - login.php



Die Datei login.php enthaelt das Formular zum Einloggen in den Admin-Bereich unseres Askme Scriptes ...
<?php //login.php

session_start(); // startet die Session 

//---------------------- Logindate --------------------------------- //
$grafixx_name = "USERNAME";                // Loginname angeben
$grafixx_pass = "PASSWORT";                // Loginpasswort angeben
//------------------------------------------------------------------ //

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 

<head>
<title>Grafixx - Askme || Adminpanel</title> 

<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" type="text/css" href="style.css" />

</head>
<body>

<div id="ram">
<h1 id="header">Grafixx - Askme</h1>
<br />
<?php

if(isset($_POST['admin_login'])) { // sofern submit gedrueckt

$login_name = strip_tags($_POST['admin_name']); // Variable definieren
$login_pass = strip_tags($_POST['admin_pass']);	// Variable definieren

    if(empty($login_name)) { 
        $message .= 'Bitte geben Sie ihren Usernamen ein ... <br />'; $error = "1";
     }     
     if(empty($login_pass)) { 
        $message .= 'Bitte geben Sie ihr Passwort ein ... <br />'; $error = "1";
     }     
     
     if($login_name != $grafixx_name OR $login_pass != $grafixx_pass){
        $message .= 'Zugriff verweigert ... <br />'; $error = "1";
     }
    
    if($error != "1"){
        
            // session handle-----------------------------
            $_SESSION['login'] = $_SERVER['REMOTE_ADDR'];

            echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";
    }
    
    if($error == "1"){
        echo "<h1>Error ...</h1>\n <p>$message</p>";
    }

} // close isset [admin_login]
?>

<form action="" method="post">
<fieldset style="width: 300px">
<legend>Login</legend>
<label for="user">Username: </label>
<input type="text" name="admin_name" style="width: 250px" />

<label for="passwort">Passwort:&nbsp; </label>
<input type="password" name="admin_pass" style="width: 250px" />
<br /><br />
<input type="submit" value=" Login " name="admin_login" />
</fieldset>

</form>

<h3>Grafixx - Askme © <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?></h3>

</div>

</body>
</html>

Hier MUESSEN die Variablen $grafixx_name und $grafixx_pass mit den Zugangsdaten bestueckt werden!!!

Step 6 - admin.php


Es folgt die Datei admin.php, diese Datei listet uns ALLE unbeantworteten Fragen auf, damit diese dann beantwortet oder ggf. geloescht werden koennen ...
<?php // admin.php

include('login_check.php');	// Login-Check einbinden
include('config.inc.php'); 	// DB-Verbindung einbinden
include('function.php'); 	// Funktion einbinden

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 

<head>
<title>Grafixx - Askme</title> 

<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" type="text/css" href="style.css" />

</head>
<body>

<div id="ram">
<h1 id="header">Grafixx - Askme</h1>
<br />

<?php

// -----------------------------------------------------------------------------------
// Auflisten alle unbeantworteten Fragen 
// -----------------------------------------------------------------------------------

$result = mysql_query("SELECT id, frage FROM askme WHERE status ='U'");


// ---------------------- Seitennavigationsdaten --------------------------------------------------

$links_per_page = "5";      // Anzahl der Links die Pro Seite angezeigt werden sollen
$p = "5";                  // Anzahl der Links die in der Seitenavigation ausgegeben werden

include('navigation.php'); // Seitennavigation einbinden

// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------

echo "<h1>Unbeantwortete Fragen</h1>";

if($total_records < 1){ // Pruefen ob Fragen beantwortet werden muessen
	echo "<p>Zur Zeit existieren keine unbeantworteten Fragen ...</p>";
}else{

$abfrage = mysql_query("SELECT id, frage FROM askme WHERE status ='U' ORDER BY id DESC LIMIT $start,$links_per_page");

	while ($row=mysql_fetch_array($abfrage)) { // Ausgabe der Fragen ...
		extract($row); 
		
		echo "<div class=\"line\">\n";
		echo "<strong>Frage:</strong><br />";
	
	    echo $frage; // Frage ausgeben
	
		echo "</div>\n <br />\n ";		
		
        echo "<div align=\"right\">\n
              <a href=\"answer.php?id=$id\">[ beantworten ]</a> 
              <a href=\"delete.php?id=$id\" >[ loeschen ]</a></div>\n";
              		
	} // close while

// ---------------------- Seitennavigation ausgeben ------------------------------------------

 echo "<div id=\"navigation\">\n";

 echo "<span class=\"pages\">Seite $go von $pages</span>\n";

 echo $link_string; // Ausgabe der Seitennavigation
	
 echo "</div> \n";
 
} // close fragen vorhanden 
 
 echo "<h3>Grafixx - Askme © <a href=\"http://alice-grafixx.de\">Alice-Grafixx.de</a> ".date('Y')." | ";

 if(isset($_SESSION['login'])){ // Admin Logout
    echo "<a href=\"logout.php\">logout</a>";
 }
?> 
</h3>

</div>

</body>
</html>


Step 7 - answer.php


Die Datei answer.php ist fuer das Beantworten einer Frage zustaendig ...
<?php // answer.php

include('login_check.php');	// Login-Check einbinden
include('config.inc.php'); 	// DB-Verbindung einbinden
include('function.php'); 	// Funktion einbinden

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 

<head>
<title>Grafixx - Askme</title> 

<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />

<link rel="stylesheet" type="text/css" href="style.css" />

</head>
<body>

<div id="ram">
<h1 id="header">Grafixx - Askme</h1>
<br />

<?php

$id = clean_it($_GET['id']); // Variable definieren und saeubern
	
if (!isset($_GET['id'])){ // Pruefen ob ID uebergeben wurde

	echo "<div class=\"error\"><h2>Error ...</h2>\n";
	echo "<p>Es wurde keine ID uebergeben</p>\n</div>\n"; 
		
}else{ // Sofern ID uebergeben wurde

	    // Abfrage der Daten
	    $abfrage = mysql_query("SELECT frage,ip FROM askme WHERE id='$id'");
	    
	    // Ausgabe der Daten        
	    $row = mysql_fetch_object($abfrage);
	    
	    echo "<h2>Frage ".$id." beantworten</h2>\n
	          <p><strong>Frage:</strong> ".$row->frage."\n"; 
	    echo "<small>von IP ".$row->ip."</small></p>\n";      
	    
	    if (isset($_POST['okay'])){ // Wenn auf absenden geklickt wurde
	
	    	$antwort = clean_it($_POST['antwort']);  
	      
	      	if (empty($_POST['antwort'])) { 
	       		echo "<div class=\"error\"><h2>Error ...</h2>\n"; 
	        	echo "<p>Bitte Danke Antwort eingeben ...</p></div>\n";
	    	}else{
	    
	       	 	// Datenbankeintrag
	        	$antworten = mysql_query("Update askme SET antwort ='$antwort', a_date = now(), status='B' WHERE id ='$id'"); 
	       
		        // Wenn Frage erfolgreich beantwortet wurde
		        if ($antworten){
	
	                echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";	// Weiterleitung => Login
	
	       		}else{ // wenn nicht beantwortet wurde
	            	
	            	echo "Da lief was schief ...\n";
	        	}
	        	
	    }// close empty
	} // close Post submit
?>

<form method="post" action="">
<textarea rows="8" name="antwort" cols="54" class="form"></textarea><br />
<input type="submit" value="Absenden" name="okay" class="button" />
</form>
<?php    
} // close isset ID

 echo "<h3>Grafixx - Askme © <a href=\"http://alice-grafixx.de\">Alice-Grafixx.de</a> ".date('Y')." | ";

 if(isset($_SESSION['login'])){ // Admin Logout
    echo "<a href=\"logout.php\">logout</a>";
 }
?> 
</h3>

</div>

</body>
</html>


Step 8 - delete.php


Die Datei delete.php ist fuer das Loeschen einer unbeantworteten Frage zustaendig ...
<?php // delete.php

include('login_check.php');	// Login-Check einbinden
include('config.inc.php'); 	// DB-Verbindung einbinden
include('function.php'); 	// Funktion einbinden

$id = clean_it($_GET['id']); // Variable definieren und saeubern
	
if (!isset($_GET['id'])){ // Pruefen ob ID uebergeben wurde

	echo "<div class=\"error\"><h2>Error ...</h2>\n";
	echo "<p>Es wurde keine ID uebergeben</p>\n</div>\n"; 
	
}else{ // Sofern ID uebergeben wurde

	$delete = mysql_query("DELETE FROM askme WHERE id='$id'"); // Frage Loeschen
    
    if($delete){ // Wenn erfolgreich geloescht
    
		echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";	// Weiterleitung => admin.php

    }else{ // Wenn nicht => Fehler ausgeben
    
   		echo "<div class=\"error\"><h2>Error ...</h2>\n";
   		echo "<p>Die Frage konnte nicht geloescht werden</p>\n</div>\n"; 
              
    }// close $delete
      
} // close GET id
?>


Step 9 - logout.php


Und dann gaebe es noch die Datei logout.php, welche zum Abmelden fuer den Admin-Bereich verantwortlich ist ...
<?php // logout.php

session_start(); 			// startet die Session 
session_unset();			// Sessionvariable loeschen	
session_destroy();			// Session zerstoeren

echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php\">";	// Weiterleitung => Login
	
?>


Step 10 - navigation.php


Als naechstes haetten wir dann die Datei navigation.php, diese Datei wird sowohl als auch in die admin.php und die ask_me.php eingebunden, da diese uns ermoeglicht eine Blaetterfunktion fuer die Fragen zu bieten ...
<?php // navigation.php

$total_records = mysql_num_rows($result); 
$pages = ceil($total_records / $links_per_page); 

// korrigieren der aktuellen Seite
if(empty($_GET['go'])) {
    $go = 1;
} elseif($_GET['go'] <= 0 || $_GET['go'] > $pages) {
    $go = 1;
} else {
    $go = $_GET['go'];
}

// Linkkette
$links = array();

if(($go - $p) < 1){          
  $prevOffset = $go - 1;      
}else {          
  $prevOffset = $p;      
}            
if(($go + $p) > $pages) {          
  $nextOffset = $pages - $go;      
}else {          
  $nextOffset = $p;      
}          
$off = ($go - $prevOffset);    
                
if ($go- $prevOffset > 1){          
    $first = 1;
    $links[] = "<a href=\"".$pfad."?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
}      
if($go != 1){          
    $prev = $go-1;
    $links[] = "<a href=\"".$pfad."?go=$prev\" title=\"Zurueck zur letzen Seite\"> &laquo;</a>\n";     
}   
       
for($i = $off; $i <= ($go + $nextOffset); $i++){  
  if ($i != $go){              
        $links[] = "<a href=\"".$pfad."?go=$i\" title=\"Seite $i anzeigen\">$i</a>\n";
  }elseif($i == $pages) {              
        // aktuelle Seite, braucht keinen Link
        $links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }          
  elseif($i == $go){              
        // aktuelle Seite, braucht keinen Link
        $links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }      
}                
if($go != $pages){          
    $next = $go+1;
    $links[] = "<a href=\"".$pfad."?go=$next\" title=\"Weiter zur naechsten Seite\"> &raquo; </a>\n";
}      

if ($off+$prevOffset*2 < $pages){          
    // zur letzen Seite springen
    $last = $pages;
    $links[] = "<a href=\"".$pfad."?go=$last\" title=\"Zur letzen Seite springen\">... Letzte &raquo;</a>\n";
}      
 
$link_string = implode(" &nbsp; ", $links);  // Packt alles in einen String

$start = ($go-1) * $links_per_page; 

?>


Step 11 - function.php


Und dann gaebe es da noch die Datei function.php, sie ist fuer das 'Saeubern' der Daten zustaendig, welche mit der DB zu tun haben, die Datei wird mittels include() Befehl in alle Dateien eingebunden, welche mit der DB was am Hut haben ...
<?php // function.php

// Funktion um die DB-Eintraege zu pruefen => SQL Injektions
function clean_it($dirty){ 
    
     // Auswirkungen von magic_quotes_gpc zuruecksetzen, wenn ON
    if (get_magic_quotes_gpc()) {
        $clean = mysql_real_escape_string(stripslashes(htmlspecialchars($dirty)));
    }else{
        $clean = mysql_real_escape_string(htmlspecialchars($dirty));
    }

    return $clean;
}

?>


Step 12 - login_check.php


Und zu guter Letzt haetten wir da noch die Datei login_check.php, welche prueft ob man korrekt eingeloggt ist...
<?php // login_check.php

session_start(); // startet die Session 

if(!isset($_SESSION['login'])){ // wenn nicht eingelogt

	echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php\">";	// Weiterleitung => Login

}
?>


Aehm ja, ich glaube das waeren dann alle Dateien, naehere Ausfuehrungen zu diesen erspare ich mir der Einfachheit halber jetzt mal, die einzelnen Dinge sind eigentlich recht gut auskommentiert, so dass man sich mit ein paar PHP-Kentnissen recht gut zurecht finden kann, vorrausgesetzt man steht auf 1000 Dateien, wenn es auch eine Einzige tut...

Sollte jemand das dringende Beduerfnis hegen, die komplette Dateisammlung herunterladen zu wollen, bitteschoen ...

Tutorial Dateien downloaden

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


Affiliates:   Chibi Graphics  •   Blue-Graphics  •   Design Grafixx  •   Gallery Yuri  •   The Seduction  •   Pat DG  •   Colorful Gfx  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider