itsmebth Skrevet 6. mars 2008 Del Skrevet 6. mars 2008 Hvorfor bruker du preg_replace til det? str_replace er mye raskere. Lenke til kommentar
Garanti Skrevet 6. mars 2008 Forfatter Del Skrevet 6. mars 2008 Ingen dum idé! Takk! Lenke til kommentar
Garanti Skrevet 10. mars 2008 Forfatter Del Skrevet 10. mars 2008 Dersom noen kunne forklart meg følgende kodesnutt noe bedre enn det som står i kommentaren, hadde jeg blitt svært glad Klikk for å se/fjerne innholdet nedenfor <html> <head> </head> <body> <form name="form" action="searchscript.php" method="get"> <input type="text" name="q" /> <input type="submit" name="Submit" value="Search" /> </form> <?php // Get the search variable from URL $var = @$_GET['q'] ; $trimmed = trim($var); //trim whitespace from the stored variable // rows to return $limit = 10; // check for an empty string and display a message. if ($trimmed == "") { echo "<p>Please enter a search...</p>"; exit; } // check for a search parameter if (!isset($var)) { echo "<p>We dont seem to have a search parameter!</p>"; exit; } //connect to your database ** EDIT REQUIRED HERE ** mysql_connect("xxx","yyy","zzz"); //(host, username, password) //specify database ** EDIT REQUIRED HERE ** mysql_select_db("ddd") or die("Unable to select database"); //select which database we're using // Build SQL Query $query = "SELECT * FROM `sponsor` WHERE `checkSponsorChild` LIKE '%$trimmed%' ORDER BY `id`"; // EDIT HERE and specify your table and field names for the SQL query $numresults = mysql_query($query); $numrows = mysql_num_rows($numresults); // If we have no results, offer a google search as an alternative if ($numrows == 0) { echo "<h4>Results</h4>"; echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>"; // google echo "<p><a href=\"http://www.google.com/search?q=" . $trimmed . "\" target=\"_blank\" title=\"Look up " . $trimmed . " on Google\">Click here</a> to try the search on google</p>"; } // next determine if s has been passed to script, if not use 0 if (empty($_GET['s'])){ $s=0; }else{ $s = $_GET['s']; } // get results $query .= " LIMIT $s,$limit"; $result = mysql_query($query) or die("Couldn't execute query"); // display what the person searched for echo "<p>You searched for: "" . $var . ""</p>"; // begin to show results set echo "Results"; $count = 1 + $s ; $childrenInfo['childsName'] ."\r\n"; // now you can display the results returned while ($childrenInfo= mysql_fetch_array($result)) { $title = $childrenInfo['childsName']; echo "$count.) $title" ; $count++ ; } $currPage = (($s/$limit) + 1); //break before paging echo "<br />"; // next we need to do the links to other results if ($s>=1) { // bypass PREV link if s is 0 $prevs=($s-$limit); print " <a href=\"$PHP_SELF?s=$prevs&q=$var\">Previous</a>  "; } // calculate number of pages needing links $pages=intval($numrows/$limit); // $pages now contains int of pages needed unless there is a remainder from division if ($numrows%$limit) { // has remainder so add one page $pages++; } // check to see if last page if (!((($s+$limit)/$limit)==$pages) && $pages!=1) { // not last page so give NEXT link $news=$s+$limit; echo " <a href=\"$PHP_SELF?s=$news&q=$var\">Next</a>"; } $a = $s + ($limit) ; if ($a > $numrows) { $a = $numrows ; } $b = $s + 1 ; echo "<p>Showing results $b to $a of $numrows</p>"; ?> </body> </html> Lenke til kommentar
Gjest Slettet+6132 Skrevet 10. mars 2008 Del Skrevet 10. mars 2008 (endret) trim() fjerner whitespace (mellomrom) på venstre og høyre side av det du angir, eksempelvis vil " lol " returnere "lol". if ($trimmed == "") er skrevet på en dårlig måte, man bør heller bruke if (empty($trimmed)), funksjonen den har er å sjekke om $trimmed har en verdi. if (!isset($var)) vil gi true om $var ikke er satt (utropstegnet foran isset() betyr not, altså if not isset, da vil ifen bli true om isset er false. mysql_* er diverse funksjoner som kobler til database, velger database og henter ut data fra database. $numrows = mysql_num_rows($numresults); if ($numrows == 0) Igjen litt dårlig skrevet, ifen burde inneholdt $numrows === 0 fordi mysql_num_rows() vil returnere en int-verdi, se her for mer info. Uansett, det koden gjør er å sjekke hvor mange søkeresultater du fikk fra databasen, og deretter skrive ut en tekst om det er null resultater. Mer enn det gidder jeg ikke å forklare, enten får noen andre fortsette, eller så kan jeg foreslå at du faktisk begynner å bruke manualen litt, den er veldig nyttig, og om man kombinerer den med kommentarene er det ofte lettere å forstå. Ta for deg scriptsnutter som denne, åpne www.php.net, og hver gang du kommer over en funksjon du ikke kjenner til søker du den opp øverst til høyre på php.net, og så leser du hva den gjør. Man lærer ikke så mye av å få alt på sølvfat Redigert: Forresten, ikke bruk på PHP-kode, bruk [color="#000000"][[/color][color="#000000"]code[/color][color="#000000"]][/color] til det, syntax highlight blir forferdelig feil om du bruker [sql].[code]<?php echo 'Mye penere!';?>[/code] Endret 10. mars 2008 av Slettet+6132 Lenke til kommentar
Garanti Skrevet 10. mars 2008 Forfatter Del Skrevet 10. mars 2008 Haha, jeg takker svært mye! Når det gjelder det med at jeg ikke forstod oppsettet mente jeg ikke at jeg ikke forstod bruken av funksjonene for seg selv, men selve skriptet i sin helhet. Fant det uansett ut etterhvert. Det var blandt annet denne snutten jeg ikke forstod vitsen med: if (empty($_GET['s'])){ $s=0; }else{ $s = $_GET['s']; } Takk for at du gadd å svare uansett! Lenke til kommentar
Garanti Skrevet 18. mars 2008 Forfatter Del Skrevet 18. mars 2008 Fra PHP-pub'en: Hei! Jeg bare lurer på hva som er vanlig å ha i header.php, jeg har noen server/database-connect-script, men er litt usikker på hva man f.eks skal gjøre når man vil legge til stylesheets osv. Skal jeg skrive include("style.css") eller echo "<link rel=\"stylesheet\" href=\"style.css\" />";? Hva skal jeg gjøre for å legge til html-tager? echo "<html>"; ? Hvilke andre ting can jeg definere i header() enn Location: og Content-Type:? Lenke til kommentar
Gjest Slettet+142 Skrevet 19. mars 2008 Del Skrevet 19. mars 2008 På denne siden finnes det en liste som dokumenterer hvilke headers og hva de brukes til du også kan bruke i header(). Det andre du snakker om. Du kan skrive vanlig HTML-kode i en .php-fil om det var det du mente, du må ikke bruke php til å skrive det ut. <?php // Headers, dbconnect, loggføring(?) ?> <!DOCTYPE ...> <html> <head> <link rel="stylesheet" href="style.css" type="text/css" /> <?php echo '<link rel="stylesheet" href="'.$dynamisk_stylesheet_filnavn.'" type="text/css" />'; ?> </head> <body> <?php echo "Innhold :D"; ?> </body> </html> Håper jeg svarte noenlunde hva du lurte på, skjønt eikke helt Lenke til kommentar
Garanti Skrevet 19. mars 2008 Forfatter Del Skrevet 19. mars 2008 (endret) Ja, du svarte forsåvidt på spørsmålet mitt, men jeg lurte på om det var vanlig å inkludere HTML-tag'er i header.php, noe det ser et som om det ikke er. Takk for svar Forresten, jeg har et problem med at alle hermetegn jeg skriver inn blir skrevet som \", noen som vet hva jeg skal gjøre med det? Endret 19. mars 2008 av Garanti Lenke til kommentar
Wackamole Skrevet 21. mars 2008 Del Skrevet 21. mars 2008 (endret) bruk ' istedenfor... Endret 21. mars 2008 av Famen Lenke til kommentar
Garanti Skrevet 21. mars 2008 Forfatter Del Skrevet 21. mars 2008 Så jeg kan skrive echo string . 'tekst med "hermetegn"'; Og escape ' dersom jeg behøver det: echo string . 'tekst med "hermetegn" og \'apostrof\''; Problemet oppstår som regel i strenger med input, så det er kanskje greit å replace tegnet met en HTML-entity? Lenke til kommentar
Gjest Slettet+6132 Skrevet 21. mars 2008 Del Skrevet 21. mars 2008 Brukerinput skal som regel alltid escapes, ta en titt på funksjoner som addslashes() og stripslashes(). htmlspecialchars() er også greit å kjøre på brukerinput som skal vises på siden Lenke til kommentar
Garanti Skrevet 21. mars 2008 Forfatter Del Skrevet 21. mars 2008 Hk. Hva er galt med denne funksjonen? function preparestring($string){ $NorCharFind = array("æ", "Æ", "ø", "Ø", "å", "Å"); $NorCharRepl = array("æ", "Æ", "ø", "Ø", "å", "Å"); $string = str_replace($NorCharFind, $NorCharRepl, $string); addslashes($string); } preparestring($Header); Lenke til kommentar
Gjest Slettet+6132 Skrevet 21. mars 2008 Del Skrevet 21. mars 2008 (endret) Legg til en return $string; nederst i funksjonen din PS: I arrayene dine kan du godt bruke ' istedenfor ", da slipper PHP å lete etter variabler. Redigert: Og for å teste funksjonen må du da bruke echo preparestring($header); Endret 21. mars 2008 av Slettet+6132 Lenke til kommentar
Garanti Skrevet 25. mars 2008 Forfatter Del Skrevet 25. mars 2008 Mkay, men hvorfor virker ikke denne?: $test = 'qwertyu""iopåasdfghjkløæ\nzxcvbnm'; function preparestring($string){ $NorCharFind = array('æ', 'Æ', 'ø', 'Ø', 'å', 'Å'); $NorCharRepl = array('æ', 'Æ', 'ø', 'Ø', 'å', 'Å'); $string = str_replace($NorCharFind, $NorCharRepl, $string); addslashes($string); nl2br($string); return $string; } echo preparestring($test); Lenke til kommentar
itsmebth Skrevet 25. mars 2008 Del Skrevet 25. mars 2008 Hva er det som ikke virker med den? Lenke til kommentar
Garanti Skrevet 25. mars 2008 Forfatter Del Skrevet 25. mars 2008 Den outputter tilsynelatende $test uten å ha kjørt den gjennom preparestring(), dvs ingenting i $test er endret. Lenke til kommentar
Wackamole Skrevet 25. mars 2008 Del Skrevet 25. mars 2008 Er det ikke det som er meningen sjekk kildekoden, skal stå html-moddellen av æøå der... Lenke til kommentar
Gjest Slettet+6132 Skrevet 25. mars 2008 Del Skrevet 25. mars 2008 Du må lære deg å bruke PHPs dokumentasjon bedre, gutt. $string = addslashes($string); $string = nl2br($string); PS: Når du ikke får koden til å fungere er det greit om du poster resultatet, eller eventuelle feilmeldinger. Koden bør nå printe ut qwertyu\"\"iopåasdfghjkløæ<br/>zxcvbnm. Lenke til kommentar
Garanti Skrevet 25. mars 2008 Forfatter Del Skrevet 25. mars 2008 Merkelig. Uansett, nå er raw output qwertyu\"\"iopåasdfghjkløæ\\nzxcvbnm Noe som funker fett, bortsett fra at det ser ut som at n blir dobbelt escapet. Hva skyldes dette? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå