27. april 2007 - 11:07Der er
25 kommentarer og 1 løsning
one.com - pludselig virker mine php-sider ikke
Hvis der er andre der har one.com som udbyder kunne jeg godt tænke mig at vide om følgende problem er kendt.
Jeg er igang med at opbygge et site for en børnehave http://www.ryesgade60.dk og jeg har brugt Dreamweaver til at generere nogle php-sider. De virkede igår, men idag gør de ikke. Det falder sammen med at layoutet i phpMyAdmin er ændret, hvilket blandt andet betyder, at alle mine tabeller nu står til at have Kollation "latin1_swedish_ci" hvad det så end betyder.
Hver gang jeg prøver at åbne en side der trækker fra databasen får jeg at videm at jeg har en fejl i min SQL syntax ("to use near '-1' at line 1" står der).
Er der nogen gode bud på hvad jeg skal gøre. Jeg har skrevet til supporten, men de bruger gerne et døgn på at svare - og svarer tit så kortfattet, at der kan gå over en uge før man nærmer sig et svar.
one.com har døgn-support. Det betyder, at der svares inden for 24 timer. Og jeg har allerede sendt mit grundlæggende spørgsmål til dem. Det har resulteret i et (hurtigt) svar; at tegnsættet er lavet om (fra Latin1 til utf8) i forbindelse med opdatering af databasen. Desuden at jeg kunne forsøge at ændre mine tabeller CHARACTER SET... dette er gjort, men jeg får desværre den samme fejlmeddelelse.
Den fulde fejlbesked (via IE) ser sådan ud: "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 '-1' at line 1"
Det skal måske tilføjes, at jeg har anvendt en extension til Dreamweaver der hedder "PHakt" som genererer en del PHP af sig selv. Jeg har en grim formodning om at jeg skal ind og rode i noget dér.
Iøvrigt har jeg et andet domæne hos one.com hvor siderne er bygget op på præcis de samme præmisser - og de virker endnu - men dér er opdateringen ikke trådt i kraft endnu. Det betyder, at jeg foreløbig ikke har fået alle mine tabellers kollation lavet om... endnu.
Jeg ved fra en bekendt med bedre kendskab til php, at den kode Dreamweaver laver kan se syret ud (især når man begynder at stille krav til sine udtræk), men se med hér på et basic eksempel:
// begin Recordset $query_rs_NaviTTL = "SELECT * FROM vPG_oTtl"; $rs_NaviTTL = $rg60v2->SelectLimit($query_rs_NaviTTL) or die($rg60v2->ErrorMsg()); $totalRows_rs_NaviTTL = $rs_NaviTTL->RecordCount(); // end Recordset
Denne blok får browseren til at gi' fejlmeddelelse. Hvis jeg fjerner den helt (og php kode i body) vises siden fint
Jeg har forsøgt at finde betegnelsen 'latin' i de includes som Dreamweaver/PHakt anvender, men uden held. Jeg ved ikke helt hvilken type statement jeg skal lede efter - hvis altså det skulle være det nye character set der giver problemer.
Jeg kan tilføje, at one.com er igang med større opdateringsprocess og ikke er nået til alle servere endnu. Derfor er jeg nysgerrig efter at vide, om mccookie's phpMyAdmin har ændret karakter for nylig. - Det helt oplagte er, at man pludselig ser svensk latin character sets over det hele. Meget besynderligt!
Og så har de i øvrigt opgivet at hjælpe yderligere... de tørrer foreløbig sagen af på softwareproducenter.
Well, well... nu skal jeg desværre forlade min computer indtil sent i aften, men jeg bliver ikke ked af mange gode bud når jeg vender tilbage :-)
Problemet er tydeligvis skabt af det querybuilder system som spørgeren benytter. Vi kan ikke hjælpe uden at se koden til det, eller det præcise SQL output.
Og det har intet med one.com at gøre, det er din kode som er fucked up.
"de tørrer foreløbig sagen af på softwareproducenter." -- hvilket er korrekt, det gør jeg også :p (dvs. dig, eller den person som har kodet det system du bruger).
windscape >> det er meget muligt, at min kode er fucked up, men det er sket efter at one.com har opdateret deres MySQL fra 4.0.24 til MySQL 4.1.11. Alle mine sider virkede igår og virker ikke idag. Om man så kan betegne det som fucked up kode vil jeg lade eksperter afgøre
Min phpMyAdmin fungerer fint - og Dreamweaver/PHAkt kan også godt finde databasen, bare ikke lave et brugbart output på en online webside.
Hvad SQL line 1 angår er jeg ikke helt sikker, men dette er toppen af mit dokument: <?php //Connection statement require_once('../Connections/rg60v2.php');
og ../Connections/rg60v2.php ser således ud (hold fast):
<?php # PHP ADODB document - made with PHAkt # FileName="Connection_php_adodb.htm" # Type="ADODB" # HTTP="true" # DBTYPE="mysql"
if (!function_exists("updateMagicQuotes")) { function updateMagicQuotes($HTTP_VARS){ if (is_array($HTTP_VARS)) { foreach ($HTTP_VARS as $name=>$value) { if (!is_array($value)) { $HTTP_VARS[$name] = addslashes($value); } else { foreach ($value as $name1=>$value1) { if (!is_array($value1)) { $HTTP_VARS[$name1][$value1] = addslashes($value1); } }
En mulig årsag, som kun er et gæt fra min side, er at one.com langt om længe har slået registerglobals fra. Dvs. har man brugt at side.php?id=7913 bliver til en $id i koden helt automatisk, vil man nu få en tom streng, på de steder hvor $id indgår, og dermed vil man få "underlige" sql-fejl.
Prøv: 1) Lav en .php fil kun med dette indhold: <?php phpinfo(); ?> og giv os et link, eller kig selv efter registerglobals 2) Check kontrolpanelet, om det er muligt for dig selv at slå registerglobals til eller fra. (Det kan evt. hedde noget andet)
Disclaimer: jeg kender absolut intet til (b-)one.com Disclaimer2: Selv om det lykkes dig at slå registerglobals til og få din kode til at køre, er det grisset kode.
"windscape >> det er meget muligt, at min kode er fucked up, men det er sket efter at one.com har opdateret deres MySQL fra 4.0.24 til MySQL 4.1.11. Alle mine sider virkede igår og virker ikke idag. Om man så kan betegne det som fucked up kode vil jeg lade eksperter afgøre" -- Ja, det er NETOP pga. din kode er forkert.
Jeg arbejder til dagligt under 10 forskellige system setups, men min grundlæggende kode virker altid. Og hvis problemet er som erik foreslår, så er det jo også din egen skyld.
Du kan ALDRIG give din hosting skylden for en kodefejl.. du kan kun give dem skylden hvis de slår noget fra som normalt var slået til.
Debug din SQL streng, og fejlen burde være nem at spotte.. *sigh*
Der er forskelle mellem et ikke-opdateret one.com domæne og et opdateret: på den jeg linker til står; - System Linux srv53 2.6.12.6-vs2.0 #1 SMP Wed Oct 12 12:28:03 CEST 2005 i686 mbstring.internal_encoding | ISO-8859-1 | no value Active Persistent Links | 0 Active Links | 0
på et andet, der stadig kan arbejde med min kode står: - System Linux srv15 2.6.12.6-vs2.0 #1 SMP Wed Oct 12 12:28:03 CEST 2005 i686 mbstring.internal_encoding | no value | no value Active Persistent Links | 1 Active Links | 1
Herudover er der naturligvis forskelle på domænenavnve, serveradresser, etc. Men det er umiddelbart disse 4 poster der adskiller sig. Og lad mig gentage; efter one.com opdatering af det domæne jeg linker til hér, blev ALLE MINE TABELLER AUTOMATISK SAT TIL SVENSK (!) KOLLATION. Foreløbig er jeg ikke overbevist om at det er min kode der er latterlig. Den er nok oldschool, rodet, grisset med mere, men jeg forstår ikke hvorfor en ny og bedre MySQL-version ikke skulle kunne benytte samme kode, hvis det kun handler om (unicode) sprog?
OK folkens. Løsningen på problemet ´ - når man ser bort fra at redigere i millioner af inkluderede funktioner, jeg ikke selv har lavet - ...er opdatering.
Selvom produktet ikke længere udbydes (efter at ADOBE har opkøbt skaberne) er det lykkedes mig at finde en nyere udgave. Og nu virker det hele igen. Det vil sige, at jeg skal alligevel til at rode med alle siderne igen, men det kan ordnes på kort tid (pr. styk).
Så tusind tak for alle de gode idéer og henvendelser... og knap så meget tak for de mindre gode. Arrogant overlegenhed i et forum som dette virker en kende letkøbt, forekommer det mig :-(
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.