php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2005, 13:03  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard weiss nit mehr weiter :(

huhu alle zusammen...
habe mal wieder ein kleines problem...
Hab mein Usersystem nun schon ein stückchen weiter...
Aber bei den gästebüchern hackt es ein wenig.. ich hoffe ihr könnt mir da weiterhelfen!
Ich will für jeden einzelnen user ein gb machen... hab ich auch schon so weit. Jeder User hat eine Datei: $username_gb.txt!
so in dieser datei sollen die einträge auch gespeichert werden. aber das macht er leider nicht... zeige euch mal die dateien!

user_gb.php
Code:
<?php
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>
<script language="JavaScript">
function set(Zeichen){
document.Formular.nachricht.value=document.Formular.nachricht.value + Zeichen
}
</script>

<script language="JavaScript">
<!--



function chkFormular()
{
 if(document.Formular.name.value == "")
  {
   alert("Bitte einen Name angeben!");
   document.Formular.name.focus();
   return false;
  }
 if(document.Formular.email.value.indexOf('@'&&'.'&&'') == -1)
  {
   alert("E-Mail Adresse ungültig! Wenn du schon eine angibst, dann eine richtige!");
   document.Formular.email.focus();
   return false;
  }
 if(document.Formular.homepage.value.indexOf('http://') == -1)
  {
   alert("Die Homepage MUSS mit http:// anfangen!");
   document.Formular.homepage.focus();
   return false;
  }
 if(document.Formular.nachricht.value == "")
  {
   alert("Bitte eine Nachricht eingeben!");
   document.Formular.nachricht.focus();
   return false;
  }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<table width="390" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>[img]img/inhalt/gb.jpg[/img]</td>
  </tr>
  <tr>
    <td background="img/inhalt/bg.jpg"><table width="97%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="380" valign="top"> <table width="98%" border="0" align="center" cellpadding="2" cellspacing="2" style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; PADDING-BOTTOM: 1px; BORDER-LEFT: #cccccc 1px solid; COLOR: #000000; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid;">
              <tr> 
                <td align="right"><font color="#FF9900">Profil</font> 
                  | <font color="#FF9900">G&auml;stebuch</font><font color="#FF9900"> 
                  </font>| <font color="#FF9900">Galerie</font></td>
              </tr>
            </table>
            <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; PADDING-BOTTOM: 1px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #cccccc 1px solid;">
              <tr> 
                <td><div align="center"><a href="index.php?action=gb_post_user&username=<?php print $username; ?>">Ins 
                    G&auml;stebuch eintragen</a></div></td>
              </tr>
            </table>
            
          </td>
        </tr>
      </table></td>
  </tr>
  <tr>
    <td>[img]img/inhalt/i_unten.gif[/img]</td>
  </tr>
</table>


<table width="390" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td>[img]img/inhalt/gb.jpg[/img]</td>
  </tr>
  <tr> 
    <td background="img/inhalt/bg.jpg"><table width="97%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="380" valign="top">

 
              <script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
              <?
include("config.php");
?>
              <?
$fp = file("kunden/$username_gb.txt","r");
$fp = array_reverse($fp);

$file_line = file("kunden/$username_gb.txt");
$total_lines = count($file_line);

for ($index = 0; $index < $total_lines; $index++)
{
$line = explode("|",$fp[$index]);

$name[$index]=$line[0];
$email[$index]=$line[1];
$homepage[$index]=$line[2];
$nachricht[$index]=$line[3];
$datum[$index]=$line[4];
$zeit[$index]=$line[5];

}
?>
              <?
$id = ($total_lines-$entriesPerPage*$seite)+1;
for ($i=$entriesPerPage*$seite;$i<$entriesPerPage*$seite+$entriesPerPage;$i++)
{
$id--;
if ($i <= $total_lines-1)
{
?>
              <?
include("template.php");
?>
              

              <?
}
else
{
echo "";
}
}
?>
            </p>
            <table>
              <tr> 
                <?
$anzahl_pages = ceil($total_lines/$entriesPerPage);

for ($e = 0; $e < $anzahl_pages; $e++)
{
$h++;
?>
                <td>['; return true" onmouseout="window.status=''; return true"><? echo $h; ?>] 
                </td>
                <?
}


?>
              </tr>
            </table></td>
        </tr>
      </table></td>
  </tr>
  <tr> 
    <td>[img]img/inhalt/i_unten.gif[/img]</td>
  </tr>
</table>
gb_eintragen_user.php

Code:
<?php
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<?
include("config.php");
?>
<table width="390" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>[img]img/inhalt/gb.jpg[/img]</td>
  </tr>
  <tr>
    <td background="img/inhalt/bg.jpg"><table width="97%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="380" valign="top">

<?php
include("config.php");
$ip = getenv("REMOTE_ADDR");
$sperredatei = fopen("sperre.dat","r+");
$loadip = fread($sperredatei,filesize("sperre.dat"));
fclose($sperredatei);

if ($ip == $loadip && $ipsperreak == 1){
echo "Du hast gerade erst einen Eintrag geschrieben!!";
}
else
{
$sperredatei = fopen("sperre.dat","w+");
fputs($sperredatei,$ip);
fclose($sperredatei);

if ( $mailak == 1)
{
@mail($an, $betreff2, $text, "From: ".$absender);
}

if ($htmlak == 0)
{
$nachricht=strip_tags($nachricht);
$name= strip_tags($name);
$email= strip_tags($email);
$homepage= strip_tags($homepage);
}
$nachricht = stripslashes($nachricht);
$nachricht=str_replace("\r\n","
",$nachricht);
$nachricht=str_replace("|","|",$nachricht);

$nachricht = ereg_replace(":P", "<img src=$grafiken/zunge.gif>", $nachricht);
$nachricht = ereg_replace(":grrr:", "<img src=$grafiken/boese.gif>", $nachricht);
$nachricht = ereg_replace(":nanana:", "<img src=$grafiken/nanana.gif>", $nachricht);
$nachricht = ereg_replace(":harg:", "<img src=$grafiken/zaehne.gif>", $nachricht);
$nachricht = ereg_replace(":blabla:", "<img src=$grafiken/blabla.gif>", $nachricht);
$nachricht = ereg_replace(":heul:", "<img src=$grafiken/heul.gif>", $nachricht);
$nachricht = ereg_replace(":traurig:", "<img src=$grafiken/traurig.gif>", $nachricht);
$nachricht = ereg_replace(":D", "<img src=$grafiken/lachen.gif>", $nachricht);
$nachricht = ereg_replace(":0", "<img src=$grafiken/staunen.gif>", $nachricht);
$nachricht = ereg_replace(":panik:", "<img src=$grafiken/panik.gif>", $nachricht);
$nachricht = ereg_replace(":)", "<img src=$grafiken/grins.gif>", $nachricht);
$nachricht = ereg_replace(";)", "<img src=$grafiken/zwinker.gif>", $nachricht);
$nachricht = ereg_replace(":frag:", "<img src=$grafiken/frag.gif>", $nachricht);

$datum = date("d.m.Y");
$zeit = date("H:i");

$daten = $name."|".$email."|".$homepage."|".$nachricht."|".$datum."|".$zeit;

$datei = fopen("kunden/$username_gb.txt","a");
fwrite($datei, $daten."\n");
fclose($datei);
echo "Danke für Ihren Eintrag auf unserer Seite!
";
echo "Sie werden in $weiterleitung Sekunden weitergeleitet.";
echo "<meta http-equiv='refresh' content='$weiterleitung;URL=http://www.grayhounders.de/development/index.php?action=user_gb&username=$username'>";

}

?></p>
            </td>
        </tr>
      </table></td>
  </tr>
  <tr>
    <td>[img]img/inhalt/i_unten.gif[/img]</td>
  </tr>
</table>
Er nimmt einfach nicht die Dateien $username_gb.txt an. Anstatt erstellt er eine eigene Datei die heisst: .txt
mehr nicht.
Und dort werden auch alle Einträge gespeichert. Also bei jedem User werden die gleichen Einträge angezeigt...

Ich hoffe ihr könnt mir helfen
Ich verzweifle noch....
?>[/php]

Achja was ich vergessen habe.
Die Variable wird über den Browser abgegeben:
index.php?action=user_gb&username=$username....
d4rki ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.04.2005, 13:06  
Erfahrener Benutzer
 
Registriert seit: 11.07.2004
Beiträge: 269
function
function eine Nachricht über ICQ schicken
Standard

steck das ganzemal in dann bekommt man wenigstns etws übersicht
__________________
Es ist ein großer Trost, andere dort scheitern zu sehen, wo man selbst gescheitert ist. (William Somerset Maugham)
function ist offline  
Alt 19.04.2005, 13:07  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

1. [php]-tags anstatt der codetags
2.
error-reporting
Zum testen von Scripts setzt man normalerweise am anfang des scripts (oder direkt in einer config-datei die immer Includet wird) [php:eaf399cc88]error_reporting(E_ALL); [/php:eaf399cc88] damit werden dann alle Fehler ausgegeben.

3.
register_globals
http://www.phpfriend.de/ftopic26569.html
-> lesen, verstehen, umsetzen und nicht register_globals auf on stellen !!


mfg
robo47
robo47 ist offline  
Alt 19.04.2005, 13:08  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard

php code von user_gb.php
PHP-Code:
              <?
include("config.php");
?>
              <?
$fp 
file("kunden/$username_gb.txt","r");
$fp array_reverse($fp);

$file_line file("kunden/$username_gb.txt");
$total_lines count($file_line);

for (
$index 0$index $total_lines$index++)
{
$line explode("|",$fp[$index]);

$name[$index]=$line[0];
$email[$index]=$line[1];
$homepage[$index]=$line[2];
$nachricht[$index]=$line[3];
$datum[$index]=$line[4];
$zeit[$index]=$line[5];

}
?>
              <?
$id 
= ($total_lines-$entriesPerPage*$seite)+1;
for (
$i=$entriesPerPage*$seite;$i<$entriesPerPage*$seite+$entriesPerPage;$i++)
{
$id--;
if (
$i <= $total_lines-1)
{
?>
              <?
include("template.php");
?>
              

              <?
}
else
{
echo 
"";
}
}
?>
            </p>
            <table>
              <tr> 
                <?
$anzahl_pages 
ceil($total_lines/$entriesPerPage);

for (
$e 0$e $anzahl_pages$e++)
{
$h++;
?>
                <td>[[url="index.php?action=user_gb&username=<?php print $username?>&seite=<? echo $h-1?>"]'; return true" onmouseout="window.status=''; return true"><? echo $h?>[/url]] 
                </td>
                <?
}


?>
php code gb_eintragen_user.php

PHP-Code:
<?
include("config.php");
?>
<table width="390" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>[img]img/inhalt/gb.jpg[/img]</td>
  </tr>
  <tr>
    <td background="img/inhalt/bg.jpg"><table width="97%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="380" valign="top">

<?php
include("config.php");
$ip getenv("REMOTE_ADDR");
$sperredatei fopen("sperre.dat","r+");
$loadip fread($sperredatei,filesize("sperre.dat"));
fclose($sperredatei);

if (
$ip == $loadip && $ipsperreak == 1){
echo 
"Du hast gerade erst einen Eintrag geschrieben!!";
}
else
{
$sperredatei fopen("sperre.dat","w+");
fputs($sperredatei,$ip);
fclose($sperredatei);

if ( 
$mailak == 1)
{
@
mail($an$betreff2$text"From: ".$absender);
}

if (
$htmlak == 0)
{
$nachricht=strip_tags($nachricht);
$namestrip_tags($name);
$emailstrip_tags($email);
$homepagestrip_tags($homepage);
}
$nachricht stripslashes($nachricht);
$nachricht=str_replace("\r\n","
"
,$nachricht);
$nachricht=str_replace("|","|",$nachricht);

$nachricht ereg_replace(":P""<img src=$grafiken/zunge.gif>"$nachricht);
$nachricht ereg_replace(":grrr:""<img src=$grafiken/boese.gif>"$nachricht);
$nachricht ereg_replace(":nanana:""<img src=$grafiken/nanana.gif>"$nachricht);
$nachricht ereg_replace(":harg:""<img src=$grafiken/zaehne.gif>"$nachricht);
$nachricht ereg_replace(":blabla:""<img src=$grafiken/blabla.gif>"$nachricht);
$nachricht ereg_replace(":heul:""<img src=$grafiken/heul.gif>"$nachricht);
$nachricht ereg_replace(":traurig:""<img src=$grafiken/traurig.gif>"$nachricht);
$nachricht ereg_replace(":D""<img src=$grafiken/lachen.gif>"$nachricht);
$nachricht ereg_replace(":0""<img src=$grafiken/staunen.gif>"$nachricht);
$nachricht ereg_replace(":panik:""<img src=$grafiken/panik.gif>"$nachricht);
$nachricht ereg_replace(":)""<img src=$grafiken/grins.gif>"$nachricht);
$nachricht ereg_replace(";)""<img src=$grafiken/zwinker.gif>"$nachricht);
$nachricht ereg_replace(":frag:""<img src=$grafiken/frag.gif>"$nachricht);

$datum date("d.m.Y");
$zeit date("H:i");

$daten $name."|".$email."|".$homepage."|".$nachricht."|".$datum."|".$zeit;

$datei fopen("kunden/$username_gb.txt","a");
fwrite($datei$daten."\n");
fclose($datei);
echo 
"Danke für Ihren Eintrag auf unserer Seite!
"
;
echo 
"Sie werden in $weiterleitung Sekunden weitergeleitet.";
echo 
"<meta http-equiv='refresh' content='$weiterleitung;URL=http://www.grayhounders.de/development/index.php?action=user_gb&username=$username'>";

}

?>
d4rki ist offline  
Alt 19.04.2005, 13:09  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

abgesehen von meinem letzten post, es gibt auch ne editierfunktion :P
robo47 ist offline  
Alt 19.04.2005, 13:35  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard

hab mir das durchgelesen...
trotzdem komm ich zu keinem ergebnis
d4rki ist offline  
Alt 19.04.2005, 13:42  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

was soll hier die variable sein?
$fp = file("kunden/$username_gb.txt","r");

$username ?
$username_gb ?
trenn das mal sauber ab und was sagt ein var_dump($username_gb); in der zeile davor? steht in der variable was drin?

$fp = file('kunden/'.$username_gb.'txt',"r");

mfg
robo47
robo47 ist offline  
Alt 19.04.2005, 13:50  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard

naja die variable $username steht in der url im browser...
also index.php?action=user_gb&username=dennis

aber es geht trotzdem nicht
mit deinem code hat er nun eine datei erstellt die einfach nur txt heisst. und nun speichert er die einträge dort /
d4rki ist offline  
Alt 19.04.2005, 13:57  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

langsam verlier ich die lust.
dann mach doch mal alles was ich schreibe!!! bzw beantworte meine fragen. abgesehen davon müsste wenn du error_reporting(E_ALL); hast ne fehlermeldung kommen.
wenn du den text über register_globals gelesen hättest würdest du wenn du username übergibst auch $_GET['username'] verwenden und vorher überprüfen.

ich poste diese links nicht zum spass. überarbeite dein script doch mal bitte sauber mit den globals $_POST und $_GET etc so wie in meinem link beschrieben.
desweiteren benutze beim entwickeln wie genannt das error_reporitng, überprüfe deine variablen etc.

mfg
robo47
robo47 ist offline  
Alt 19.04.2005, 14:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
langsam verlier ich die lust.
Selber schuld. Warum liest Du auch solche beschrubbten Themen... :wink:
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.