Hilfe zu Link-CounterForum » Tutorials » Help » Hilfe zu Link-Counter
-
28.11.2011 um 18:56 Uhr
Hallo,
ich habe voll die Probleme mit dem Counter. Ich bekomme nur Fehlermeldungen auf der Maske. Ich benutze Xampp um die Seite zu programmieren und um sie dann erst Online zu stellen, wenn ich einen Server gefunden habe, der zu uns passt. Knnt ihr mir evtl. helfen? Was bentigt ihr um mir helfen zu knnen? Dann werde ich das gleich dann posten oder demjenigen per PN senden. Ich habe alles so gemacht, wie es im Tutorial beschrieben wurde, aber dennoch funktioniert es nicht.
Vielen dank im Vorraus fr eure Hilfe.
MfG
Phill
-
28.11.2011 um 20:21 Uhr
Hallo Phill,
die Aussage "Funktioniert nicht" bringt leider keinen weiter...
WAS genau funktioniert denn nicht?
Fehlermeldung(en) vorhanden, wenn ja wie lauten diese?
Liebe Gruesse
Alice
... { signatur } ... -
28.11.2011 um 21:46 Uhr
Das wei ich auch :-) Sry, htte es gleich mit hinposten sollen, aber danke fr die Reaktion. Also, ich wei nich so genau, wo ich die Tabelle anlegen muss. Ich hab sie unter Xampp -> Phpmyadmin -> Phpadmin (Datenbank) angelegt, so wie es im Tutorial steht, problem ist nur, ich wei nich genau ob es richtig ist bzw. ob ich sie richtig angelegt habe.
Meine Datenbank in Xampp:
http://img855.imageshack.us/img855/3858/datenbankphpmyadmin.png
Meine Tabelle link_count in der oben genannten Datenbank:
http://img853.imageshack.us/img853/6827/linkcounttabelle.png
Meine Datei function_navi.inc.php mit dem Browser aufgerufen:
http://img703.imageshack.us/img703/6765/functionnaviincphp.png
Der Code:
<?php
// 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\">« Erste ...</a>\n";
}
if($go != 1){
$prev = $go-1;
$links[] = "<a href=\"".$pfad."?go=$prev\" title=\"Zurueck zur letzen Seite\"> «</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\"> » </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 »</a>\n";
}
// Zusammenfgen der einzelnen Links zu einem String
$link_string = implode(" ", $links);
?>
Meine Datei go.php mit dem Browser aufgerufen:
http://img17.imageshack.us/img17/2044/gophp.png
Der Code der Datei:
http://img809.imageshack.us/img809/7035/gophpdatei.png
Und zu guter letzt noch die klick_counter.php mit dem Browser aufgerufen:
http://img341.imageshack.us/img341/814/klickcounterphp.png
Der Code:
<?php
session_start(); // startet die Session
//---------------------- Logindate --------------------------------- //
$grafixx_name = "USERNAME"; // Loginname angeben
$grafixx_pass = "PASSWORT"; // Loginpasswort angeben
//------------------------------------------------------------------ //
ob_start(); // startet den Ausgabepuffer
?>
<!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 - News || 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 - KlickCounter</h1>
<br />
<?php
if(!isset($_SESSION['login'])) {
if(isset($_POST['admin_login'])) {
$login_name = strip_tags($_POST['admin_name']);
$login_pass = strip_tags($_POST['admin_pass']);
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'];
header("Location: klick_counter.php"
}
if($error == "1"{
echo "<h1>Error ...</h1>\n <p>$message</p>";
}
}
}
// ----------------------------------------------- Ende Login ------------------------------------- //
if(isset($_SESSION['login'])){
include('config.inc.php';
$tab = "link_count";
$links_per_page = "5"; // Anzahl der Links die Pro Seite angezeigt werden sollen
$pfad = $_SERVER['PHP_SELF']; // aktueller Pfad zur Datei
// ---------------------------------------------------------------------------------------------------- //
$id = strip_tags($_GET['id']);
$action = $_GET['action'];
if(isset($_GET['id'])){
$abfrage = "SELECT id, url, klicks FROM $tab WHERE id='$id'";
$ergebnis = mysql_query($abfrage) OR DIE (mysql_error());
while ($ausgabe = mysql_fetch_array($ergebnis)){
extract($ausgabe);
}
}
if($action == ''{
echo "<a href=\"$pfad?action=new\" style=\"padding: 3px 5px; border: 1px solid #B5B8BB;\">
Neuen Link eintragen ...</a>\n";
?>
<br /><br />
<h1>Uebersicht ...</h1>
<?php
$q = "SELECT id from $tab";
$result = mysql_query($q) or die (mysql_error());
if(!$result || mysql_num_rows($result)<1) {
echo "<p>Zur Zeit sind keine Links vorhanden ...</p>\n";
} else {
$total_records = mysql_num_rows($result);
$pages = ceil($total_records / $links_per_page);
$p = "5";
// 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\">« Erste ...</a>\n";
}
if($go != 1){
$prev = $go-1;
$links[] = "<a href=\"".$pfad."?go=$prev\" title=\"Zurueck zur letzen Seite\"> «</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\"> » </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 »</a>\n";
}
// Zusammenfgen der einzelnen Links zu einem String
$link_string = implode(" ", $links);
$start = ($go-1) * $links_per_page;
// -----------------------------------------------------------------------------------------------------
------------------< //
$links_ab = "SELECT id, url, klicks FROM $tab ORDER BY id DESC LIMIT $start,$links_per_page";
$ergebnis = mysql_query($links_ab, $connection) or die (mysql_error());
?>
<table width="500" style="border: 1px solid #B5B8BB;">
<tr>
<th width="21" align="center">ID</th>
<th>URL</th>
<th align="center">Klicks</th>
<th align="center">Option</th>
</tr>
<?php
while ($links = mysql_fetch_array($ergebnis)){
extract($links);
$zeile++; // jede 2te Zeile einfaerben
if ($zeile % 2 == 0) {
echo "<tr>";
} else {
echo "<tr bgcolor=\"#E6E9EC\">";
}
?>
<td width="21" align="center"><?php echo $id; ?></td>
<td><?php echo $url; ?></td>
<td width="56" align="center"><?php echo $klicks; ?></td>
<td width="95" align="center">
<a href="<?php echo $pfad; ?>?action=edit&id=<?php echo $id; ?>"> Edit </a> |
<a href="<?php echo $pfad; ?>?action=delete&id=<?php echo $id; ?>"> Delete </a>
</td>
</tr>
<?php
} // close while
?>
</table>
<br />
<?php
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 urls vorhanden
} // close action leer
// ---------------------------------- / Config / ---//
if (isset($_POST['submit'])){
$url = mysql_real_escape_string($_POST['url']);
// ------------------------------- Wenn action = new --------------------------------------------------
if ($action == "new" {
$suchen = strpos($url, 'http://';
if(empty($url)){ // wenn keine URL angegeben wurde
$message .= "Bitte Danke eine URL angeben ...<br /><br />\n"; $error = "1";
}
if($suchen === false ){
$message .= "Die URL bitte mit http:// angeben ...<br /><br />"; $error = "1";
}
if($error != "1"{
$eintrag ="INSERT INTO link_count (id, url)
VALUES ('','$url'";
$okay = mysql_query($eintrag, $connection);
if ($okay) { // wenn eingetragen
$count_id = mysql_insert_id();
$generate_link = "<a href="go.php?id=$count_id"> - Linkbezeichnung/titel - </a>";
echo "<h1>Prima ...</h1> \n";
echo "<p>Vielen Dank ...<br /><br /> \n";
echo "Der Eintrag war erfolgreich <br /><br />\n";
echo "Der Link Tag lautet:\n <br /><strong> $generate_link </strong> <br /><br />";
echo "<a href=\"$pfad?action=new\"> noch einen Link eintragen</a><br /><br />\n";
echo "<a href=\"$pfad\"> Uebersicht ...</a></p>\n";
}else {
echo '<p>Der Eintrag war nicht erfolgreich ' .
mysql_error() . '</p>';
}
}
if($error == "1"{
echo "<h1>Error ...</h1><p>$message</p>";
}
} // close action - new
// ------------------------------- Wenn action = edit ----------------------------------------------------
if ($action == "edit" {
if (empty($url)){ // wenn keine URL angegeben wurde
echo "Bitte Danke eine URL angeben ...\n";
}else {
$update = "UPDATE link_count SET url='$url' WHERE id='$id'";
$okay = mysql_query($update, $connection);
if ($okay){ // wenn update erfolgreich
echo "<h1>Prima ...</h1> \n";
echo "<p>Das Update war erfolgreich ...<br /><br />\n";
echo "<a href=\"$pfad\"> Uebersicht ...</a></p>\n";
}else{
echo "<h1>Error ...</h1> \n";
echo '<p>Fehler beim Aktualisieren der Details: ' .
mysql_error() . '</p>';
}
}
} // close action - edit
// ------------------------------- Wenn action = delete --------------------------------------------------------
}
if ($action == "delete" {
$mode = $_GET['mode'];
if(isset($_GET['mode'])){
$loeschen = "DELETE FROM link_count WHERE id='$id'";
$ergebnis = mysql_query($loeschen) or die (mysql_error());
if ($ergebnis) {
echo "<h1>Prima ...</h1> \n";
echo "<p>Die URL wurde erfolgreich geloescht ...<br /><br />\n";
echo "<a href=\"$pfad\"> Uebersicht ...</a></p>\n";
}else{
echo "<h1>Error</h1>\n";
echo "<p>Der Eintrag konnte nicht geloescht werden ...". mysql_error() ."</p>\n";
}
} else {
echo "<h1>Wirklich ...</h1>\n";
echo "<p>Ganz sicher loeschen?<br /><br />\n";
echo "<a href=\"$pad?action=delete&mode=yes&id=$id\">Ja</a>";
echo " <a href=\"$pad\">Nein</a></p> ";
}
}// close action - delete
//------------------------------------- close wenn Abschicken geklickt ------------------------------------
if(($action == "edit" AND !$okay) OR ($action == "new" AND !$okay)){
if(isset($_GET['id'])) {
echo "<h1>Link editieren ...</h1>";
}else{
echo "<h1>Neuen Link eintragen ...</h1>";
}
?>
<form action="" method="post">
<fieldset style="width: 400px">
<label for="url">URL: </label>
<input type="text" name="url" value="<?php echo $url; ?>" style="width: 250px" />
<input type="submit" value=" Eintragen " name="submit" />
</fieldset>
</form>
<?php } // close action
}else{ // wenn nicht eingeloggt - login anzeigen
?>
<form action="" method="post">
<fieldset style="width: 300px">
<label for="user">Username: </label>
<input type="text" name="admin_name" style="width: 250px" />
<label for="passwort">Passwort: </label>
<input type="password" name="admin_pass" style="width: 250px" />
<br /><br />
<input type="submit" value=" Login " name="admin_login" />
</fieldset>
</form>
<?php }
ob_end_flush(); // leert/beendet den Ausgabepuffer
?>
<h3>Grafixx - KlickCounter <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'; ?></h3>
</div>
</body>
</html>
Der Code meiner configincphp:
http://img51.imageshack.us/img51/2399/configincphp.png
Ich hoffe ihr knnt mir helfen. Sry das ich bei manchen den kompletten code gepostet hab, anstatt ein Screen zu machen, aber ich wei nich wie ich mit meinem Programm einen kompletten Screen machen kann. Ich danke euch schonmal im vorraus.
Mit freundlichen Gren
Phill
-
29.11.2011 um 22:00 Uhr
Das was du da zu sehen bekommst sind keine Fehlermeldungen in dem Sinne von - nichts geht mehr, weil fehlerhaft - sondern Hinweise (Notice)...
Bei einem 'echten' Fehler gibt PHP dir ein Error: aus
Die Hinweise ruehren daher, dass in dem Script mit POST / GET Variablen gearbeitet wird, die nicht auf ihr Vorhandensein ueberprueft wurden.
Prinzipiell hat du 2 Moeglichkeiten.
1. in allen php Dateien des Scriptes einfach an oberster Stelle folgendes einfuegen:
<?php error_reporting(E_ALL ^ E_NOTICE); ?>
- loescht das 'Problem' relativ einfach, wenn auch eher unschoen ...
2. alle verwendeten POST / GET Variablen auf ihr Vorhandensein pruefen, kleines Beispiel ...
Anstatt:
$id = mysql_real_escape_string($_GET['id']);
Muesste es heissen:
if (isset($_GET['id'])) $id = mysql_real_escape_string($_GET['id']);
Das Tutorial ist mittlerweile schon etwas aelter, zum damaligen Zeitpunkt, bzw. zur damals aktuellen PHP Version wurden die Hinweise nicht ausgegeben - bei normaler Serverkonfiguration
Das Script sollte eigentlich mit und ohne die 'schicken' Hinweise funktiontuechtig sein, sofern die DB-Angaben stimmen bzw. die DB korrekt angelegt wurde,
was du allem anschein nach korrekt getaetigt hast ...
Liebe Gruesse
Alice
... { signatur } ...