Seite 1 von 3

ht acces namen an ein script weiterleiten !?

Verfasst: 16.02.2006 08:04
von Noxxx
also ich melde mich bei meiner seite per ht acces an, dazu muss ich ja namen und passwort vergeben, nun möchte ich aber das dieser name an eine script weitergegeben wird,.. und zwar an dashier,....

Code: Alles auswählen

<?
/*############### INSTALLATION ###############*/

// 1. Variablen anpassen
  $tablewidth = 600;				//Breite der Tabelle
  $showcomments = 8;				//Anzahl der anzuzeigenden Kommentare
  $file = "shouts.txt";				//Name der Shoutsdatei
  $maxlength_name = "20";			//Maximallänge für den Namen
  $maxlength_comment = "1500";			//Maximallänge für das Kommentar
  $break_name = "20";				//Zeilenumbruch nach wieviel Zeichen im Namen?
  $break_comment = "600";			//Zeilenumbruch nach wieviel Zeichen im Kommentar?

// 2. Code in PHP-Datei kopieren

// 3. Dateien im ASCII Modus auf den Server kopieren

// 4. CHMOD der Shoutsdatei auf 777 setzen

/*############### SCRIPT ###############*/
  echo "
<table width='$tablewidth' cellspacing='2' cellpadding='0' border='0'>
  <form action='$PHP_SELF?show=$show' method='post' name='shoutbox'>
    <tr>
      <td>
        <input type='text' value='Name' name='input_name' size='18' maxlength='$maxlength_name' onFocus=\"javascript:if(document.shoutbox.input_name.value=='Name')document.shoutbox.input_name.value='';\"><br>
        <input type='text' value='Kommentar' name='input_comment' size='18' maxlength='$maxlength_comment' onFocus=\"javascript:if(document.shoutbox.input_comment.value=='Kommentar')document.shoutbox.input_comment.value='';\">
      </td>
      <td align='center'><input type='submit' value='Go!'>
      </td>
    </tr>
    <tr>
      <td colspan='2'>
        <hr>
  ";

  function str_break($str, $maxlen){
    $nobr = 0;
    $len = strlen($str);
    for ($i = 0; $i<$len; $i++){
      if (($str[$i]!=' ') && ($str[$i]!='-') && ($str[$i]!="\n"))
        $nobr++;
      else{
        $nobr = 0;
        if($maxlen+$i>$len){
          $str_br .= substr($str, $i);
          break;
        }
      }
      if ($nobr>$maxlen){
        $str_br .= ' '.$str[$i];
        $nobr = 1;
      }
      else
        $str_br .= $str[$i];
    }
    return $str_br;
  }

  if($show == "all") echo "<a href='$PHP_SELF'>Normale Shoutbox zeigen</a><hr>";
  else echo "<a href='$PHP_SELF?show=all'>Alle Shouts zeigen</a><hr>";

  if($input_name != "Name" && $input_name != "" && $input_comment != "Kommentar" && $input_comment != ""){

    $tmp = fopen($file,"r");
    while(!feof($tmp)){
      $row = fgets($tmp,999999);
      list($tmpname,$tmpcomment) = split("\|",$row);
      if($tmpname != "" && $tmpcomment != ""){
        $name = $tmpname;
        $comment = $tmpcomment;
        $comment = str_replace("\n","",$comment);
      }
    }
    fclose($tmp);

    $input_name = str_break($input_name, $break_name);
    $input_name = str_replace("<","<",$input_name);
    $input_name = str_replace(">",">",$input_name);
    $input_name = stripslashes($input_name);
    $input_comment = str_break($input_comment, $break_comment);
    $input_comment = str_replace("<","<",$input_comment);
    $input_comment = str_replace(">",">",$input_comment);
    $input_comment = stripslashes($input_comment);

    if($name != $input_name || $comment != $input_comment){
      $tmp = fopen($file, "a");
      fputs($tmp,"$input_name|$input_comment\n");
      fclose($tmp);
    }
  }

  $names = array();
  $comments = array();
  $tmp = fopen($file,"r");
  while(!feof($tmp)){
    $row = fgets($tmp,999999);
    list($name,$comment) = split("\|",$row);
    if($name != ""){
      array_push($names,$name);
      array_push($comments,$comment);
    }
  }
  fclose($tmp);
  $names = array_reverse($names);
  $comments = array_reverse($comments);

  if($show == "all")
    $max = count($names);
  else
    $max = $showcomments;

  for($i=0; $i<$max; $i++)
    echo "<b>$names[$i]:</b> $comments[$i]<br><br>\n";

  echo "
      </td>
    </tr>
  </form>
</table>
  ";
?>
nur leider weiß ich ganz und garnicht 1. wie ich den namen auslese und 2. wie ich das mache das der name dann für den namen in dem script erscheint ,..... !?!?!?

Verfasst: 16.02.2006 17:28
von Pyramide
Laut http://de.php.net/manual/de/features.http-auth.php solltest du den Benutzernamen in $_SERVER['REMOTE_USER'] finden.

Verfasst: 01.03.2006 10:23
von Noxxx
ja danke das geht, nur weiß ich jetzt nicht wo ich das in das script eintragen muss ? wenn ich das wo eintrage wo name steht kommen immer nur fehlermeldungen ?! und ich kenn mich eigentlich auch garnicht aus ! :D :o :-?

Verfasst: 01.03.2006 15:32
von Pyramide
Was für Fehlermeldungen sind das denn? Und wie genau hast du es eingefügt?

Verfasst: 01.03.2006 16:00
von Noxxx
also ich habe dieses genommen ( $_SERVER["REMOTE_USER"] ) und zb bei

Code: Alles auswählen

<table width='$tablewidth' cellspacing='2' cellpadding='0' border='0'>
  <form action='$PHP_SELF?show=$show' method='post' name='shoutbox'>
    <tr>
      <td>
        <input type='text' value='Name' name=[b]'input_name' [/b]size='18' maxlength='$maxlength_name' onFocus=\"javascript:if(document.shoutbox.input_name.value=='Name')document.shoutbox.input_name.value='';\"><br>
        <input type='text' value='Kommentar' name='input_comment' size='18' maxlength='$maxlength_comment' onFocus=\"javascript:if(document.shoutbox.input_comment.value=='Kommentar')document.shoutbox.input_comment.value='';\">
      </td>
      <td align='center'><input type='submit' value='Go!'>
      </td>
    </tr>
    <tr>
      <td colspan='2'>
        <hr>
eingefgügt (ist dickgemacht)

und dann kommt zb folgendes

und dann kommt immer folgendes

Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/h/a/hate-you.ch/htdocs/Intern/news.php on line 147

Verfasst: 01.03.2006 16:08
von mgutt
setz mal stattdessen das ein:

Code: Alles auswählen

" . $_SERVER["REMOTE_USER"] . "
Die Anführungsstriche oben bedeuten, dass diese als Ende der Echoanweisung gewertet werden (das vor REMOTE). Und die Zeilen danach sind dann kein gültiger PHP Code mehr.

Im meinem Code wird die Echoanweisung beendet.. und dann mit einem Punkt der PHP Wert angefügt und im weiteren Verlauf eine weitere Echoanweisung mit einem Punkt begonnen. So sollte es klappen.

Gruß Marc

Verfasst: 01.03.2006 16:20
von Noxxx
danke das sieht jetzt so aus

Code: Alles auswählen

td>
        <input type='text' value='Name' name='" . $_SERVER["REMOTE_USER"] . "' size='18' maxlength='$maxlength_name' onFocus=\"javascript:if(document.shoutbox.input_name.value=='Name')document.shoutbox.input_name.value='';\"><br>
        <input type='text' value='Kommentar' name='input_comment' size='18' maxlength='$maxlength_comment' onFocus=\"javascript:if(document.shoutbox.input_comment.value=='Kommentar')document.shoutbox.input_comment.value='';\">
      </td>
      <td align='center'><input type='submit' value='Go!'>
      </td>
    </tr>
    <tr>
dann kommt zwar keine fehlermeldung aber wenn ich jetzt text eingebe dann geht das garnicht mehr ,....... ?

Verfasst: 01.03.2006 16:38
von mgutt
Was geht gar nicht mehr?

Verfasst: 01.03.2006 16:57
von Noxxx
es sieht aus wie immer nur wenn ich texte eingeben will gibt er sie nicht aus,..... und schreibt sie auchnet in die txt file

Verfasst: 01.03.2006 17:01
von mgutt
aber wenn du

Code: Alles auswählen

" . $_SERVER["REMOTE_USER"] . "
mit xyz ersetzt dann gehts?