PHP 5 ... Scriptproblem
Hi ,
ich habs jetzt hinbekommen , die klicks werden nun unter PHP5 gezählt und auch richtig ausgegeben . Es musste nur die Get Variable angepasst werden die die Ausgabe Steuert . Aber das nächste Problem das ich nun habe ist das ich nicht mehr in den Adminbereich komme ... Ich hängt hier mal das Script an und hoffe das wer mir sagen kann welche Variablen ich ändern muss damit es wieder geht .
Ich danke euch für diese große unterstützung und vorallem das ihr das kostenlos getan habt ! Ohne euch hier wäre die HP nur noch schrott ...
MFG MM
ich habs jetzt hinbekommen , die klicks werden nun unter PHP5 gezählt und auch richtig ausgegeben . Es musste nur die Get Variable angepasst werden die die Ausgabe Steuert . Aber das nächste Problem das ich nun habe ist das ich nicht mehr in den Adminbereich komme ... Ich hängt hier mal das Script an und hoffe das wer mir sagen kann welche Variablen ich ändern muss damit es wieder geht .
Code: Alles auswählen
<?php
function login(){
global $ad_name, $pre;
print "Login<br>
<form method=\"post\" action=\"$ad_name\">
<table cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><input type=\"hidden\" name=\"action\" value=\"show\">User</td>
<td><input type=\"text\" name=\"username\"></td>
</tr>
<tr>
<td>Passwort </td>
<td><input type=\"password\" name=\"password\"></td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" value=\"Weiter\"></td>
</tr>
</table>
</form>";
}
session_start();
include "config.php";
if ($user == $username && $pass == $password){
session_register("user");
session_register("pass");
}
print "<div align=\"center\">";
if ($_SESSION[user] == $user && $_SESSION[pass] == $pass){
$connect = mysql_connect("localhost", $benutzer, $passwort );
if (! $connect) die("Keine Verbindung zu MySQL");
mysql_select_db($db, $connect) or die ("Konnte Datenbank \"$db\" nicht öffnen: ".mysql_error());
if ($action == "delete") {
mysql_query("DELETE FROM $tabelle WHERE ID='$id' LIMIT 1");
print " <font color=\"red\">Eintrag '$id' gelöscht!</font>";
}
if ($_GET[action] == "new") {
mysql_query("INSERT INTO $tabelle (id, klicks, url) VALUES ('$id', '$_POST[klicks]', '$_POST[url]')");
print " <font color=\"green\">Eintrag eingefügt!</font>";
}
if ($_GET[action] == "optimize") {
mysql_query("OPTIMIZE TABLE $tabelle");
print "'$tabelle' optimiert!";
}
if ($_GET[action] == "edit_form") {
$sql = "SELECT * FROM $tabelle WHERE id = $id";
$sql = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
print "<br><form action=\"$ad_name$pre=update&id=$id&PHPSESSID=".session_id()."\" method=\"post\">
URL: <input value=\"$row[url]\" name=\"url\" type=\"text\" size=\"30\" maxlength=\"250\">
Klicks: <input name=\"klicks\" type=\"text\" value=\"$row[klicks]\" size=\"3\" maxlength=\"10\">
<input type=\"submit\" value=\"Ändern\">
</form>";
}
if ($_GET[action] == "update") {
mysql_query("UPDATE $tabelle SET klicks = '$klicks', url = '$url' WHERE id = $id");
print "Eintrag '$id' geändert!";
}
if ($_GET[action] == "neu") {
print "<br><form action=\"$ad_name$pre=new&PHPSESSID=".session_id()."\" method=\"post\">
URL: <input name=\"url\" type=\"text\" size=\"30\" maxlength=\"250\">
Klicks: <input name=\"klicks\" type=\"text\" value=\"0\" size=\"3\" maxlength=\"10\">
<input type=\"submit\" value=\"Eintragen\">
</form>";
}
if (empty($_GET[orderby])) {
$orderby = "id";
}
$sql = "SELECT * FROM $tabelle ORDER BY $orderby DESC";
$sql = mysql_query($sql);
if (mysql_num_rows($sql) > 0){
print "<table cellpadding=\"0\">
<tr>
<td width=\"40\" bgcolor=\"$ad_color1\"><strong><a href=\"$ad_name$pre=$_GET[action]&orderby=id&PHPSESSID=".session_id()."\">ID</a></strong></td>
<td width=\"350\" bgcolor=\"$ad_color1\"><strong>URL</strong></td>
<td width=\"60\" bgcolor=\"$ad_color1\"><strong><a href=\"$ad_name$pre=$_GET[action]&orderby=klicks&PHPSESSID=".session_id()."\">Klicks</a></strong></td>
<td width=\"80\" bgcolor=\"$ad_color1\"><strong>Aktion</strong></td>
</tr>";
while( $row = mysql_fetch_assoc($sql) ) {
$id = $row['id'];
$klicks = $row['klicks'];
$url = $row['url'];
$color = ($i % 2) ? $ad_color2 : $ad_color3;
$i++;
print " <tr>
<td bgcolor=\"$color\"><strong>$id</strong></td>
<td bgcolor=\"$color\"><a href=\"$url\" target=\"_blank\">";
if (strlen($url) > 50) {
$url = substr($url, 0, 50)."...";
}
print " $url</a></td>
<td bgcolor=\"$color\">$klicks</td>
<td bgcolor=\"$color\"><a href=\"$ad_name$pre=delete&id=$id&PHPSESSID=".session_id()."\">[delete]</a>
<a href=\"$ad_name$pre=edit_form&id=$id&PHPSESSID=".session_id()."\">[edit]</a></td>
</tr>";
}
print "</table>";
}
else {
print "Keine Einträge vorhanden!";
}
print "<br><a href=\"$ad_name$pre=neu&PHPSESSID=".session_id()."\">[neuen Eintrag einfügen]</a>
<a href=\"$ad_name$pre=optimize&PHPSESSID=".session_id()."\">[Tabelle optimieren]</a>
<a href=\"$ad_name?PHPSESSID=".session_id()."\">[start]</a>
<br>";
mysql_close();
}
else {
login();
}
print "<br>stuff24_cc by hacky || <a href=\"http://www.stuff24.de\" target=\"_blank\">stuff24.de</a></div>"; //Bitte nicht entfernen!
?>
MFG MM
- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
Also, an deiner stelle würd ich das script wegschmeißen....
Wenn nicht, solltest du dich mal mit http://de.php.net/register_globals auseinandersetzen
Olli
Wenn nicht, solltest du dich mal mit http://de.php.net/register_globals auseinandersetzen

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Das betrifft im Prinzip das ganze Script. An register_globals ist im Prinzip nichts Schlimmes, solange man sich darüber bewusst ist, dass es aktiv ist und entsprechend programmiert.
Das weitaus größere Problem in deinem Code sind die Sicherheitslöcher, die durch das nicht-validieren btw. nicht-escapen der Benutzereingaben entstehen (SQL Injektion). Bevor du dieses Script also online stellst, würde ich mir auf jeden Fall den PHP Security Guide durchlesen und die Sicherheitslücken in deinem Code schließen. Ehrlich gesagt würde ich dir auch empfehlen, das Script wegzuschmeißen, da es weitaus mehr Arbeit ist, es anzupassen, als das ganze (schöner) neu zu schreiben.
Das weitaus größere Problem in deinem Code sind die Sicherheitslöcher, die durch das nicht-validieren btw. nicht-escapen der Benutzereingaben entstehen (SQL Injektion). Bevor du dieses Script also online stellst, würde ich mir auf jeden Fall den PHP Security Guide durchlesen und die Sicherheitslücken in deinem Code schließen. Ehrlich gesagt würde ich dir auch empfehlen, das Script wegzuschmeißen, da es weitaus mehr Arbeit ist, es anzupassen, als das ganze (schöner) neu zu schreiben.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
hmm , gut ok . Aber bevor ich jetzt eins einbaue das genauso ist frag ich mal hier ob den einer ein geeigenetes Counterscript kennt , das diese Lücken nicht hat und unter PHP5 läuft ? Es sollte einfach Links ( Downloads , Verlinkungen , Seitenaufrufe ) zählen können und diese dann auch an einer gewünschten Stelle der Seite ausgeben können .
MFG MM
PS : Da es doch recht viel Arbeit ist es auszutauschen wäre mir natürlich ein "Neuschreiben" des Scripts lieber , das mit der gleichen Datenbank auskommt . Nur hab ich da wieder das nächste Problem das ich mich damit nicht auskenne ...
MFG MM
PS : Da es doch recht viel Arbeit ist es auszutauschen wäre mir natürlich ein "Neuschreiben" des Scripts lieber , das mit der gleichen Datenbank auskommt . Nur hab ich da wieder das nächste Problem das ich mich damit nicht auskenne ...
Hi ,
von einer Minute auf die andere will mein Klickcounter nicht mehr wie
er soll ... Er zählt zwar die Klicks in der Datenbank , aber er leitet nich
mehr auf die angeklickte Seite weiter ... Ich stell mal den Code ein in
der Hoffnun einer kann mir sagen woran es denn liegen könnte ... Ich
hab schon ein paar codeumstellungen versucht aber da tut sich nix .
MFG MM
PS : Als Fehlermeldung erscheint :
von einer Minute auf die andere will mein Klickcounter nicht mehr wie
er soll ... Er zählt zwar die Klicks in der Datenbank , aber er leitet nich
mehr auf die angeklickte Seite weiter ... Ich stell mal den Code ein in
der Hoffnun einer kann mir sagen woran es denn liegen könnte ... Ich
hab schon ein paar codeumstellungen versucht aber da tut sich nix .
Code: Alles auswählen
<!-- stuff24_clickcounter by Hacky
visit http://www.stuff24.de to download this Script -->
<?php
include "stuff24_cc/config.php";
$url = $_GET['url'];
$url2 = $_GET['url2'];
$connect = mysql_connect( "localhost", $benutzer, $passwort );
if ( ! $connect ) die( "Keine Verbindung zu MySQL" );
mysql_select_db( $db, $connect ) or die ( "Konnte Datenbank \"$db\" nicht öffnen: ".mysql_error() );
if (isset($url2)) {
$abc = "SELECT * FROM $tabelle WHERE url = '".mysql_real_escape_string($url2). "'";
$abc = mysql_query($abc);
$row = mysql_fetch_assoc($abc);
print $row['klicks'];
}
if (isset($url)) {
$sql = "SELECT * FROM $tabelle WHERE url='".mysql_real_escape_string($url). "'";
$sql = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
$id = $row['id'];
$klicks = $row['klicks'];
$url = $row['url'];
if (!isset($klicks)) {
if ($auto_in == "1") {
mysql_query("INSERT INTO cc_links (id, klicks, url) VALUES ('$id', '0', '" . mysql_real_escape_string($url). "')");
print "Neuer Eintrag! <a href=\"$url\">Weiter></a><br>";
}
else {
print "Falsche url übergeben! $url existiert nicht in der Datenbank.<a href=\"javascript:history.back();\">[Zurück]</a>";
}
}
else {
$neu_klicks = $klicks + 1;
$update = "UPDATE $tabelle SET klicks = $neu_klicks WHERE url = '" . mysql_real_escape_string($url). "'";
$update = mysql_query($update);
header("Location:$url");
/*print "<script language=\"javascript\">
self.location.href='$_GET[url]'
</script>";*/
}
}
mysql_close();
?>
PS : Als Fehlermeldung erscheint :
Notice: Undefined index: url2 in /www/htdocs/mstspa/MSTS-Page/count.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/mstspa/MSTS-Page/count.php:3) in /www/htdocs/mstspa/MSTS-Page/count.php on line 43
Anscheinend wird $_GET['url2'] nicht mehr übergeben.
kA ob das schlimm ist(Kenne das Script nicht), schreib mal am Anfang
hin.
kA ob das schlimm ist(Kenne das Script nicht), schreib mal am Anfang
Code: Alles auswählen
error_reporting(1+2+4+8);
Mit Freundlichen Grüßen, Valerion.
Administrator von http://www.aquarion.org
Bitte postet PHP-Codes immer immer mit
Administrator von http://www.aquarion.org
Bitte postet PHP-Codes immer immer mit
Code: Alles auswählen
und nicht mit [code]!