Archiv verlassen und diese Seite im Standarddesign anzeigen : Linkliste v1.0 ist fertig
Hallo PhP Profis
Habe heute meine Linkliste fertig bekommen. Sollte ursprünglich ein Partnerprogramm werden. Das kommt aber auch noch irgendwann.
Features Linkliste
inkl. Counter und Datum
Features Admin
bearbeiten und löschen
Daten werden in MySql gespeichert.
Was sagt Ihr dazu?
http://down1.host.sk/linkliste/index.php
Aber Bitte nicht lachen bin noch kein spezie (Newbie).
Mfg Oli
Du solltest die eingegebene URL auf syntaktische Korrektheit prüfen. :)
und statt des "zurück"-Links gleich die aktualisierte Liste auswerfen.
HAJJEEEE???????
Copyright by Linkliste v1.0 ?????
Copyright by Person oder Firma, aber doch nicht LInkliste
Schau mal, bei Dir kann man auch Bilder posten.
Sorry das war ich.
Hallo hand
das mit dem Bildern ist schon richtig so muss nur noch was an der grösse arbeiten.
Das Copyright wird sofort geändert.
Mfg. Oli
Wie meinst Du das mit syntaktische Korrektheit prüfen.
Musst mir das schon ein wenig mehr erklären.
Bin schon froh als Newbie das diew Linkliste überhaupt erstmal läuft, aber es muss halt noch etwas daran gemacht werden.
Wie kann ich den bei jedem Link die Hits zählen.
Mfg.Oli
Ich würde auch einen Antispammschutz einbauen, sodass eine URL nur einmal auftauchen darf!!!!
Wie gesagt ich bin noch Newbie.
Also brauche ich noch Hilfe. Wie mache ich das mit dem Spam schutz, oder wie kann ich über prüfen ob die Adresse schon vorhanden ist.
Mfg Oli
Die Spalte, wo die URLs gespeichert werden, soll PRIMARY KEY Spalte sein
Bild war Test 1, jetzt gehts eine Stufe weiter, wenn es Dir recht ist.
http://down1.host.sk/linkliste/index.php?start=5.1
Schau mal, hand war wieder bei Dir
Übeerraaaschuung !
ANTIHANDFUNKTION
Damit du Hands seine Spielchen vermeiden kannst baue :
$url = str_replace("<", " ", $url);
$url = str_replace(">", " ", $url);
$titel = str_replace(">", " ", $titel);
$titel = str_replace("<", " ", $titel);
$beschreibung = str_replace(">", " ", $beschreibung);
$beschreibung = str_replace("<", " ", $beschreibung);
ein. Damit vermeidest du das Einbauen, von HTML Tags
Etwas kürzer ginge auch
$str = preg_replace (http://www.php3.de/manual/de/function.preg-replace.php)("/(<|>)/","",$str);
oder
$str = strip_tags (http://www.php3.de/manual/de/function.strip-tags.php)($str)
Nachtrag:
Ich habs eben auch gesehen. hand, du kommst ja auf Ideen, wie du den Leuten die Mängel aufzeigst ...
Wo muss der code den eingebaut werden.
Das klappt bei mir einfach nicht.
Mfg.Oli
P.S. Danke für den Tip. Hand zeigt einen gleich wieder die grenzen auf.:(
Du muss dann natürlich anstaat url, beschreibung, titel die Feldernamen dfeines Formular nehemen. Und auf jeden Fass die Groß und Kleinschreibung beachten.
Das gaze baust du vor der Einspeisung der Daten in die Datenbank.
Am besten gleich nach <?php
$urlname = str_replace("<", " ", $urlname);
$urlname = str_replace(">", " ", $urlname);
$url = str_replace(">", " ", $url);
$url= str_replace("<", " ", $url);
$beschreibung = str_replace(">", " ", $beschreibung);
$beschreibung = str_replace("<", " ", $beschreibung);
Vor dem Speichern in die Datenbank.
archie, wir haben uns überschnitten
Nix gegen deine Vorschlag archie, aber sollten wir oli nicht die kürzere Variante anbieten?
$urlname = preg_replace("/(<|>)/","",$urlname);
$url = preg_replace("/(<|>)/","",$url);
$beschreibung = preg_replace("/(<|>)/","",$beschreibung);
jo deine Variante ist net schlecht.
if (strlen($url) < 2)
währe auch nicht schlecht
Ich hatte es nach if($submit<>"") versucht.
Gut das es das Forum gibt und die vielen helfer.
funzt jetzt auch
Mfg.Oli
man sollte vielleicht die url noch überprüfen (format), am besten nimmst dafür reguläre ausdrücke.
Original geschrieben von archie
[B] ANTIHANDFUNKTION ....
Viel zu kompliziert Jungs es geht auch viel einfacher:
http://www.php.net/manual/de/function.htmlspecialchars.php
$titel = htmlspecialchars($titel);
$beschreibung = htmlspecialchars($beschreibung);
// oder gleich direkt
print "<table border=0 width=\"100%\" align=\"center\">
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Titel</b></font></td>
<td><font face=Verdana size=2> ".htmlspecialchars($titel)."</font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>URL</b></font></td>
<td><font face=Verdana color=#000099 size=2>
<a href="http://www.afco-webservice.net/"target="_blank">$url</a></font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Beschreibung</b></font></td>
<td><font face=Verdana size=2> ".htmlspecialchars($beschreibung)."</font></td>
</tr><br>
</table><br>
";
hand hats wieder auf den Punkt getroffen.
Warum sind wir nicht so schlau wie er? hmm http://mitglied.lycos.de/mkjack/icons/confused2.gif
Schau mal, hand war wieder bei Dir
Übeerraaaschuung !
Hehe. Da hast du Recht. Hand ist nicht von der einfachen Sorte.
Der Forummaniak hat das echt drauf.
Will auch so werden, aber erst, wenn ich mit meinem Studium angefangen habe :D
Langsam geht garnichts mehr.
Habe es genauso versucht wie Du es beschrieben hast geht aber nicht.
Wo soll der Code den rein
In die Tabelle bei der Ausgabe oder wo die einträgfe rein kommen. ( <form method="post" action="<? echo $PHPSELF ?>">)
Mfg Oli :dontknow:
Vielleicht hast Du die Botschaft nicht gesehen, die ich hinterlassn habe. Wenn Du auf den Link klickst, bekommst Du einen SQL-Fehler
http://down1.host.sk/linkliste/?start=9999999999999
Die Variable start wird manuell mit einem zu großen Wert belegt. Da mußt Du vermutlich noch eine Abfrage zu Beginn des Skripts einfügen.
Ist der angeforderte Seitenoffset $start > als die Anzahl aller Datensätze, setze die Variable $start auf die Anzahl aller Datensätze. Ist ja nur ein Beispiel.
// In $maxrecs steht die Anzahl aller Datensätze
if ($start > $maxrecs ) {
$start = $maxrecs;
}
Wen meinst Du mit "genauso versucht wie Du es".
Mich?
Wenn ja, dann ...
Irgendwo in Deinem Skript gibst Du vermutlich über eine Variable über print oder echo, was aber belanglos ist, den Titel aus. Wie die Variable heißt weiß ich nicht. Nehemn wir an sie heißt $gummi. In der Varaibale $gummi steht der Titel.
print "<td>$gummi</td>....";
Das änderst Du auf
print "<td>".htmlspecialchars($gummi)."</td>....";
Dasselbe für die Variable die mit der Beschreibung gefüllt ist.
Hallo Hand
ich meinte Dich im letzten Posting.
Könntest Du mir villeicht mal zeigen wo ich das eintragen soll.
Komme absolut nicht mehr klar.
Habe dir den Code mal gepostet.
Mfg Oli
<?
/*************************************
Script: Linkliste v1.0
Programmierer: Oliver Börner
Homepage: http://boerner-design.de
Support: http://boerner-design.de (Forum)
Lizenz siehe readme.txt
**************************************/
/*
In dieser Datei sind keine Veränderungen nötig
*/
$urlname = preg_replace("/(<|>)/","",$urlname);
$url = preg_replace("/(<|>)/","",$url);
$beschreibung = preg_replace("/(<|>)/","",$beschreibung);
$titel = htmlspecialchars($titel);
$beschreibung = htmlspecialchars($beschreibung);
include('dbconnect.php');
$db = mysql_connect("$host","$user","$password");
mysql_select_db("$database",$db) or die ("Keine Verbindung zur Datenbank. Überprüfen Sie Ihre Einstellungen in der dbconnect.php!");
?>
<body bgcolor="#ededed">
<html>
<head>
<title>
Linkliste v1.0
</title>
<style>
A:LINK { TEXT-DECORATION: none; color= blue
}
A:ACTIVE { TEXT-DECORATION: none; color= rot
}
A:VISITED { TEXT-DECORATION: none; color= #000066
}
</style>
</head>
<body bgcolor=#ededed text=#000000>
<table border=0 width=600 bgcolor="#000066" cellspacing=2 border=0 align=center>
<tr>
<td width=500></td>
</tr>
<tr>
<td align="right"><? include("banner.php");?></td>
</tr>
<tr>
<td align="center">
<table border=0 width="600" bgcolor="#ededed" align="center">
<tr bgcolor="#FFFFFF">
<td align=center colspan=2><font face=Verdana color=#000099 size=5><b>Linkliste</b></font>
<td align=right colspan=2><font face=Verdana color=#000099 size=1><? $dat=date("d-m-Y");echo $dat;?><br><? $dat=date("h:m:s");echo $dat;?>
<br><? include ('counter.php')?></font></td>
</tr>
<tr>
<td>
<?
$select = mysql_query("select * from $table");
$reihen = mysql_num_rows($select);
$zeigen = floor($reihen / 5);
if(!$start) { $start = 0.1; }
$result = mysql_query("SELECT * FROM $table limit $start,5",$db);
if($start > 0.1) {
$zurueck = $start - 5;
echo "<a href=\"$PHPSELF?start=$zurueck\"><font face=Verdana size=1><< Zurück</a>";
}
for($i = 0; $i <= $zeigen; $i++) {
echo " <a href=\"$PHPSELF?start=$n\"><font face=Verdana size=1>$i</a> ";
$n += 5;
}
$weiter = $start + 5;
if($reihen > $weiter) {
echo "<a href=\"$PHPSELF?start=$weiter\"><font face=Verdana size=1>Weiter >></a></right>";
}
?>
<? while ($daten = mysql_fetch_array($result)) {
?>
<table border=0 width=\"100%\" align=\"center\">
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Titel</b></font></td>
<td><font face=Verdana size=2> <? echo $daten[urlname] ?></font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>URL</b></font></td>
<td><font face=Verdana color=#000099 size=2>
<? echo '<a href="'.$daten[url].'"target="_blank">'.$daten[url].'</a>'; ?></font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Beschreibung</b></font></td>
<td><font face=Verdana size=2> <? echo ($daten[beschreibung]) ?></font></td>
</tr><br>
</table><br><? }$select = mysql_query("select * from $table");
$reihen = mysql_num_rows($select);
$zeigen = floor($reihen / 5);
if(!$start) { $start = 0.1; }
$result = mysql_query("SELECT * FROM $table limit $start,5",$db);
if($start > 0.1) {
$zurueck = $start - 5;
echo "<a href=\"$PHPSELF?start=$zurueck\"><font face=Verdana size=1><< Zurück</a>";
}
for($i = 0; $i <= $zeigen; $i++) {
echo " <a href=\"$PHPSELF?start=$n\"><font face=Verdana size=1>$i</a> ";
$n += 5;
}
$weiter = $start + 5;
if($reihen > $weiter) {
echo "<a href=\"$PHPSELF?start=$weiter\"><font face=Verdana size=1>Weiter >></a></right>";
} ?>
<?
if($submit<>""){
$db = mysql_connect("$host","$user","$password");
mysql_select_db("$database", $db);
$sql = "INSERT INTO $table (urlname,beschreibung,url) VALUES ('$urlname','$beschreibung','$url')";
$result = mysql_query($sql, $db);
echo "<br>Sie wurden soeben in die Linkliste eingetragen! Vielen Dank für Ihren Besuch!<br><br>";
echo '<a href="index.php">"Zurück"</a>';
}
else {
?> <br><div align="center">
<form method="post" action="<? echo $PHPSELF ?>">
<table width="200" border="0" cellspacing="0" bordercolor="#000066">
<tr>
<td height="23">
<div align="center"><font face=Verdana size=2><b>Eintragen</b><br>
Titel:<br>
<input type="text" name="urlname" value="<? echo ($urlname) ?>" size="30">
Beschreibung:<br>
<input type="text" name="beschreibung" value="<? echo ($beschreibung) ?>" size="30">
Url:<br>
<input type="text" name="url" value="http://<? echo $url ?>" size="30">
<br>
<input type="submit" name="submit" value="Abschicken">
</div>
</td>
</tr>
</table>
</form>
<?
}
?>
</div>
<br>
<tr><td><b><font face="Arial, Helvetica, sans-serif" color="#000099"size="1">Copyright by
<A href="http://boerner-design.de"target="_blank">Webportal</A></font></b>
</td></tr>
</body>
</html>
Habs so eingefügt funzt auch.
<table border=0 width=\"100%\" align=\"center\">
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Titel</b></font></td>
<td><font face=Verdana size=2> <? echo htmlspecialchars($daten[urlname]) ?></font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>URL</b></font></td>
<td><font face=Verdana color=#000099 size=2>
<? echo '<a href="'.$daten[url].'"target="_blank">'.$daten[url].'</a>'; ?></font></td>
</tr>
<tr>
<td width=\"35%\"><font face=Verdana color=#000099 size=2><b>Beschreibung</b></font></td>
<td><font face=Verdana size=2> <? echo htmlspecialchars($daten[beschreibung]) ?></font></td>
</tr>
Hab aber noch eine Frage an Hand
Wie meintest Du das mit der Variable Start.
if ($start > $maxrecs ) {
$start = $maxrecs;
}
weis nicht so recht was anzufangen damit, oder muss ich das noch hier mit einsetzen.
$zeigen = floor($reihen / 5);
<<< hier rein >>>
if(!$start) { $start = 0.1; }
$result = mysql_query("SELECT * FROM $table limit $start,5",$db);
if($start > 0.1) {
$zurueck = $start - 5;
echo "<a href=\"$PHPSELF?start=$zurueck\"><font face=Verdana size=1><< Zurück</a>";
}
for($i = 0; $i <= $zeigen; $i++) {
echo " <a href=\"$PHPSELF?start=$n\"><font face=Verdana size=1>$i</a> ";
$n += 5;
}
$weiter = $start + 5;
if($reihen > $weiter) {
echo "<a href=\"$PHPSELF?start=$weiter\"><font face=Verdana size=1>Weiter >></a></right>";
}
Danke im Voraus
Mfg Oli
|
|