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

    PHP:Problema inserimento titolo notizie in DataBase Mysql

    Salve a tutti ragazzi mi presento sono Eugenio.

    Ho costruito un sistema di pubblicazione notizie in PHP, però mi sono imbattuto in uno strano problema.

    Quando inserisco il titolo della notizia nel database nella parte amministrativa ho fatto in modo che la url sia uguale al titolo per ottenere un indicizzazione perfetta.

    quindi la mia URL della notizia sarà:

    www.esempio.it/che-bella-giornata-che-è-oggi.php

    anzichè

    www.esempio.it/id=5.php


    Qui sotto riporto il codice


    `url`='".SaveSEOurl(SaveDB($_REQUEST["title"]))."',


    questa è la stringa che ho creato per inserire il dato nel database come vedete assegno una funzione prima del SaveDB ovvero .SaveSEOurl.

    Questo mi permette di inserire automaticamente il simbolo - al posto degli spazi.


    il problema viene ora, Su altervista funziona, con una versione di php 5.2 mentre su Aruba con versione 5.3 non va.

    `url`='".SaveSEOurl(SaveDB($_REQUEST["title"]))."',

    La stringa si blocca a .SaveSEOurl e non salva il dato, le notizie avranno sempre il campo url vuoto.
    Se provo a togliere .SaveSEOurl la notizia appare così:

    www.esempio.it/che%20bella%20giornata%20che%20è%20oggi.php

    Perchè ovviamente non viene applicata la funzione.

    Non riesco a venirne a capo, se qualcuno potrebbe darmi la soluzione gliene sarei grato.

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    potresti postare il codice della SaveSEOurl() ?

  3. #3
    if(!function_exists('Saveseourl')){
    function Saveseourl($str) {
    $str = trim($str);
    $quotes = array('"', "'", ",", ".", "?", "!", ">", "<", "|", "\\", "/", "#", "%", "^", "&", "*", "`", "~", ")", "(", "@");
    $str = str_replace($quotes, "", $str);
    $str = str_replace(" ", "-", $str);
    return mysql_real_escape_string($str);

    }
    }

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Prova ad abilitare gli errori, mettendo questo all'inizio dello script che salva su db (non fare redirect una volta salvato il record)

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

  5. #5
    Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in configs.php on line 82


    Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in configs.php on line 82


    Warning: mysql_real_escape_string(): A link to the server could not be established inconfigs.php on line 82

    Ho eliminato return mysql_real_escape_string($str);

    in questo caso l'errore non viene più dato. Ma il dato non arriva ancora nel database.

    E' possibile che sia necessario abilitare qualcosa nel file php.ini di aruba?

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Nel senso che hai eliminato anche il return ?
    Cmq, sicuro di connetterti al db prima di chiamare mysql_real_escape_string() ? dall'errore sembra che non riesce a collegarsi

  7. #7
    Gli errori sono tutti li.

    1) La funzione è deprecata e sarà rimossa. Ma questo non è il problema principale (lo sarà quando passerai a una versione di php più recente)
    2) Quando vuoi usare quella funzione devi avere una connessione al database attiva. Probabilmente ti connetti solo dopo.

  8. #8
    La connessione è attiva il problema a questo punto direi che è dovuto alla mia versione di PHP troppo recente.

    Come potrei utilizzare ad oggi questa funzione?

    if(!function_exists('Saveseourl')){
    function Saveseourl($str) {
    $str = trim($str);
    $quotes = array('"', "'", ",", ".", "?", "!", ">", "<", "|", "\\", "/", "#", "%", "^", "&", "*", "`", "~", ")", "(", "@");
    $str = str_replace($quotes, "", $str);
    $str = str_replace(" ", "-", $str);
    return mysql_real_escape_string($str);

    }
    }

  9. #9
    Quote Originariamente inviata da eugenio.se Visualizza il messaggio
    La connessione è attiva

    No, non lo è.

    Il messaggio di errore è abbastanza chiaro. Perché ti ostini a ignorarlo?
    Non dico che tu non sia convinto di quel che dici. Lui ti sta dicendo che non è così.
    Ti resta solo da capire perché. Non è detto che sia colpa del codice che hai scritto, magari è anche una configurazione differente del server o di qualche libreria che usi.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.