2009-12-04 12 views
6

questo: <!---->Trovare una canaglia <!----> in PHP

Questo ... questo ... cosa. Proprio qui.

7 caratteri del male, costringendo IE per rendere tutte le pagine con esso in alto come questo in quirks mode:

<!----><!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 

Se non è male che non so cosa sia, perché isn certamente' t nel mio file di modello, dal momento che le prime righe di che sono:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <?php $this->outputHead(); ?> 
    </head> 

io di certo non vedo problemi nel mio codice Emissione attuale:

function build() 
{ 
    if ($this->disabled) 
    { 
     return $this->content; 
    } 
    else 
    { 
     global $footer; 
     ob_start(); 
     $location = $this->location; 
     include($this->location['theme_nr'].'/overall.php'); 
     return ob_get_clean(); 
    } 
} 

function outputAll() 
{ 
    // stop capturing everything 
    $this->content = ob_get_clean(); 

    // build the page 
    echo $this->build(); 
} 

Davvero non capisco. Come potrebbe questo cosa entrare nel mio codice?

posso solo immaginare che > po 'alla fine si trasforma in un sorriso, e la cosa è ridere di me.

Mi perseguita, uccide i miei gatti, non so cosa farà dopo ma ucciderà qualcosa.

Aiutami, voi dei dello sviluppo del web!

MODIFICA: Solo una nota, appare in tutti i browser, ma sembra guidare IE balistico e nessuno degli altri.

+0

mi piace l'odio nei confronti di IE. – MitMaro

+0

Stai usando una sorta di framework? – MitMaro

+0

Quale codice chiama le tue funzioni? – MitMaro

risposta

1

Ho esaminato il repository git che hai postato e non è contenuto all'interno. Puoi provare un diff dalla copia su github alla tua copia attuale poiché la modifica è nelle modifiche apportate.


Se si utilizza un IDE, eseguire una ricerca di file globale per la stringa di caratteri. Questi tipi di "bug" possono essere fastidiosi.

+0

Sto usando Notepad ++ ... Non penso che abbia una caratteristica del genere in quanto è praticamente un Notepad esteso come suggerisce il nome. – unrelativity

+0

Notepad ++ non ha problemi nella ricerca di – pavium

+0

Ho provato a cercare manualmente in un paio di file prima di rinunciare. Per quanto riguarda il repository git, è aggiornato. – unrelativity

0

Sembra una situazione in cui grep sarebbe utile, se è possibile utilizzarlo tramite cygwin o direttamente in Linux. Un rapido esempio di ricerca di file con quel commento HTML

grep -R "<\!---->" ./* 

Che dovrebbe restringere la ricerca.

+0

Purtroppo io uso Windows. Per quanto riguarda Cygwin, beh, l'ultima volta che ho provato ad installarlo ho fissato la dimensione del download e ho rinunciato. È stato uno o due anni fa. – unrelativity

+0

Bene, pensavo che potesse essere il caso, ma ho pensato di buttarlo là fuori comunque. –

+0

Forse non è il modo più semplice, ma è possibile ottenere un account su http://silenceisdefeat.com/ (Unix gratuito), caricare il file utilizzando SFTP con qualcosa come Filezilla, quindi collegarsi ad esso con Putty ed eseguire il comando sopra indicato: D –

3

Ho trovato il colpevole.

In qualche modo, un kludge che ho in una funzione per nascondere un errore MySQL causa solo problemi in uno dei miei rami, anche se la funzione e da dove viene chiamato non è cambiata tra i due rami.

Per chi fosse interessato, il codice in questione:

function isexistinguser($uname,$pwd) 
{ 
    global $location; 

    $uname = mysql_real_escape_string($uname); 

    $result = mysql_query("SELECT * FROM users WHERE user_username = '$uname'"); 

    $hit = 0; 
    $rowcounted = false; 
    $salt = ''; 

    echo '<!--'; // cheap fix for mysql error - FIND A BETTER WAY! 

    while($row = mysql_fetch_array($result)) 
    {  
     // Do stuff to figure out what to return 
    } 

    echo '-->'; // cheap fix for mysql error - FIND A BETTER WAY! 

    return array($hit,$salt); 
} 
+2

È davvero divertente. Mi piace anche il modo in cui l'utente esistente sembra estintore e ... probabilmente sai già che aspetto ha $ hit. :) – Kevin

+1

'$ hit' assomiglia a cosa ...? – unrelativity

+3

L'aspetto fisico di $ hit può variare a seconda della factory hit $ stessa, oppure i parametri passati alla factory hit $ prima dell'esecuzione del lavoro per creare l'hit $. Più comunemente, di solito ha un membro a colori costante di Color.SaddleBrown e ha un cattivo odore di codice. – snicker

0

Chi vostra gestione degli errori. Il primo modo di affrontarlo è definire e utilizzare i propri gestori anziché quelli predefiniti con php con set_error_handler.

Come semplice correzione, modificare questa linea: $result = mysql_query("SELECT * FROM users WHERE user_username = '$uname'"); con qualcosa di simile:

$result = mysql_query("SELECT * FROM users WHERE user_username = '$uname'"); 
if(!$result || !is_resource($result){ 
    return array(0, ''); 
} 

porre fine a questo, vi consiglio di controllare PDO per utilizzare i database.

+0

In realtà, ho scoperto che l'errore deriva da qualcosa di completamente diverso, e sto cercando ora di capire che cosa sta causando il problema * that * - http://stackoverflow.com/questions/1845587/how-come-my-php-sessions -arent-trasporto-across – unrelativity

0

avrei cercato la stringa 'male':

grep -R '\-\->' /your/folder

Problemi correlati