Dabei seit: 02.08.2005 Ort: - Alter: - Geschlecht:
Verfasst Do 22.09.2005 08:22 Titel
[php] Script geht nicht mehr nach Serverwechsel
Ich habe grad meinen server gewechselt (bin jetzt bei all-inkl) und mein blog script funktioniert nicht mehr, ich kann nichts mehr posten - keine comments, keine einträge, und updaten auch nicht mehr. Bin verzweifelt!
Beim schreiben eines eintrags kommt dieser error:
Zitat:
Can't insert into table blog.
INSERT INTO blog (timestamp,title,category,category2,category3,entry) VALUES ('1127367484','the entry title.','general','','','The entry text.')
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 's wrong.','general','','','the entry
$sql_prev = "SELECT * FROM blog WHERE id<'$id' ORDER BY timestamp DESC LIMIT 1";
$result_prev = mysql_query ($sql_prev) or
print ("Can't select previous entry id table blog.<br />" . $sql_prev . "<br />" . mysql_error());
while ($row = mysql_fetch_array($result_prev))
{
$prev = $row["id"];
}
if($prev)
{
// print a previous link
printf("<center><a href=\"display.php?id=%s\">«««</a> -<a href=\"index.php\">main</a>- ", $prev);
}
else
{
// just print the word "previous"
print"<center>««« -<a href=\"index.php\">main</a>- ";
}
$sql_next = "SELECT * FROM blog WHERE id>'$id' ORDER BY timestamp LIMIT 1";
$result_next = mysql_query ($sql_next) or
print ("Can't select next entry id table blog.<br />" . $sql_next . "<br />" . mysql_error());
while ($row = mysql_fetch_array($result_next))
{
$next = $row["id"];
}
if($next)
{
// print a next link
printf("<a href=\"display.php?id=%s\">»»»</a></center><br />", $next);
}
else
{
// just print the word "next"
print"»»»</center><br />";
}
include('footer.inc');
?>
this is the process for the comments:
Code:
<?php
if ($remember_me) {
$cookie_life = time() + 31536000; // Life of one year
<tr>
<td>
<b>title:</b> <input type=\"text\" name=\"title\" size=\"40\" value=\"$old_title\">
</td>
</tr>
<tr>
<td>
<textarea cols=\"80\" rows=\"20\" name=\"entry\">$old_entry</textarea>
</td>
</tr>
<tr>
<td>
<input type=\"submit\" name=\"update\" value=\"Update\">
</td>
</tr>
</table>
</form>
<table>
<tr>
<td>
<p><b>Before deleting, be absolutely sure - there is no confirmation nor is there any way to reverse deletion!!</b><br />
<font size='1'>(You may be shown your entry again after deleting, do not worry, it HAS been deleted. Check the main page of the blog if you are still unsure.</font></p>
<form action='$PHP_SELF' method='post'>
<input type='hidden' name='id' value='$id'>
<input type='submit' name='delete' value='Yes, I am absolutely and positively sure I want to delete this entry.'>
</form>
</td>
</tr>
</table>";
Dabei seit: 09.09.2003 Ort: Nemmberch Alter: 37 Geschlecht:
Verfasst Do 22.09.2005 10:01 Titel
das wird nicht an deinem script, wohl eher an dem sql statement liegen, evtl existiert die tabelle nicht, oder die spaltennamen sind falsch. such dir nur mal die stelle raus wo das query erzeugt wird.
ggf kopier mal dein insert statement und versuchs händisch mit phpmyadmin.
aber ich tipp drauf das die tabelle falsch angelegt ist.
Dabei seit: 21.09.2005 Ort: Erding Alter: 24 Geschlecht:
Verfasst Do 22.09.2005 10:03 Titel
hatte das problem auch schon, liegt meines Wissens an der php version. Wenn du PHP >= 4.2.0 hast dann gibts 2 Möglichkeiten:
1.
entweder du gehst in die php.ini auf deinem server und editierst folgende Zeile von
register_globals = Off
auf
register_globals = On
das finde ich is zwar nich die beste Lösung, aber funktioniert auf jedenfall
2.
oder du versuchst mal deine Variablen abzuändern und zwar wie folgt:
$_POST["variable"] wird zu $HTTP_POST_VARS["variable"]
$_GET["variable"] wird zu $HTTP_GET_VARS["variable"]
$_COOKIE["variable"] wird zu $HTTP_COOKIE_VARS["variable"]
$_SESSION["variable"] wird zu $HTTP_SESSION_VARS["variable"]
Eins von beiden sollte funktionieren, falls nich hab ich auch kein Rat mehr
Dabei seit: 09.09.2003 Ort: Nemmberch Alter: 37 Geschlecht:
Verfasst Do 22.09.2005 10:10 Titel
rizzn hat geschrieben:
hatte das problem auch schon, liegt meines Wissens an der php version. Wenn du PHP >= 4.2.0 hast dann gibts 2 Möglichkeiten:
1.
entweder du gehst in die php.ini auf deinem server und editierst folgende Zeile von
register_globals = Off
auf
register_globals = On
das finde ich is zwar nich die beste Lösung, aber funktioniert auf jedenfall
2.
oder du versuchst mal deine Variablen abzuändern und zwar wie folgt:
$_POST["variable"] wird zu $HTTP_POST_VARS["variable"]
$_GET["variable"] wird zu $HTTP_GET_VARS["variable"]
$_COOKIE["variable"] wird zu $HTTP_COOKIE_VARS["variable"]
$_SESSION["variable"] wird zu $HTTP_SESSION_VARS["variable"]
Eins von beiden sollte funktionieren, falls nich hab ich auch kein Rat mehr
1. es ist NIE eine gute möglichkeit register_globals auf on zu stellen.
2. wie ich dem post entnehmen kannw erden die daten ja übertragen (anhand des sql statements entnehme ich das einfach mal) nur dieser ist fehlerhaft. das statement selbst zwa rnicht, aber ich tippe eben auf eine falsche tabelle.
und bitte bitte gebt doch ned immer solche tipps wie "register_globals = on" da platzt mir echt der arsch bei sowas. denn hinterher heulen alle rum, wenn man schindluder mit den servern treibt, weil jeder knecht n lumberdes sql injection machen kann oder sonstigen kinderkram.
Dabei seit: 02.08.2005 Ort: - Alter: - Geschlecht:
Verfasst Do 22.09.2005 13:27 Titel
Habe den Fehler gefunden: Es funzt nur dann nicht wenn man ' benutzt und posten will. Werde das mal heute Abend versuchen mit addslashes oder so zu fixen.
Allerdings funzen die Cookies für die Comments auch nichtmehr - kann da jemand weiterhelfen?
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.