anpera.net
https://anpera.dyndns.org/phpbb3/

UPDATE und redirect geht nicht
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3971
Seite 1 von 1

Autor:  Welv [ Mi 05 Sep, 2007 21:29 ]
Betreff des Beitrags:  UPDATE und redirect geht nicht

Nabend.


Ich hab da n Problem mit meinem Prangerscript und ich weiß ned worans liegt. hier mal der Code vom ersten prob...
[php]
} else {
$sql = "INSERT INTO pranger (begin,end,acctid,user,location,reason) VALUES (\"$begin\",\"$end\",$acctid,\"$name\",$location,\"$reason\")";
db_query($sql) or die(db_error($link));
$sql = "UPDATE accounts SET ploc = '".addslashes($location)."',ptime = '".addslashes($ptime)."' WHERE acctid = '".addslashes($acctid)."' ";
db_query($sql) or die(db_error($link));
output("`bGespeichert`b");
$news = array(
"0" => "",
"1" => "`&wurde vom Sicherheitsdienst gefangengenommen und büßt seine Strafe auf der Insel der Rothe ab."
);
addnews("`&".$name." ".$news[$location]." Begründet wurde dies mit: ".$reason."");
output("`n
begin: ".$begin."`n
end: ".$end."`n
location: ".$location."`n
reason: ".$reason."`n
acctid: ".$acctid."`n
ptime: ".$ptime."`n
name: ".$name."
");
}
[/php]

in der tabelle pranger wird alles gespeichert und es sind auch alle variablen gesetzt, nur das update der accounts funzt ned. ptime und ploc werden einfach ned upgedatet und ich hab schon so ziemlich alle schreibweisen probiert.
hab sogar schon die werte direkt, ohne variablen gesetzt und nix ...



und das zweite...

in der function checkday hab ic hdas reingehauen
[php]
if(($session['user']['ptime']>0) && ($session['user']['ploc']>0)) redirect("$pranger");
[/php]

ich komme zwar auf die richtige seite und diese existiert 100%ig, dennoch kann die seite nicht angezeigt werden. Oo
wenn ich ptime und ploc auf 0 setz, gehts wieder.

[php]
case"island":
page_header ("Die Insel der Rothe");
if($session['user']['ptime'] > 0) {
output("Auszeit für dich`n`n`n");
addnav("Logout","login.php?op=logout",true);
} else {
output("Über die Gefangenen lästern`n`n`n");
addnav("Zurück","donigarten.php?op=see");
}
viewcommentary("pranger.donigarten",20);
break;
[/php]

Autor:  Rikkarda [ Mi 05 Sep, 2007 23:05 ]
Betreff des Beitrags: 

ganzer source wäre hilfreich inkl. deiner checkday versuche (die ich allerdings nicht nachvollziehen kann)^^

Autor:  Welv [ Do 06 Sep, 2007 04:30 ]
Betreff des Beitrags: 

werd die entsprechenden datein am nachmittag raussuchen.

und wieso nicht nachvollziehen? checkday ist schon in den wichtigsten datein, also kann ich doch gleich die verwenden, um jemanden zum pranger zu geleiten ;)

Autor:  Welv [ Do 06 Sep, 2007 14:47 ]
Betreff des Beitrags: 

soo. hier die pranger.php die änderungen an den anderen datein stehen drinnen.

Autor:  Welv [ Fr 07 Sep, 2007 17:53 ]
Betreff des Beitrags: 

keine idee? ich begreifs auch ned. mit addslash, ohne, die zahlen mit ".." und ohne db_query mit or die und ohne, mit variablen oder ganz einfach
$sql="UPDATE accounts SET ploc=1,ptime=1 WHERE acctid=1"; , egal ob ich das update dort lasse oder direkt unter default: reinkopier ... es passiert einfach nix. langsam glaub ich meine datenbank kennt die funktion "UPDATE" einfach nicht.

Autor:  Naria [ Fr 07 Sep, 2007 20:17 ]
Betreff des Beitrags: 

Da gab es einen Bug bzgl. dem UPDATE Befehl und der accounts Tabelle. Es funktioniert meist nicht bzw. nur, wenn man es so handhabt wie in der user.php.

Autor:  Welv [ Fr 07 Sep, 2007 22:58 ]
Betreff des Beitrags: 

da gibts doch auch so sachen wie..

[php]}elseif($_POST[fixnavs]!=""){
$sql = "UPDATE accounts SET allowednavs='',output='' WHERE acctid=$_GET[userid]";
}elseif($_POST[clearvalidation]!=""){
$sql = "UPDATE accounts SET emailvalidation='' WHERE acctid='$_GET[userid]'";
}
db_query($sql);[/php]
...die funktionieren.


den sinn der hinter
$sql=substr($sql,0,strlen($sql)-1);
steht hab ich zwar nicht begriffen, aber habs auch probiert, geht auch ned.

gibts da noch irgendwelche versteckten dinge die man braucht damit das geht?

Autor:  Drazaar [ Sa 08 Sep, 2007 02:38 ]
Betreff des Beitrags: 

$sql=substr($sql,0,strlen($sql)-1);

Heißt:
String verkürzen. Letzte Ziffer fällt weg.
ist wohl das ,

Damit vor der WHERE clause kein "," steht, ist das nötig.


Zu deinem Problem: Müsst ich mal angucken *g*

Wie hast du es getestet? Bei dir selbst?
Update funktioniert meistens nicht bei einem selbst...

Da dann mit $session['user']['xyz'] = abc; arbeiten


Ansonsten: Muss ich nachgucken, wie schon gesagt, aber heute nimmer *g*

Autor:  Welv [ Sa 08 Sep, 2007 11:22 ]
Betreff des Beitrags: 

Drazaar hat geschrieben:
$sql=substr($sql,0,strlen($sql)-1);

Heißt:
String verkürzen. Letzte Ziffer fällt weg.
ist wohl das ,

Damit vor der WHERE clause kein "," steht, ist das nötig.



also, ich sehe das anders.

substr(hallo welt,0,9) liefert mir alles vom 0ten bis zum 9. zeichen.
bei hallo welt wäre das also von h(allo) bis (wel)t, also alles

strlen fängt bei 1 an zu zählen.
hallo welt wäre also 10. minus 1 wäre es dann 9

substr(hallo welt,0,strlen(hallo welt)-1) liefert mir also alles zurück.

wenn ich keinen denkfehler hab, is das also vollkommen sinnlos ^^


Drazaar hat geschrieben:
Wie hast du es getestet? Bei dir selbst?
Update funktioniert meistens nicht bei einem selbst...

Da dann mit $session['user']['xyz'] = abc; arbeiten


ja, hab ich und nachdem ich es getestet hab, war auch das der fehler.
danke für den tipp. werd ich halt hinzufügen wenn man sich selber anprangern will ^^
[/quote]


so, das prob mit redirect hat sich auch erledigt.
wenns in checkday ist, darf checkday(); ned in der zielphp bzw -case stehen.

Autor:  Drazaar [ Sa 08 Sep, 2007 16:47 ]
Betreff des Beitrags: 

[php]
$string = 'hallo';

$strlen = strlen($string);

$string = substr($string, 0, $strlen);
echo $string; # gibt natürlich hallo zurück


$strlen = strlen($string)-1;

$string = substr($string, 0, $strlen);
echo $string; # gibt aus: hall[/php]

Ich hab ein bisschen gebraucht um zu kapieren, was du meinst.
Da kann ich dir nicht weiterhelfen.
Ich weiß nur, dass es funktioniert, auch wenn deine Denkweise durchaus logisch erscheint, bzw. ist? Oo^^

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/