08. oktober 2003 - 20:15Der er
79 kommentarer og 1 løsning
Stripslashes? Hvor?
Jeg har dette script, som viser samtlige forfattere i databasen grupperet. Jeg har netop smidt addslashes på alle posterne og vil gerne have dem ud uden"\". Hvor og hvordan smider man stripslashes på denne?
$db = mysql_connect("localhost", "xxx", "xxx") or die ("Desværre ingen forbindelse til databasen"); mysql_select_db("book", $db) or die ("Kunne ikke vælge databasetabel");
$q = mysql_query("SELECT forfatternavn_efternavn, forfatternavn_fornavn, COUNT(*) AS antal FROM second GROUP BY forfatternavn_efternavn, forfatternavn_fornavn ORDER BY forfatternavn_efternavn ASC"); while($row=mysql_fetch_array($q)) { echo "<tr><td><a href='info.php?efternavn=" .$row[forfatternavn_efternavn]. "&&fornavn=".$row[forfatternavn_fornavn]. "'>" .$row[forfatternavn_efternavn]. "</a></td><td>" .$row[forfatternavn_fornavn]. "</td><td align='center'>" .$row[antal]. "</align></td></tr>"; } ?> </table> </center> </body> </html>
Hvis du får de \-ere ud ved udtræk fra databasen, så siger du addslashes én gang for meget. Din PHP er sikkert sat til at gøre det automatisk, og så behøver du ikke.
Hvis jeg eks. søger på (asa'qwq) uden stripslashes kommer der til at stå (asa) Hvis jeg eks. søger på (asa'qwq) med stripslashes kommer der til at stå (asa\) Den skulle jo gerne søge på hele udtrykket. Men hvordan?? Det fatter jeg ikk.
hmm, den er svær. Ovenstående script grupperer alle forfattere i tabellen og viser antal poster for hver forfatter. Når man klikker på en forfatters efternavn uden de umulige "'" viser en anden side samtlige poster af denne forfatter. Så om man kan kalde det søgning, så sker det i dette script.
Hmm, du siger noget! Det står rent i databasen.. Er det <a href=\"info.php?efternavn=" .$row[forfatternavn_efternavn]. "&fornavn=".$row[forfatternavn_fornavn]. "\"> en søgning?
Hej igen... Jeg har lige smidt det hele op på http://www.fangst.net Bruger: test PW: test Og det er under "Chercher dans la base de données" I finder "Index des noms d'auteurs"
Måske har du haft en \ for meget i starten, hvorimod den nu mangler. Hvis ikke du har magic_quotes_gpc=On, skal du bruge addslashes() når du smider dataene ind, men intet når du hiver dem ud. Brug evt.: addslashes(stripslashes($data)), når du lægger dem ind. Så kan det ikke gå helt galt. Ellers brug: magic_quotes_gpc, det gør livet meget lettere.
hmm, selv om der er en \ som asa\'qwq forkorter den stadig udsagnet. Data kan vel kun stå på en måde i en tabel, jeg mener at det man ser er vel det der står..
Dvs. når jeg bruger addslashes, vil alle de umulige navne stå med et "\" i sit navn, men jeg skal ikke bruge stripslashes når jeg skal have dem ud? Så kommer de jo til, at stå med et "\" i navnet og det skal jo ikke være synligt.
Dette står i mit "smid i databasen script": $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; Så smider den da addslashes på - ikk..
mysql_select_db("book1", $db) or die ("Kunne ikke vælge databasetabel"); $q = mysql_query("SELECT * FROM second WHERE forfatternavn_efternavn='$efternavn' AND forfatternavn_fornavn='$fornavn' ORDER BY udgivelsestidspunkt_oversaettelse"); while($row=mysql_fetch_array($q)) { if ($row[antal_bind] == "") { $row[antal_bind] = "1"; }
Ja, så længe den ikke viser hele navnet i bundlinien, når man kører curseren over navnet, er der noget galt et sted i det første script (eller måske rettere i databasen)
Nu har jeg lavet en lille testtabel. Og når jeg tester med dette, fungerer det fint (og det er jo det samme, som du bruger?):
$q = mysql_query("SELECT forfatternavn_efternavn, forfatternavn_fornavn, COUNT(*) AS antal FROM second GROUP BY forfatternavn_efternavn, forfatternavn_fornavn ORDER BY forfatternavn_efternavn ASC"); while($row=mysql_fetch_array($q)) {
Ja, det er mærkeligt. Den server kører linux med en ver. mysql og min lokale maskine kører windoze og en anden mysql - selv anden ver. php. Det giver samme resultat - Jeg fatter det ikke.
$q = mysql_query("SELECT * FROM second WHERE forfatternavn_efternavn='$efternavn' AND forfatternavn_fornavn='$fornavn' ORDER BY udgivelsestidspunkt_oversaettelse") or die(mysql_error());
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.