SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.07.2011, 16:33:24
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
Neuer Beitrag oder nicht Problem

Hallo SelfPHp Com.
Ich habe ein groß und wieder rum kleines Problem.
Und Zwar ich schreibe grade ein Forum nun bin ich zu der Anzeige gekommen ob ein neuer Post oder etwas neues Vorhanden ist.
Doch dabei henkt es seit 2 tagen und ich habe keine ahnung warum habe es schon in 2 anderen Foren gepostet, doch keine hilfe mehr.

Es wird in eine Tabelle Namens thema_gelesen ein Eintrag gemacht mit Datum, ThemaID.
nun soll überprüft werden ob ein Eintrag vorhanden ist oder nicht.
Wenn keiner Vorhanden ist dann anzeigen das ein neuer Beitrag vorhanden ist.
wen einer Vorhanden ist dann Prüfen ob Datum neuer als das In der Tabelle Thema
und dann anzeigen das kein neuer Beitrag vorhanden ist
aber das geht nicht.

hier meine 2 Tabellen

Zitat:
CREATE TABLE IF NOT EXISTS `thema_gelesen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Username` varchar(30) NOT NULL,
`Tid` int(10) NOT NULL,
`Datum` datetime NOT NULL,
PRIMARY KEY (`id`)
)
Zitat:
CREATE TABLE IF NOT EXISTS `thema` (
`PID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Autor` varchar(50) NOT NULL,
`Datum` datetime NOT NULL,
`Titel` varchar(120) NOT NULL,
`Inhalt` text NOT NULL,
`Tid` int(10) NOT NULL,
`Kid` int(10) NOT NULL,
PRIMARY KEY (`PID`)
)
so hier mein Code der das anzeigen soll

Code:
<div class="kat">
    <br> 
    <br>
<?php

include 'connect.php';

$kid = 0;
if( isset( $_GET['kid'] ) ) {
  $kid = intval($_GET['kid']);
}
If( $_SESSION['recht'] == "A" ){
        if($_SESSION['recht'] == "B")
    {
    }
}else{
    if($_SESSION['recht'] == "B")
    {
        
    
    }  
}    

    
$query = "SELECT * FROM Thema WHERE Kid = '$kid' GROUP BY Tid 
";
$username = $_SESSION['username'];
        $select = "SELECT thema.Datum, thema_gelesen.Datum, thema.Tid, thema_gelesen.Username, thema.PID FROM thema_gelesen  LEFT JOIN thema ON thema.Tid = thema_gelesen.Tid WHERE thema_gelesen.Username = '$username' GROUP BY thema.Tid ";

if ($result = mysqli_query($db, $query)) {
     



        
        

        

    /* fetch associative array */
    while ($datensatz = mysqli_fetch_assoc($result)) 
        {        $Datum = $datensatz['Datum'];
                $tid3 = $datensatz['Tid'];
                        echo '<div class="Tuser">';
        echo $datensatz['Autor'];
        echo '</div>';
        echo '<div class="TTitel">';

                             if ($result1 = mysqli_query($db, $select)) 
                {
    
    while ($row = mysqli_fetch_array($result1))
        {          	$tid1 = $row['Tid'] == $tid3;
			$Datum1 = $row['Datum'];


        
        if (!isset($tid1))
        {   
          
            
                        echo '11111';

            echo '<img src="img/on.gif">';
            
        }else
        { 
        
            If ($Datum1 < $Datum)
            {
                                echo '2222';
                echo '<img src="img/on.gif">';       
            }else
            {   if($tid1 = $tid3)
            {
                                echo '3333';
                                  
                         echo '<img src="img/off.gif">';
            }else
            {
                echo '<img src="img/on.gif">';     
            }
            }

 

        
        }
                }
                }
        echo sprintf('<a href="index.php?site=Thema&kid=%d&tid=%d">%s</a>', $kid, $datensatz['Tid'], $datensatz['Titel']); 
        echo '</div><hr>';


        }
echo '<div class="newThema"><br><br><br><br>';
echo sprintf('<a href="index.php?site=ThemaErstelen&kid=%d">neuesThema</a>', $kid);
echo '</div>';



}

else
{
    echo'sie haben nicht das Recht Ein neues Thema zu schreiben';
}


      
    



?>
</div>
Bin echt vol am ende ka mehr was ich noch machen soll
Mit Zitat antworten
  #2  
Alt 29.07.2011, 12:34:35
TeX TeX ist offline
Anfänger
 
Registriert seit: Sep 2008
Ort: Saalfeld
Alter: 46
Beiträge: 51
TeX eine Nachricht über ICQ schicken
Hö?

Na Du brauchst doch nur Datum, Thread und den User in eine separate Tab zu legen. Du ließt dann nur noch je nach Thread und User das Datum aus.

PHP-Code:
$check=mysql_query("SELECT `datum` FROM `thema_gelesen` WHERE `user`='meine_ID' AND `ThemaID`='ID' ORDER BY `datum` DESC LIMIT 1"); 
Damit bekommst Du das Datum von dem Thread wo der User das letzte mal drauf war. Jetzt nur noch vergleichen (mit dem Datum des originalen Thread) und schon hast Deine Anzeige.

Vielleicht ist es auch nur die falsche Herangehensweise?

Wenn ich mir so überlege (stande auch schon vor vielen Jahren vor dem Problem) , was dann mit der Funktion "alle Foren als gelesen markieren" ist?

Trägt man nun alle Threads des Users mit neuerem Datum nach längerer Pause in die DB ein (die Tab wird rießig)?

Ich glaube ich hatte das rückwerts gelöst und zwar hatte ich bei jedem Thread die UserID´s als String ala _1_4_7_12_676_ ... in einem Feld abgespeichert und beim Besuch der letzten Seite des Threads die eigene ID wieder entfernt. Einträge die älter als z.B. 30 Tage sind wurden dann geleert.

Kann auch sein das ich das mit Cookies gemacht katte, vielleicht fällt ja jemanden anderes noch was ein.
Mit Zitat antworten
  #3  
Alt 01.08.2011, 01:43:45
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
AW: Neuer Beitrag oder nicht Problem

Jetzt bin ich verwert
(durchnander)

Im anderen Forum labern alle dafon Lefft Join Ubendingt das Werte die NULL sind auch genommen werden
Mit Zitat antworten
  #4  
Alt 01.08.2011, 09:21:39
TeX TeX ist offline
Anfänger
 
Registriert seit: Sep 2008
Ort: Saalfeld
Alter: 46
Beiträge: 51
TeX eine Nachricht über ICQ schicken
AW: Neuer Beitrag oder nicht Problem

Ist halt eine Frage wie man das System aufbaut. Man kann natürlich auch eine Tabelle erstellen wo alle besuchten Thread´s enthalten sind und das mit LEFT JOIN lösen. Diese Tabelle sollte aber regelmäßig gesäubert werden.
Mit Zitat antworten
  #5  
Alt 02.08.2011, 16:31:53
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
AW: Neuer Beitrag oder nicht Problem

So gut danke geht nun alles

nun muss ich mich an die Formartierungs Functionen machen wen man ein thema schreibt

aber ich habe keine genaue Vorstellung wie ich meine diese funktionen hier

[.LIST=1]
[./LIST][.B][./B]
[.CENTER][./CENTER]

ich weis nur das man es denke ich mal so macht aber wie man dann macht das es in der Text box erscheint ka
Js hat man mir gesagt soll gehen
If ("[CENTER]"){
<center>
}
Mit Zitat antworten
  #6  
Alt 03.08.2011, 13:51:08
TeX TeX ist offline
Anfänger
 
Registriert seit: Sep 2008
Ort: Saalfeld
Alter: 46
Beiträge: 51
TeX eine Nachricht über ICQ schicken
AW: Neuer Beitrag oder nicht Problem

Ich denke mal Du meinst die Buttons die man z.B. für Fettschrift drückt und dann der Code in eine Textarea geschrieben wird?

Falls ja, das geht mit JS.

HTML-Code:
<input type="button" id="bu_fett" value="fett" onClick="document.getElementById('ta').value=document.getElementById('ta').value + '[b][/b]';" /><br />
<textarea id="ta" style="width:500px;height:500px;"></textarea>
Kannst es ja mal testen und evtl. werweitern, oder z.B. den JS-Code in eine Funktion packen, dann ist es nen bissel leichter eine neue Box zu erstellen.



Um den Text dann wieder umzudrehen kannst Du das z.B. so machen:

PHP-Code:
<?php
$text
='hier [i]ist[/i] mal [u]mein[/u] [b]Text[/b] aus der [i][u][b]Datenbank[/b][/u][/i]...';

$form_array['[b]']='<strong>';
$form_array['[/b]']='</strong>';
$form_array['[i]']='<i>';
$form_array['[/i]']='</i>';
$form_array['[u]']='<u>';
$form_array['[/u]']='</u>';

foreach(
$form_array as $k => $w){
    
$text=str_replace($k,$w,$text);
}

echo 
$text;
?>

Geändert von TeX (03.08.2011 um 14:01:45 Uhr)
Mit Zitat antworten
  #7  
Alt 03.08.2011, 22:22:38
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
AW: Neuer Beitrag oder nicht Problem

Danke dir bei mir siht der js code so aus

Zitat:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Einf&uuml;gen von Inhalten in eine Textarea</title>
<script type="text/javascript">
<!--
function insert(aTag, eTag) {
var input = document.forms['formular'].elements['eingabe'];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */

}
//-->
</script>
</head>
<body>
<
<form name="formular" action="">
<p><textarea name="eingabe" cols="30" rows="10">Ihre Nachricht</textarea></p>
<p><input type="button" value="Einfügen" onClick="insert('', '')"></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p> <p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>

</form>
</body>
</html>
habe ich im inet gefunden habe nie js gelernt und finde keine gute tuds
Mit Zitat antworten
  #8  
Alt 04.08.2011, 08:56:03
TeX TeX ist offline
Anfänger
 
Registriert seit: Sep 2008
Ort: Saalfeld
Alter: 46
Beiträge: 51
TeX eine Nachricht über ICQ schicken
AW: Neuer Beitrag oder nicht Problem

Du solltest Dich erstmal mit den Grundsachen von JS beschäftigen bevor Du Dich an solche Sachen wagst. Der zugeschickte Code ($_POST) muß noch gecheckt werden (SQL-injection etc.).

HTML-Code:
<?php

if(!empty($_POST['s']) && !empty($_POST['ta'])){
	
	$text=$_POST['ta'];
	
	$form_array['[b]']='<strong>';
	$form_array['[/b]']='</strong>';
	$form_array['[i]']='<i>';
	$form_array['[/i]']='</i>';
	$form_array['[u]']='<u>';
	$form_array['[/u]']='</u>';
	
	foreach($form_array as $k => $w){
		$text=str_replace($k,$w,$text);
	}
	
	# weiterverarbeitung der Variablen (z.B. auf bösen Code checken etc.)
	echo nl2br($text).'<hr />';
	$ta=$_POST['ta'];
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>test</title>
		
		<script type="text/javascript">
		<!--
		function insert(aTag, eTag, eID) {
			var input = document.getElementById(eID);
			input.focus();
			/* für Internet Explorer */
			if(typeof document.selection != 'undefined') {
				/* Einfügen des Formatierungscodes */
				var range = document.selection.createRange();
				var insText = range.text;
				range.text = aTag + insText + eTag;
				/* Anpassen der Cursorposition */
				range = document.selection.createRange();
				if (insText.length == 0) {
					range.move('character', -eTag.length);
				} else {
					range.moveStart('character', aTag.length + insText.length + eTag.length);
				}
				range.select();
			}
			/* für neuere auf Gecko basierende Browser */
			else if(typeof input.selectionStart != 'undefined')
			{
				/* Einfügen des Formatierungscodes */
				var start = input.selectionStart;
				var end = input.selectionEnd;
				var insText = input.value.substring(start, end);
				input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
				/* Anpassen der Cursorposition */
				var pos;
				if (insText.length == 0) {
					pos = start + aTag.length;
				} else {
					pos = start + aTag.length + insText.length + eTag.length;
				}
				input.selectionStart = pos;
				input.selectionEnd = pos;
			}
			/* für die übrigen Browser */
		
		}
		//-->
		</script>
		
	</head>
	
	<body>
		
		<form method="POST">	
		<input type="button" value="B" onClick="insert('[b]', '[/b]', 'ta')" />
		<input type="button" value="I" onClick="insert('[i]', '[/i]', 'ta')" />
		<input type="button" value="U" onClick="insert('[u]', '[/u]', 'ta')" /><br />
		<textarea id="ta" name="ta" style="width:500px;height:300px;"><?php if(!empty($ta)){echo $ta;}?></textarea>
		<br />
		<input type="submit" name="s" value="speichern" />
		</form>
	</body>
</html>
Mit Zitat antworten
  #9  
Alt 04.08.2011, 14:03:02
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
AW: Neuer Beitrag oder nicht Problem

Das mache ich in php hasse javascript
wen ich mysqli_real_escape string nutze kann man dann immer noch injekten ?
Mit Zitat antworten
  #10  
Alt 12.11.2011, 14:32:22
SchwarzerMagier SchwarzerMagier ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 27
Beiträge: 6
AW: Neuer Beitrag oder nicht Problem

SO noch mal eine Kleine Frage
kann ich es nicht teoretisch so machen dass ich einfach eine zahlen reie mit den Post eintregen mache z.B 1, 2, 3
und diese dann mit einem Array durchsuche nach der aktuelen Post id und wenn dann eine Im Thema hinzukommt dieses dann als gelessen markiere
allso z.B
1, 2 ,3 steht in gelesen tb.

nun kommt im thema id 4 dazu dass steht nicht in der gelesen table allso neu beitetrag das ich das mit einer schleife durchsuche dann ist nur mein prob wie mache ich es das ich eine zahl neu hintendran hängen kann
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
explode - problem Sannybsw PHP Grundlagen 6 24.11.2010 09:50:36
problem mit dynamisch gesetzten eventlistenern s1r10n HTML, CSS und JavaScript Help! 3 14.09.2010 04:50:52
Apache & VHosts langsam - DNS Problem? comixtrip Apache HTTP-Server 4 15.02.2010 19:41:54
Problem mit MySQL in Typo3-CMS yamukud MySQLi/PDO/(MySQL) 0 09.10.2009 14:21:18
Subquery Problem (Verständnis?) newgame MySQLi/PDO/(MySQL) 1 29.05.2009 23:01:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:44:52 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt