Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

    Ciao a tutti, sono un "self made" programmer in pratica mi diletto a programmare in php e sono auto didatta ma, come spesso capita in questi casi....le cose non funzionano come dovrebbero o meglio, non sono capace di farle funzionare come vorrei :P

    Quindi ecco la mia domanda:
    Sto cercando di creare un piccolo script PHP che farò eseguire da un cron job in cpanel.
    Questo script dovrà collegarsi al database del mio sito basato su WordpressMU 3.1, selezionare la tabella post e modificare qualche elemento da tutti i post.
    Sul mio sito "posta" tanta gente che spesso copia/incolla i propri post da vari forum che usano il bbcode quindi avrei bisogno di modificare i tag bbCode in html, quello che ho scritto fino ad ora è questo:

    <?php

    $db = mysql_connect("localhost", "USERNAMEDB", "PASSWORDDB");

    mysql_select_db("NOMEDB",$db);

    $query = "UPDATE wp_posts SET post_content = REPLACE ( post_content, '[img]', '[img]' )[/img]' )";
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '[IMG]', '[img]' )[/img]' )";
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '', '' )";
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '
    ', '
    ' )";
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '', '' )";
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '
    ', '
    ' )";

    mysql_query($query) or die(mysql_error());

    mysql_close();

    ?>

    Purtroppo anche questo forum è scritto in bbCode quindi non si vede bene il mio ma prima degli [b], come potete immaginare, ci sono delle "b" sia maiuscole che minuscole tra parentesi quadre [.

    Quello che vedete non è completamente farina del mio sacco ma frutto di un piccolo lavoro di "taglia e cuci" tra diversi post letti in giro per il web.
    L'errore che mi restituisce è quello del titolo, in particolare:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/download/public_html/sistemazione.php on line 8

    se non ho capito male dovrebbe essere un problema legato ad alcune parentesi (l'ho dedotto dalla colorazione diversa che mi si presenta in alcune righe in Notepad++) il problema è che non posso eliminare alcune di quelle parentesi perché altrimenti non svolgerebbero il loro scopo...
    Qualcuno mi potrebbe aiutare? Spero di essere stato abbastanza chiaro, grazie mille!
    Generatore di link premium per fileserve
    megaupload e uploading:
    http://premiummu.com
    Supera il limite di Megavideo:
    http://premiummu.com

  2. #2

    Re: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

    Originariamente inviato da takycardia
    Quello che vedete non è completamente farina del mio sacco ma frutto di un piccolo lavoro di "taglia e cuci" tra diversi post letti in giro per il web.
    Gia', il problema pero' e' che un un linguaggio di programmazione richiede di essere studiato e capito per poter essere utilizzato, il copia e incolla cieco non porta a nulla.

    Nello specifico l'errore ti dice che il compilatore PHP ha trovato una stringa dove non si aspettava di trovarne una. Ed in effetti tu hai una riga in cui assegni alla variabile $query una stringa, e poi hai altre righe in cui ci sono solo stringhe racchiuse tra virgolette.

    Per capirci, questa istruzione:
    codice:
    "UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/img]', '" />' )";
    non significa niente: e' una stringa costante messa li' da sola, non fa parte di un assegnamento, non e' passata ad una funzione in pratica non e' uno statement valido.

    Comunque anche nella prima riga c'e' un errore (la stringa si considera chiusa alle virgolette dopo <img src=), e cosi' in praticamente tutte le successive.

    Capisco che sia bello cercare di arrangiarsi da soli, ma - ripeto - un linguaggio di programmazione e' una cosa piuttosto complessa da improvvisare e lo studio, almeno delle basi, e' necessario.

    EDIT: ah per non parlare del fatto che il procedimento e' assurdo. Cioe' tu fai inserire il codice cosi' com'e' e poi lo modifichi ogni tanto con un cron? Follia pura. Se il testo deve essere modificato, allora questo deve avvenire all'atto dell'inserimento nel database.

  3. #3
    Nel frattempo sto studiando perché mi appassiona molto la programmazione ed in particolare il linguaggio PHP anche perché mi sto dilettando nel creare template per Wordpress.

    Ad ogni modo da quello che mi hai scritto non c'è soluzione perché il problema è legato alla parentesi " che invece è indispensabile per il mio scopo.
    Ho capito bene o ci sono possibilità alternative?
    Generatore di link premium per fileserve
    megaupload e uploading:
    http://premiummu.com
    Supera il limite di Megavideo:
    http://premiummu.com

  4. #4
    Originariamente inviato da takycardia
    Nel frattempo sto studiando perché mi appassiona molto la programmazione ed in particolare il linguaggio PHP anche perché mi sto dilettando nel creare template per Wordpress.

    Ad ogni modo da quello che mi hai scritto non c'è soluzione perché il problema è legato alla parentesi " che invece è indispensabile per il mio scopo.
    Ho capito bene o ci sono possibilità alternative?
    Al problema delle virgolette (che non sono parentesi) c'e' soluzione, ma sono solo la punta dell'iceberg. Se in una stringa racchiusa da virgolette devono essere presenti altre virgolette, queste devono essere precedute da un backslash.

    Esempi:
    codice:
    $testo = "la pioggia ha "leggermente" bagnato il garage"; // SBAGLIATO
    $testo = "la pioggia ha \"leggermente\" bagnato il garage"; // CORRETTO
    rimangono gli altri due problemi un po' piu' profondi (eseguire query multiple e filtrare il testo invece della soluzione cron).

  5. #5
    Se vuoi mettere mano in un cms come wordpress devi avere una buona base di php.

    Ora ha due possibilità:
    - utilizza un cms senza toccare php
    - impare php e poi (con cautela!!) metti mano ad un cms

    ...sti cms hanno fatto illudere i designers che possono fare developing mettendo righe di (presunto) php qui e lì...
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    Al momento nonostante le mie scarse conoscenze in confronto alle vostre sono riuscito a vendere 3 template ad altrettanti alberghi "tirando su " qualche €, quindi non facciamo a gara a "who has the biggest programming penis", so che devo studiare e lo sto facendo quindi vi ringrazio per il vostro aiuto e tempo se me ne dedicherete, altrimenti grazie lo stesso per aver letto le mie frasi deliranti.
    Generatore di link premium per fileserve
    megaupload e uploading:
    http://premiummu.com
    Supera il limite di Megavideo:
    http://premiummu.com

  7. #7
    Si ma non giochiamo neanche a fare l'offeso pero'. Il fatto e' che fare il programmatore e' molto diverso da fare il web designer, anche per fare le cose piu' semplici e' necessario conoscere le basi. Per contro un linguaggio di markup e le annesse definizioni di stile sono molto piu' adatti ad essere copiati anche come singoli spezzoni, perche' (spesso) sono blocchi a se' stanti e non sono parti di un codice piu' ampio, ne' hanno relazioni con altre componenti. E' tipico del web designer provare a fare "il grande passo" verso il lato server e cercare di operare sul codice PHP come su quello HTML, ma non si puo' fare cosi': l'HTML lo puoi imparare tranquillamente per tentativi e guardando quello fatto da altri, il PHP (o qualsiasi altro linguaggio) no, servono i concetti di base.

    Ad esempio, nel codice che hai postato e' evidente la mancanza dell'idea di esecuzione di un ciclo: tu hai attaccato insieme delle stringhe contenenti delle query e poi dopo hai eseguito una volta la funzione che manda effettivamente la query al database. Se l'idea era concatenare le stringhe per creare una query multipla, allora e' sbagliata la sintassi (oltre al fatto che mysql_query() non supporta query multiple), se l'idea era eseguire varie query singolarmente, allora la funzione andava chiamata piu' volte.

    Personalmente non contesto affatto l'arte di arrangiarsi in ambito amatoriale/personale, pero' la cosa mi da' molto fastidio in ambito professionale visto che tende a svalutare il lavoro di chi invece e' professionista davvero. Piu' di una volta mi sono stati contestati dei preventivi perche' "il precedente sviluppatore aveva fatto il template con XYZ euro in meno". Si, pero' quello se n'e' andato lasciando meta' delle cose non funzionanti e il server agonizzanto perche' la cache non era stata configurata correttamente. Lo sviluppo web soffre ancora della sindrome "il sito lo faccio fare a mio nipote che coi computer ci smanetta", e l'abitudine all'arte di arrangiarsi non aiuta a farlo diventare un ambito in cui la professionalita' venga riconosciuta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.