php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.12.2004, 19:14  
Gast
 
Beiträge: n/a
Standard [Erledigt] Interessantes Problem

Bitte verzeiht mir den Threadnamen aber wenn ihr weiterlest wisst ihr vielleicht warum mir kein passenderer Titel eingefallen ist.

Also, das Problem was ich habe hat mich persönlich sehr verwundert und die Leute die ich kenne die auch noch PHP können konnten mit leider auch keine Antwort geben.

Undzwar code ich zurzeit ein Forum in PHP.. *innovativ* =)

Meine Datei einen Thread anzeigt heisst "showthread.php"....

Wird sie aufgerufen wird ein SQL-Query losgelassen was die Hits für den jeweiligen Thread hochzählt, so sieht der query aus:

PHP-Code:
mysql_query("UPDATE `".THREADS."` Set `hits` = `hits` + 1 WHERE `tId` = '".$_GET['id']."'"); 
So, zu meinem verwundern zählt das Script aber immer +2 !!

Ich habe wirklich alles Probiert um rauszufinden woran es lag ... ich habe geguckt ob irgendwo noch ein query ausgeführt wird ... hab alle includeten Dateien durchsucht und jeden Funktionsaufruf verfolgt ... NICHTS.....

Dann bin Ich hingegangen und habe direkt unter den oben stehen query einfach "exit;" geschrieben .... und siehe da es zählt nur noch +1. Die Site funktioniert natürlich dann nichtmehr .... So, dann habe ich das exit; einfach immer weiter nach vorne geschoben ... nach jedem Semikolon ... und ab einer gewissen Stelle zählt das Script +2 ... das kuriose ist aber dass dort ÜBERHAUPTNICHTS SQL-Relevantes steht, der query der hochzählt ist LÄNGST BEENDET. Ich kann mir das nicht erklären. Falls es Jemandem weiterhilft (man kann ja nie wissen obwohl ich es nicht glaube), dass ist hier die Stelle:

PHP-Code:
(...)<? echo $user['avatar']; /*hier*/ ?>"></td>
    <td class=post width=85% valign=top><? exit; /*hier nichtmehr*/ output($post['text']); ?>
Da wo /*hier*/ steht kann man noch exit hinschreiben und das Script macht +1, schreibt man exit da hin wo /*hier nichtmehr*/ steht , zählt es +2, und ab dann immer ....


Jetzt bin Ich mal wirklich gespannt ob da Jemand ne Idee zu hat ....
Achja hier noch eine Info über den Server, falls das hilft (handelt sich um strato) http://www.x-click.com/phpinfo.php



Bin für alles dankbar, und wenns nur ein Gedanke is !! [/b][/code]
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.12.2004, 19:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Was macht die Funktion output()?
Soweit ich dir folgen konnte, nach ausführung dieser immer wieder hochgezählt ...
Guradia ist offline   Mit Zitat antworten
Alt 13.12.2004, 19:22  
Gast
 
Beiträge: n/a
Standard

Funktion output macht nichts schlimmes, ich habe das exit; aber ohnehin davor platziert... aber hier:

PHP-Code:
function output($text)
{
  
$text htmlentities($text);
  
$text nl2br($text);
  echo 
$text;

Ich habe mich bisher noch nicht sonderlich mit stringformatierung beschäftigt da das forum noch nicht so weit fortgeschritten ist, daher habe ich immer wenn ein post angezeigt wird eine funktion output erstellt ... damit sich das später auf das ganze forum auswirkt ...
  Mit Zitat antworten
Alt 13.12.2004, 19:45  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

poste mal einen größeren Teil des scriptes dann kann man vieleicht ne aussage machen
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 13.12.2004, 19:58  
Gast
 
Beiträge: n/a
Standard

Ok hier ist die ganze Datei:

PHP-Code:
<?php
  
include("head.php");
  
db_connect();  

  
$preresult mysql_query("SELECT * FROM `".THREADS."` WHERE `tId` = '".$_GET['id']."'");
  
$thread mysql_fetch_array($preresult);  
  
  
// Prüfen auf Leserecht
  
if (!hasRight(1,$thread['bId']) && !hasRight(4,$thread['bId']) && !hasRight(3,$thread['bId']))
    exit;
    
  
// Hits updaten  
  
mysql_query("UPDATE `".THREADS."` Set `hits` = `hits` + 1 WHERE `tId` = '".$_GET['id']."'");
  
  
$result mysql_query("SELECT * FROM `".BOARDS."` WHERE `bId` = '".$thread['bId']."'");
  
$board mysql_fetch_array($result);
  
?>
<table class=main border=0 width=100% cellspacing=0 cellpadding=5>
  <tr><td colspan=2 class=heading>[url="index.php"]<? echo $cfg['forum']['title']; ?>[/url] » [url="showboard.php?id=<? echo $board['bId']; ?>"]<? echo $board['title']; ?>[/url] » [b]<? echo $thread['topic']; ?>[/b]</td>
  </tr>
  <?
    
// Evtl. Admin Funktionen einbinden
  
if (hasRight(3,$thread['bId']) || hasRight(4,$thread['bId']))
  { 
?>
  <tr>
  <td colspan=2 class=brightcolor>
  
  [url="delete.php?d=thread&t=<? echo $thread['tId']; ?>"]Thread l&ouml;schen[/url]
  
  </td>
  </tr>
  
  <?
  
}

$result mysql_query("SELECT * FROM `".POSTS."` WHERE `tId` = '".$_GET['id']."' ORDER BY `pId` ASC");

// POST ZEIGEN
/*while ( */
$post mysql_fetch_array($result);//)
//{
  
$result2 mysql_query("SELECT * FROM `".USERS."` WHERE `uId` = '".$post['uId']."'");
  
$user mysql_fetch_array($result2);
  
?>
  <tr>
   <td colspan=2 class=darkcolor style="border-top-width: 1px; border-bottom-width: 0px">[url="user.php?id=<? echo $user['uId']; ?>"]<? echo $user['username']; ?>[/url]</td>
  </tr>
  <tr>
    <td class=brightcolor style="border-right-width: 0px" width=15% valign=top>
    [img]<? echo $_SESSION['cssurl'].[/img]"><? echo date("j.n.Y H:i",$post['timestamp']); ?>

[img]<? echo $user['avatar']; /*hier*/ ?>[/img]</td>
    <td class=post width=85% valign=top><? exit; /*hier nichtmehr*/ output($post['text']); ?>
    <?
      if ($post['editcount'] > 0)
      {
      
      $subresult = mysql_query("
SELECT FROM `".USERS."WHERE `uId` = '".$post['edituId']."'");
      $edituser = mysql_fetch_array($subresult);
    ?>
    

<font size=1>*** zum <? echo $post['editcount']; ?>. mal editiert von: <? echo $edituser['username']; ?> am: <? echo date("
j.n.Y H:i",$post['edittimestamp']); ?> ***</font>
    <?      
      }   
    ?>    
    <hr align=left color=black size=1 width=150><? echo $user['signature']; ?></td>
  </tr>
<?
//}
?>
</table>
<?
 include("
newpost.php");
 include("
foot.php"); ?>
  Mit Zitat antworten
Alt 13.12.2004, 21:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Kleine Frage: Muss man da durchblicken?

Es ist kurz .. und sicherlich gar nicht sooo komplex .. aber wirklich schön ist das nicht.

Template ... oder ein wenig durchstrukturieren ... wäre sehr nett ^^
Guradia ist offline   Mit Zitat antworten
Alt 13.12.2004, 21:59  
Gast
 
Beiträge: n/a
Standard

hi,

mach mal ein print $sql (oder ähnlich) in deine mysql_query function... mal schauen was die so ausgibt.
  Mit Zitat antworten
Alt 13.12.2004, 22:01  
Gast
 
Beiträge: n/a
Standard

wenn ich nen tutorial zu templates suche finde ich entweder nur schrott oder sachen die mir total überladen vorkommen .... wie auch immer ... mir gehts eher um die lösung meines problems und net darum wie irgendjeman meinen quelltext findet (sry) ....

also hat jetzt jemand nen einfall ?
  Mit Zitat antworten
Alt 13.12.2004, 22:04  
Gast
 
Beiträge: n/a
Standard

print sagt "1" ...
  Mit Zitat antworten
Alt 13.12.2004, 22:38  
Gast
 
Beiträge: n/a
Standard

Zitat:
mir gehts eher um die lösung meines problems und net darum wie irgendjeman meinen quelltext findet (sry) ....
Dein Quelltext ist Murks, den ich mir nicht angucke.
Zitat:
also hat jetzt jemand nen einfall ?
Die Kunst liegt im Weglassen.

Normalerweise würde ich vermuten, daß das Script mehrfach aufgerufen wird. Aber Du schreibst ja, es wäre das komplette Script. Wo allerdings output() und db_connect() deklariert werden, wissen die Götter (head.php?)...
  Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
class.phpmailer strato

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:05 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.