• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Login

Status
Für weitere Antworten geschlossen.
Ich glaube, wir reden aneinander vorbei.

Wenn ich nun das ganze mit mysql_num_rows() machen würde, dann würde er mir doch immer den aktuellen Wert ausspucken und nicht den, an dem die Eingabe erstellt wurde, oder?

Oder wie sähe ein Beispiel mit mysql_num_rows() nach deiner Idee aus?
 
Werbung:
aber wenn du die id nimmst die bei der eingebae angelegt wurde, entstehen doch loecher in den nummern wenn man beitraege wegnimmt?
hab mal dein beispiel genommen, wuerde es selber nicht mit mysql direkt machen ;)
[php:1:e21e44d6d1]
<?php
$sql = 'SELECT `beitrag` FROM `gaestebuch`';

$result = mysql_query($sql);

$eintraege = mysql_num_rows($result);

while ($eintrag = mysql_fetch_object($result))
print_f ('Beitragsnummer: %d
Beitrag: %s', $eintraege--,$eintrag->beitrag)

[/php:1:e21e44d6d1]
nicht getestet. nur ein beispiel

wenn du es umgehen willst warum redest du dann von den id nummern des beitrages? die sollten nur fuer update und delete anfragen wichtig sein :)
 
Werbung:
versteh nich wo das problem ist...

Code:
$sql = SELECT `beitrag` FROM `gaestebuch`";
$result = mysql_query($sql);
$eintraege = mysql_num_rows($result);
while(...){
echo $eintraege;
$eintraege--;
}

gib doch zuerst den eintrag in der schleife aus und zähl die variable danach rutner Óò

num_rows zählt die tatsächliche anzahl der enthaltenen 'reihen' also einträge der datenbank.
wenns also 5 sind ... wäre bei der ersten ausgabe der wert 5 ... und danach dann eben immer um eins verringert...
 
So, nun kommt schon mein nächstes Problem.

Code:
<html>
    <head>
	    <title>G&auml;stebuch :: Eintrag editieren</title>
		<link rel="stylesheet" type="text/css" href="gb_style.css">
	</head>
	<body>
	    <?php
		    include("gb_datenbank.php");
			
			session_start();
			
			$ip = $_SERVER["REMOTE_ADDR"];
			
			$sql = "SELECT * FROM `gaestebuch` WHERE `ip` = '$ip' AND `id` = '$id' LIMIT 1";
			$result = mysql_query($sql);
			while($row = mysql_fetch_array($result))
			{
			    echo "";
			}
		?>
	    <div align="center">
		    <div class="index" style="width:500px;">
			    <form action="gb_editieren2.php" method="POST">
				    

			    	[b]Eintrag editieren[/b]
					


					Beitrag:
					

					<textarea cols="70" rows="5" name="beitrag" class="standard" value="<?php echo $row["beitrag"] ?>"></textarea>
					


					<input type="submit" value="Abschicken" class="standard"> <input type="reset" value="Eingaben l&ouml;schen" class="standard">
				</form>
				[url="gb_uebersicht.php"]Zur&uuml;ck zur &Uuml;bersicht[/url]
				


			</div>
		</div>
	</body>
</html>

Was stimmt hier nicht?

P.S. Ist vieles auf die Schnelle gemacht, also bitte nicht über komische Anwendungsart beschweren.
 
Werbung:
1.
was soll das
Code:
session_start()
bewirken?
2.
sei nicht gierig !
Code:
Select beitrag FROM ...
reicht hier.
3.
Code:
         while($row = mysql_fetch_array($result))
         {
             echo "";
         }
kompletter unsinn - mach es so:
Code:
$row = mysql_fetch_array($result);
rest stimmt (wie von dir gesagt nicht sehr ergonomisch der code)- aber die variable $id wird doch gar nicht deklariert, wie kannst du sie dann benutzen?
 
2. Hatte ich als erstes, ich hatte gedacht, dass es daran liegt und habe ein "*" daraus gemacht und vergessen, es wieder zu ändern.

3. Die 2. Methode ergab bei mir bis jetzt immer eine Fehlermeldung, aber wie ich das mache, ist eh meine Sache.

1., 4. $id deklariere ich im vorherigen Dokument, in dem ich eine Session starte und $id darin speichere. Dafür brauche ich hier auch session_start().
 
dann musst du $id aber noch auslesen aus der session :)
Code:
$id = $_SESSION['id']
:)
und zu 3. : so wie du es machst ist es wirklich grosser muell - zeig mir die fehlermeldung von meiner loesung bitte
 
Werbung:
Wieso muss ich die auslesen? In den anderen Dokumenten von mir klappt es auch ohne!?

Die Fehlermeldung sagt soviel wie, dass mysql_fetch_array() kein gültiger MySQL - Befehl ist (allerdings ist meinen Übersetzungskünsten nicht unbedingt zu trauen).
 
das glaube ich aber auch - mysql_fetch_array() war noch nie ein mysql befehl :mrgreen:
und wenn es bei dir ohne auslesen klappt ist das eine sehr grosse sicherheitsluecke ! !
naemlich register globals
sowas unbedingt ausschalten sonst funktioniert dein code auf "richtig" konfigurierten servern nicht mehr
 
mysql_fetch_array() ist in deiner Lösung doch auch drin!?

Willst du damit sagen, dass Funpic - Server falsch konfiguriert sind?

Nun, wo liegt jetzt das Problem? Es funktioniert nämlich nach wie vor nicht.
 
Werbung:
funpic server sind nicht falsch sondern unsicher konfiguriert - das ist ein unterschied.
mysql_fetch_array() ist eine funktion der mysql-php erweiterung , keine Mysql funktion wie zb NOW()
 
niklas, mein Gott, bist du pingelig, ob nun mysql-php erweiterung oder mysql.. :roll:

Schön, dass du mir bei meinem Problem sinnlose Antworten gibst :?

[edit]
Ich habe nun herausgefunden, wieso er mir keinen Text im textarea-feld anzeigt.

Das Attribut "value" gibt es für textarea nicht.

Gibt es denn keine Möglichkeit in einem textarea-feld einen Text anzeigen zu lassen?

Geht doch hier im Forum auch..
[/edit]

[edit²]
Ich habe auch noch ein weiteres Problem:

Das Script soll die aktuelle IP mit der IP vergleichen, die in einer bestimmten Zeile liegt (erkannt durch `id`).

Wenn das Ergebniss größer als 0 ist, sprich, wenn es die IP in der Datenbank in der Zeile gibt, dann soll er mir den Link "Eintrag editieren" anzeigen.

Das funktioniert leider nicht. "Eintrag editieren" zeigt er mir nur an, wenn ich mich als Admin einlogge, komischerweise.

Hier das Script:
Code:
if(mysql_num_rows($query_ip) > 0)
						{
						    if(isset($_SESSION["benutzername"]) or isset($_COOKIE["benutzername"]))
							{
							    echo "<a href=gb_editieren.php>Eintrag editieren</a>";
							}
							else
							{
							    echo "

";
								echo "<div align=center>";
								echo "<a href=gb_editieren.php>Eintrag editieren</a>";
								echo "</div>";
							}
						}
[/edit²]
 
näturlich kann man text anzeigen lassen!das ist html kindergarten:
<textarea name=name>dein text</textarea>
 
Werbung:
Hopsa..naja, auch ich vergesse nach einiger Zeit mal ein paar Standards :)

Mit Kindergarten hat das aber trotzdem nichts zu tun.

Was ist mit dem zweiten Problem?
 
ok seh ich ein!ich vergess auch mal tags ;-) !
das 2.problem liegt vielleicht an der db an sich ich auf Anhieb nichts falsches!
 
Was genau könnte denn das Problem der Datenbank sein?

Die Datei eintragen.php habe ich so verändert, dass sie die IP des Users, der den Eintrag macht in die Datenbank in die gleiche Spalte schreibt.

Da sollte eigentlich kein Problem sein..
 
Werbung:
es kann nur an dem mysterioesen mysql query liegen den du uns leider nicht zeigst

und wenn du es pingelig findest das man funktionen von einem datenbank server von funktionen einer scriptsprache unterscheidet tuts mir echt leid fuer dich :?
 
niklas, nicht das finde ich pingelig. Ich konnte mich auch nicht mehr genau an die Meldung erinnern. Dann versuche ich sie zusammenzubekommen. Und dann ist es im Prinzip vollkommen egal, was es von beidem ist. Es geht um den Fehler allgemein.

So, hier der SQL-Befehl und der mysql_query, den du sehen wolltest:
Code:
$sql_ip = "SELECT `beitrag` FROM `gaestebuch` WHERE `ip` = '$ip' AND `id` = '$id' LIMIT 1";
						$query_ip = mysql_query($sql_ip);
						if(mysql_num_rows($query_ip) > 0)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben